Magento 2 So entsperren Sie den Neuindexierungsprozess

65

Ich mache einige Tests im Magento-Neuindexierungsprozess und habe den Aktienindexierungsprozess gesperrt .

Wie kann ich diesen Prozess entsperren?

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
quelle

Antworten:

118

Sie können den Indexer über die Befehlszeile mit indexer:resetBefehl zurücksetzen .

Dies gibt die Liste der Indexnamen an:

php bin/magento indexer:info

Ausgabe:

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

Dies gibt die Liste der Indizes Status:

php bin/magento indexer:status

Ausgabe:

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

Wenn Sie alle Indizes zurücksetzen möchten, können Sie den folgenden Befehl ausführen:

php bin/magento indexer:reset

Wenn Sie einen bestimmten Index zurücksetzen möchten (z. B. cataloginventory_stock), können Sie den folgenden Befehl ausführen:

php bin/magento indexer:reset cataloginventory_stock
Mukesh Chapagain
quelle
1
Verliert das Zurücksetzen des Index Daten, die darauf warten, indexiert zu werden?
Ol'bob Dole
Ich stehe auch vor dem gleichen Problem, das magento 2.2.4 enterprise editionich mithilfe des obigen Schritts gelöst habe, aber mein Produkt wird nicht auf der Vorderseite angezeigt. Was ist das Problem, eine Idee?
Chirag Patel
Großartig, hat mir sehr geholfen.
Amy
10

In einer solchen Situation musste ich die folgende SQL-Abfrage direkt in der Datenbank ausführen:

UPDATE indexer_state SET status = 'valid';

Ich konnte keine Option finden, um die Neuindizierung zu erzwingen, wenn ein Index zuvor fehlgeschlagen ist.

Aurélien FOUCRET
quelle
6

Auf MySQL laufen:

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

Dann auf Ihrem Terminal ausführen:

php bin/magento indexer:reindex

Es kommt normalerweise vor, wenn die Speicherkapazität begrenzt ist. Erhöhen Sie daher Ihre .htaccess- oder NGINX-Konfiguration .

Ankit Shah
quelle
1

Verwenden Sie einfach die Befehle:

php bin/magento indexer:reset
php bin/magento indexer:reindex
php bin/magento cache:clean full_page block_html
Chiriac Victor
quelle
0

Es ist auch möglich, dass Sie in einen Zustand geraten, in dem einige Tabellen in MySQL gesperrt sind. In diesem Fall können Sie eine unlock tables;SQL-Anweisung ausgeben, um fortfahren zu können.

Ich bin auf folgendes Problem gestoßen:

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

Wo konnte ich nicht neu indizieren, bis die Tabellensperre entfernt wurde.

Verliert das Zurücksetzen des Index Daten, die darauf warten, indexiert zu werden? - Ol'bob Dole

Indizierung ist ein Prozess, bei dem der Datensatz überprüft und einige Schlüssel gespeichert werden, um sie mit den richtigen Daten zu koppeln. Sie würden Ihren aktuellen Index dabei verlieren und er wird neu erstellt. Abgesehen von den Nebeneffekten, dass der Index Ressourcen verbraucht oder Ihr Datensatz ungenau ist, sollte kein Risiko für eine erneute Indizierung bestehen.

Joshua Fricke
quelle
0

Führen Sie einfach diese Befehle aus

php bin / magento indexer: setze den php bin / magento indexer zurück: reindex

Atul Choubey
quelle
-2

Ich habe dieses Problem mit den folgenden Schritten gelöst:

1.- Tabelle customer_grid_flat löschen

2.- Tabelle neu erstellen:

TABELLE ERSTELLEN, WENN NICHT EXISTIERT customer_grid_flat( entity_idint UNSIGNED NICHT NULL COMMENT 'Entity ID', nameText NULL COMMENT 'Name', emailvarchar (255) NULL COMMENT 'Email', group_idint NULL COMMENT 'Group_id', created_atZeitstempel NULL default NULL COMMENT 'Created_at', website_idint NULL COMMENT 'Website_id', confirmationvarchar (255) NULL COMMENT 'Confirmation', created_inText NULL COMMENT 'Created_in', dobDatum NULL COMMENT 'Dob', genderInt NULL COMMENT 'Gender', taxvatvarchar (255) NULL COMMENT 'Taxvat', lock_expiresZeitstempel NULL default NULL COMMENT 'Lock_expires', shipping_fullText NULL COMMENT 'Shipping_full', billing_fullText NULL COMMENT ' Billing_full ', billing_firstnamevarchar (255) NULL COMMENT' Billing_firstname ', billing_lastnamevarchar (255) NULL COMMENT 'Billing_lastname', billing_telephonevarchar (255) NULL COMMENT 'Billing_telephone', 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', PRIMARY KEY ( entity_id), INDEX CUSTOMER_GRID_FLAT_GROUP_ID( group_id), INDEX CUSTOMER_GRID_FLAT_CREATED_AT( created_at), INDEX CUSTOMER_GRID_FLAT_WEBSITE_ID( website_id), INDEX CUSTOMER_GRID_FLAT_CONFIRMATION( confirmation),INDEX CUSTOMER_GRID_FLAT_DOB( dob), INDEXCUSTOMER_GRID_FLAT_GENDER( gender), INDEX 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)) Bemerkung = 'customer_grid_flat' ENGINE = innodb charset = utf8 COLLATE = utf8_general_ci

Giancarlo Morales
quelle