Magento 2 Cómo desbloquear el proceso de reindexación

65

Estoy haciendo algunas pruebas en el proceso de reindexación de Magento y bloqueé el proceso del índice de acciones .

¿Cómo puedo desbloquear este proceso?

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
fuente

Respuestas:

118

Puede restablecer el indexador a través de la línea de indexer:resetcomando con el comando.

Esto le dará el nombre de la lista de índices:

php bin/magento indexer:info

Salida:

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

Esto le dará el estado de la lista de índices:

php bin/magento indexer:status

Salida:

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

Si desea restablecer todos los índices, puede ejecutar el siguiente comando:

php bin/magento indexer:reset

Si desea restablecer un índice particular (por ejemplo cataloginventory_stock), puede ejecutar el siguiente comando:

php bin/magento indexer:reset cataloginventory_stock
Mukesh Chapagain
fuente
1
¿Restablecer el índice pierde datos que esperan ser indexados?
ol'bob dole
También estoy enfrentando el mismo problema que magento 2.2.4 enterprise editionresolví usando el paso anterior, pero mi producto no se muestra en el frente. ¿Cuál es el problema alguna idea?
Chirag Patel
Genial, me ayudó mucho ..
Amy
10

Cuando me enfrenté a este tipo de situación, tuve que ejecutar la siguiente consulta SQL directamente en la base de datos:

UPDATE indexer_state SET status = 'valid';

No pude encontrar ninguna opción para forzar la reindexación cuando un índice ha fallado anteriormente.

Aurélien FOUCRET
fuente
6

En MySQL ejecute:

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

Luego, en su terminal ejecute:

php bin/magento indexer:reindex

Normalmente ocurre cuando el límite de memoria es pequeño, así que aumente su configuración .htaccess o NGINX .

Ankit Shah
fuente
1

Solo usa los comandos:

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

También es posible que se encuentre con un estado donde algunas tablas están bloqueadas en MySQL. En este caso, puede emitir una unlock tables;instrucción sql para poder continuar.

Me encontré con un problema como este:

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

Donde no podía volver a indexar hasta que se eliminó el bloqueo de la tabla.

¿Restablecer el índice pierde datos que esperan ser indexados? - ol'bob dole

La indexación es un proceso de mirar el conjunto de datos y almacenar algunas claves para emparejar con los datos adecuados. Perdería su índice actual en el proceso y lo volverá a crear. Fuera de los efectos secundarios del índice que usa recursos o que su conjunto de datos sea inexacto, no debería haber ningún riesgo de reindexación.

Joshua Fricke
fuente
0

Solo ejecuta estos comandos

indexador php bin / magento: restablecer indexador php bin / magento: reindex

Atul Choubey
fuente
-2

Resolví este problema con los siguientes pasos:

1.- caída de la tabla customer_grid_flat

2.- Volver a crear la tabla:

CREAR TABLA SI NO EXISTE customer_grid_flat( entity_idint NO FIRMADO NO NULL COMENTARIO 'Entidad ID', nametexto NULL COMMENT 'Nombre', emailvarchar (255) NULL COMMENT 'Correo electrónico', group_idint NULL COMMENT 'Group_id', created_atmarca de tiempo NULL default NULL COMMENT 'Created_at', website_idint COMENTARIO NULL 'Website_id', confirmationvarchar (255) COMENTARIO NULL 'Confirmación', created_intexto COMENTARIO NULL 'Created_in', dobfecha COMENTARIO NULL 'Dob', genderint COMENTARIO NULL 'Sexo', taxvatvarchar (255) COMENTARIO NULL 'Taxvat', lock_expiresmarca de tiempo NULL default COMENTARIO NULO 'Lock_expires', shipping_fulltexto COMENTARIO NULO 'Shipping_full', billing_fulltexto COMENTARIO NULO ' Billing_full ', billing_firstnamevarchar (255) COMENTARIO NULO' Billing_firstname ', billing_lastnamevarchar (255) COMENTARIO NULO 'Billing_lastname', billing_telephonevarchar (255) COMENTARIO NULO 'Billing_telephone', billing_postcodevarchar (255) COMENTARIO NULO 'Billing_postcode', billing_country_idvarchar (255) COMENTARIO NULO 'Billing_country_id', billing_regionvarchar (255) COMENTARIO NULO 'Billing_region', billing_streetvarchar (255) COMENTARIO NULO 'Billing_street', billing_cityvarchar (255) COMENTARIO NULO 'Billing_city', billing_faxvarchar (255) COMENTARIO NULO 'Billing_fax', billing_vat_idvarchar (255) COMENTARIO NULO 'Billing_vat_id', billing_companyvarchar (255) COMENTARIO NULO 'Billing_company', CLAVE PRIMARIA ( entity_id), ÍNDICE CUSTOMER_GRID_FLAT_GROUP_ID( group_id), ÍNDICE CUSTOMER_GRID_FLAT_CREATED_AT( created_at), ÍNDICE CUSTOMER_GRID_FLAT_WEBSITE_ID( website_id), ÍNDICE CUSTOMER_GRID_FLAT_CONFIRMATION( confirmation),ÍNDICE CUSTOMER_GRID_FLAT_DOB( dob), ÍNDICECUSTOMER_GRID_FLAT_GENDER( gender), Índice 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)) COMENTARIO = 'customer_grid_flat' ENGINE = innodb charset = utf8 COLLATE = utf8_general_ci

Giancarlo Morales
fuente