Magento 2 Como desbloquear o processo de reindexação

65

Estou fazendo alguns testes no processo de reindexação do Magento e bloqueei o processo do índice de ações .

Como posso desbloquear esse 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
Douglas Ianitsky
fonte

Respostas:

118

Você pode redefinir o indexador através da linha de indexer:resetcomando com o comando

Isso fornecerá o nome da lista de índices:

php bin/magento indexer:info

Resultado:

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

Isso fornecerá a lista de status dos índices:

php bin/magento indexer:status

Resultado:

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 você deseja redefinir todos os índices, você pode executar o seguinte comando:

php bin/magento indexer:reset

Se você deseja redefinir um índice específico (por exemplo cataloginventory_stock), você pode executar o seguinte comando:

php bin/magento indexer:reset cataloginventory_stock
Mukesh Chapagain
fonte
11
A redefinição do índice perde algum dado aguardando para ser indexado?
ol'bob distribuir
Também estou enfrentando o mesmo problema em magento 2.2.4 enterprise editionque resolvi usando a etapa acima, mas meu produto não é exibido na frente. qual é o problema de alguma idéia?
Chirag Patel
Ótimo, me ajudou muito ..
Amy
10

Quando enfrentei esse tipo de situação, tive que executar a seguinte consulta SQL diretamente no banco de dados:

UPDATE indexer_state SET status = 'valid';

Não consegui encontrar nenhuma opção para forçar a reindexação quando um índice falhou anteriormente.

Aurélien FOUCRET
fonte
6

No MySQL, execute:

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

Em seguida, no seu terminal, execute:

php bin/magento indexer:reindex

Isso normalmente acontece quando o limite de memória é pequeno, então aumente sua configuração .htaccess ou NGINX .

Ankit Shah
fonte
1

Basta usar os comandos:

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

Também é possível que você corra em um estado em que algumas tabelas estejam bloqueadas no MySQL. Nesse caso, você pode emitir a unlock tables;instrução sql para poder continuar.

Encontrei um 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

Onde eu não poderia voltar a indexar até que o bloqueio da tabela fosse removido.

A redefinição do índice perde algum dado aguardando para ser indexado? - ol'bob dole

A indexação é um processo de examinar o conjunto de dados e armazenar algumas chaves para parear com os dados adequados. Você perderia seu índice atual no processo e o recria. Fora os efeitos colaterais do índice que esgotam os recursos ou o conjunto de dados é impreciso, não deve haver risco de reindexação.

Joshua Fricke
fonte
0

Basta executar esses comandos

php bin / indexador magento: redefinir php bin / indexador magento: reindex

Atul Choubey
fonte
-2

Resolvi esse problema com as seguintes etapas:

1.- soltar a tabela customer_grid_flat

2.- Recrie a tabela:

CREATE TABLE SE NÃO EXISTE customer_grid_flat( entity_idint NÃO ASSINADO COMENTÁRIO NULL 'ID da Entidade', nametexto COMENTÁRIO NULL 'Nome', emailvarchar (255) COMENTÁRIO NULL 'Email', group_idint COMENTÁRIO NULL 'Group_id', created_atregistro de data e hora COMENTÁRIO NULO 'Created_at', website_idint COMENTÁRIO NULL 'Website_id', confirmationvarchar (255) COMENTÁRIO NULL 'Confirmação', created_intexto COMENTÁRIO NULL 'Criado_em', dobdata COMENTÁRIO NULL 'Dob', genderint COMENTÁRIO NULL 'Gênero', taxvatvarchar (255) COMENTÁRIO NULL 'Taxvat', lock_expiresregistro de data e hora padrão NULL COMENTÁRIO NULL 'Lock_expires', shipping_fulltexto COMENTÁRIO NULL 'Shipping_full', billing_fulltexto COMENTÁRIO NULL ' Billing_full ', billing_firstnamevarchar (255) COMENTÁRIO NULL' Billing_firstname ', billing_lastnamevarchar (255) COMENTÁRIO NULL 'Billing_lastname', billing_telephonevarchar (255) COMENTÁRIO NULL 'telefone_faturamento', billing_postcodevarchar (255) COMENTÁRIO NULL 'código_de_ faturamento', billing_country_idvarchar (255) COMENTÁRIO NULL 'id_country_de_acordo', billing_regionvarchar (255) COMENTÁRIO NULL 'região_de_ Faturamento', billing_streetvarchar (255) NULL COMENTÁRIO 'Billing_street', billing_cityvarchar (255) NULL COMENTÁRIO 'Billing_city', billing_faxvarchar (255) NULL COMENTÁRIO 'Billing_fax', billing_vat_idvarchar (255) NULL COMENTÁRIO 'Billing_vat_id', billing_companyvarchar (255) NULL COMENTÁRIO 'Billing_company', CHAVE PRIMÁRIA ( 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), 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)) COMENTÁRIO = 'customer_grid_flat' MOTOR = innodb conjunto de caracteres = UTF-8 AGRUPAR = utf8_general_ci

Giancarlo Morales
fonte