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.