Magento 2 Jak odblokować proces reindex

65

Robię testy w procesie reindeksu Magento i zablokowałem proces indeksu giełdowego .

Jak mogę odblokować ten proces?

Design Config Grid index has been rebuilt successfully in 00:00:02
Customer Grid index has been rebuilt successfully in 00:00:03
Category Products index has been rebuilt successfully in 00:00:00
Product Categories index has been rebuilt successfully in 00:00:00
Product Price index has been rebuilt successfully in 00:00:00
Product EAV index has been rebuilt successfully in 00:00:00
Stock index is locked by another reindex process. Skipping.
Catalog Rule Product index has been rebuilt successfully in 00:00:00
Catalog Product Rule index has been rebuilt successfully in 00:00:00
Catalog Search index has been rebuilt successfully in 00:00:06
Douglas Ianitsky
źródło

Odpowiedzi:

118

Możesz zresetować indeksator za pomocą wiersza poleceń za pomocą indexer:resetpolecenia.

To da listę nazw indeksów:

php bin/magento indexer:info

Wynik:

design_config_grid                       Design Config Grid
customer_grid                            Customer Grid
catalog_category_product                 Category Products
catalog_product_category                 Product Categories
catalog_product_price                    Product Price
catalog_product_attribute                Product EAV
catalogsearch_fulltext                   Catalog Search
cataloginventory_stock                   Stock
catalogrule_rule                         Catalog Rule Product
catalogrule_product                      Catalog Product Rule

To da status listy indeksów:

php bin/magento indexer:status

Wynik:

Design Config Grid:                                Ready
Customer Grid:                                     Ready
Category Products:                                 Ready
Product Categories:                                Ready
Product Price:                                     Ready
Product EAV:                                       Ready
Catalog Search:                                    Ready
Stock:                                             Processing
Catalog Rule Product:                              Ready
Catalog Product Rule:                              Ready

Jeśli chcesz zresetować wszystkie indeksy, możesz uruchomić następujące polecenie:

php bin/magento indexer:reset

Jeśli chcesz zresetować określony indeks (np. cataloginventory_stock), Możesz uruchomić następującą komendę:

php bin/magento indexer:reset cataloginventory_stock
Mukesh Chapagain
źródło
1
Czy zresetowanie indeksu powoduje utratę danych oczekujących na indeksowanie?
ol'bob dole
Mam również ten sam problem w magento 2.2.4 enterprise editionrozwiązaniu powyższego kroku, ale mój produkt nie wyświetla się z przodu. jaki jest problem jakiś pomysł?
Chirag Patel,
Świetnie, bardzo mi pomogłem ..
Amy
10

Kiedy napotkałem tego rodzaju sytuację, musiałem uruchomić następujące zapytanie SQL bezpośrednio w bazie danych:

UPDATE indexer_state SET status = 'valid';

Nie udało mi się znaleźć żadnej opcji wymuszenia ponownego indeksowania, gdy indeks zawiódł wcześniej.

Aurélien FOUCRET
źródło
6

Na MySQL uruchom:

SET SQL_SAFE_UPDATES = 0;
update indexer_state set status = 'invalid' where status != 'valid';

Następnie uruchom terminal:

php bin/magento indexer:reindex

Zwykle dzieje się to, gdy limit pamięci jest niewielki, więc zwiększ konfigurację .htaccess lub NGINX .

Ankit Shah
źródło
1

Wystarczy użyć poleceń:

php bin/magento indexer:reset
php bin/magento indexer:reindex
php bin/magento cache:clean full_page block_html
Chiriac Victor
źródło
0

Możliwe jest również, że natrafisz na stan, w którym niektóre tabele są zablokowane w MySQL. W takim przypadku możesz wydać unlock tables;instrukcję SQL, aby móc kontynuować.

Wystąpił taki problem:

Category Products indexer process unknown error:
SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction, query was: INSERT INTO

Gdzie nie mogłem ponownie indeksować, dopóki blokada stołu nie została usunięta.

Czy zresetowanie indeksu powoduje utratę danych oczekujących na indeksowanie? - ol'bob dole

Indeksowanie to proces sprawdzania zestawu danych i przechowywania niektórych kluczy w celu sparowania z odpowiednimi danymi. W ten sposób stracisz swój obecny indeks, a on odtworzy go. Poza skutkami ubocznymi indeksowania zużywania zasobów lub niedokładności zestawu danych nie powinno być ryzyka ponownego indeksowania.

Joshua Fricke
źródło
0

Po prostu uruchom te polecenia

php bin / magento indexer: reset php bin / magento indexer: reindex

Atul Choubey
źródło
-2

Rozwiązałem ten problem, wykonując następujące czynności:

1. - upuść tabelę Customer_grid_flat

2.- Utwórz ponownie tabelę:

UTWÓRZ TABELĘ, JEŚLI NIE ISTNIEJE customer_grid_flat( entity_idint PODPIS NIE NOT NULL COMMENT „Identyfikator jednostki”, nametekst NULL COMMENT „Nazwa”, emailvarchar (255) NULL COMMENT „Email”, group_idint NULL COMMENT „Group_id”, created_atznacznik czasu NULL default KOMENT NULL „Created_at”, website_idint KOMENTARZ NULL „Identyfikator strony”, confirmationvarchar (255) KOMENTARZ NULL „Potwierdzenie”, created_intekst KOMENTARZ NULL „Utworzono”, dobdata KOMENTARZ NULL „Dob”, genderint KOMENTARZ NULL „Płeć”, taxvatvarchar (255) KOMENTARZ NULL „Taxvat”, lock_expiresznacznik czasu NULL domyślny KOMENTARZ NULL „Lock_expires”, shipping_fulltekst KOMENTARZ NULL „Wysyłka_pełne”, tekst KOMENTARZ billing_fullNULL ” Billing_full ”, billing_firstnamevarchar (255) NULL COMMENT„ Billing_firstname ”, billing_lastnamevarchar (255) NULL COMMENT „Billing_lastname”, billing_telephonevarchar (255) NULL COMMENT „Billing_telefon”, billing_postcodevarchar (255) NULL COMMENT „Billing_postcode”, billing_country_idvarchar (255) NULL COMMENT „Billing_country_id”, billing_regionvarchar (255) NULL COMMENT „Billing_region billing_streetvarchar (255) NULL COMMENT „Billing_street”, billing_cityvarchar (255) NULL COMMENT „Billing_city”, billing_faxvarchar (255) NULL COMMENT „Billing_fax”, billing_vat_idvarchar (255) NULL COMMENT „Billing_vat_id”, billing_companyvarchar (255) NULL COMMENT „Billing_company”, KLUCZ PODSTAWOWY ( entity_id), INDEKS CUSTOMER_GRID_FLAT_GROUP_ID( group_id), INDEKS CUSTOMER_GRID_FLAT_CREATED_AT( created_at), INDEKS CUSTOMER_GRID_FLAT_WEBSITE_ID( website_id), INDEKS CUSTOMER_GRID_FLAT_CONFIRMATION( confirmation),INDEKS CUSTOMER_GRID_FLAT_DOB( dob), INDEKSCUSTOMER_GRID_FLAT_GENDER( gender), Wskaźnik CUSTOMER_GRID_FLAT_BILLING_COUNTRY_ID( billing_country_id) FULLTEXT FTI_8746F705702DD5F6D45B8C7CE7FE9F2F( name, email, created_in, taxvat, shipping_full, billing_full, billing_firstname, billing_lastname, billing_telephone, billing_postcode, billing_region, billing_city, billing_fax, billing_company)) Komentarz = 'customer_grid_flat' silnik = InnoDB Charset = utf8 COLLATE = utf8_general_ci

Giancarlo Morales
źródło