Magento 2 Come sbloccare il processo reindex


65

Sto effettuando alcuni test nel processo di reindice di Magento e ho bloccato il processo dell'indice azionario .

Come posso sbloccare questo processo?

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

Risposte:


118

È possibile ripristinare l'indicizzatore tramite riga di indexer:resetcomando con comando.

Ciò fornirà l'elenco di nomi di indici:

php bin/magento indexer:info

Produzione:

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

Ciò fornirà l'elenco degli stati degli indici:

php bin/magento indexer:status

Produzione:

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

Se si desidera ripristinare tutti gli indici, è possibile eseguire il comando seguente:

php bin/magento indexer:reset

Se si desidera ripristinare un indice particolare (ad es. cataloginventory_stock), È possibile eseguire il comando seguente:

php bin/magento indexer:reset cataloginventory_stock

1
Il ripristino dell'indice perde tutti i dati in attesa di essere indicizzati?
Ol'bob Dole,

Inoltre sto affrontando lo stesso problema in magento 2.2.4 enterprise editionho risolto utilizzando il passaggio sopra ma il mio prodotto non viene visualizzato sul davanti. qual è il problema qualsiasi idea?
Chirag Patel,

Ottimo, mi ha aiutato molto ...
Amy,

10

Quando ho affrontato questo tipo di situazione ho dovuto eseguire la seguente query SQL direttamente nel database:

UPDATE indexer_state SET status = 'valid';

Non sono stato in grado di trovare alcuna opzione per forzare la reindicizzazione in caso di fallimento di un indice in precedenza.


6

In esecuzione MySQL:

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

Quindi sul terminale eseguire:

php bin/magento indexer:reindex

Di solito succede quando il limite di memoria è basso , quindi aumenta la tua configurazione .htaccess o NGINX .


1

Basta usare i comandi:

php bin/magento indexer:reset
php bin/magento indexer:reindex
php bin/magento cache:clean full_page block_html

0

È anche possibile imbattersi in uno stato in cui alcune tabelle sono bloccate in MySQL. In questo caso è possibile emettere l' unlock tables;istruzione sql per poter procedere.

Ho riscontrato un problema come questo:

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

Dove non ho potuto reindicizzare fino a quando non è stato rimosso il blocco della tabella.

Il ripristino dell'indice perde tutti i dati in attesa di essere indicizzati? - Ol'bob Dole

L'indicizzazione è un processo di visualizzazione del set di dati e memorizzazione di alcune chiavi da associare ai dati corretti. Perderai il tuo indice attuale nel processo e lo ricrea. A parte gli effetti collaterali dell'indice che utilizza risorse o il set di dati non è accurato, non dovrebbe esserci alcun rischio di reindicizzazione.


0

Basta eseguire questi comandi

indicizzatore php bin / magento: ripristina l'indicizzatore php bin / magento: reindex


-2

Ho risolto questo problema con i seguenti passaggi:

1.- drop table customer_grid_flat

2.- Ricreare tabella:

CREA TABELLA SE NON ESISTE customer_grid_flat( entity_idint UNSIGNED NON NULL COMMENT '' Entity ID ', nametesto NULL COMMENT' 'Nome', emailvarchar (255) NULL COMMENT 'Email', group_idint NULL COMMENT '' Group_id ', created_attimestamp NULL default NULL COMMENT' 'Created_at', website_idint COMMENTO NULL 'Website_id', confirmationvarchar (255) COMMENTO NULL 'Conferma', created_intesto COMMENTO NULL 'Created_in', dobdata COMMENTO NULL 'Dob', genderint COMMENTO NULL 'Sesso', taxvatvarchar (255) COMMENTO NULL 'Taxvat', lock_expirestimestamp NULL default COMMENTO NULL 'Lock_expires', shipping_fulltesto NULL COMMENT '' Shipping_full ', billing_fulltesto NULL COMMENT' Billing_full ', billing_firstnamevarchar (255) NULL COMMENT' 'Billing_firstname', billing_lastnamevarchar (255) COMMENTO NULL 'Billing_lastname', billing_telephonevarchar (255) COMMENTO NULL 'Billing_telephone', billing_postcodevarchar (255) COMMENTO NULL 'Billing_postcode', billing_country_idvarchar (255) COMMENTO NULL 'Billing_country_id', billing_regionvarchar (255) NULL COMMENT '' Billing_region ', billing_streetvarchar (255) COMMENTO NULL 'Billing_street', billing_cityvarchar (255) COMMENTO NULL 'Billing_city', billing_faxvarchar (255) COMMENTO NULL 'Billing_fax', billing_vat_idvarchar (255) COMMENTO NULL 'Billing_vat_id', billing_companyvarchar (255) COMMENTO NULL 'Billing_company', CHIAVE PRIMARIA ( entity_id), INDICE CUSTOMER_GRID_FLAT_GROUP_ID( group_id), INDICE CUSTOMER_GRID_FLAT_CREATED_AT( created_at), INDICE CUSTOMER_GRID_FLAT_WEBSITE_ID( website_id), INDICE CUSTOMER_GRID_FLAT_CONFIRMATION( confirmation),INDICE CUSTOMER_GRID_FLAT_DOB( dob), INDICECUSTOMER_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)) COMMENTO = 'customer_grid_flat' ENGINE = InnoDB charset = utf8 COLLATE = utf8_general_ci

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.