Magento 2 Как разблокировать процесс переиндексации


65

Я делаю некоторые тесты в процессе переиндексации Magento, и я заблокировал процесс биржевого индекса .

Как я могу разблокировать этот процесс?

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

Ответы:


118

Вы можете сбросить индексатор через командную строку с помощью indexer:resetкоманды.

Это даст список имен индексов:

php bin/magento indexer:info

Выход:

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

Это даст список индексов статуса:

php bin/magento indexer:status

Выход:

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

Если вы хотите сбросить все индексы, вы можете выполнить следующую команду:

php bin/magento indexer:reset

Если вы хотите сбросить определенный индекс (например cataloginventory_stock), вы можете выполнить следующую команду:

php bin/magento indexer:reset cataloginventory_stock

1
Сбрасывает ли сброс индекса какие-либо данные, ожидающие индексации?
Олбоб Доул

Я также сталкиваюсь с той же проблемой, magento 2.2.4 enterprise editionя решил, используя шаг выше, но мой продукт не отображается спереди. в чем проблема любой идеи?
Чираг Патель

Отлично, мне очень помогли ..
Эми

10

Когда я сталкивался с такой ситуацией, мне нужно было выполнить следующий SQL-запрос непосредственно в базе данных:

UPDATE indexer_state SET status = 'valid';

Мне не удалось найти какой-либо параметр для принудительной переиндексации, если индекс ранее не выполнялся.


6

На MySQL запустите:

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

Затем на вашем терминале запустите:

php bin/magento indexer:reindex

Обычно это происходит, когда ограничен объем памяти, поэтому увеличьте конфигурацию .htaccess или NGINX .



0

Также возможно, что вы столкнетесь с состоянием, когда некоторые таблицы заблокированы в MySQL. В этом случае вы можете выполнить unlock tables;SQL-оператор, чтобы иметь возможность продолжить.

Я столкнулся с такой проблемой:

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

Где я не мог переиндексировать, пока не была снята блокировка таблицы.

Сбрасывает ли сброс индекса какие-либо данные, ожидающие индексации? - Ольбоб Доул

Индексирование - это процесс просмотра набора данных и сохранения некоторых ключей для сопряжения с правильными данными. Вы потеряли бы свой текущий индекс в процессе, и он воссоздает его. Помимо побочных эффектов индексации, когда использование ресурсов или ваш набор данных являются неточными, не должно быть никакого риска для повторной индексации.


0

Просто запустите эти команды

php bin / magento indexer: сбросить php bin / magento indexer: переиндексировать


-2

Я решил эту проблему с помощью следующих шагов:

1.- удалить таблицу customer_grid_flat

2.- Пересоздайте таблицу:

CREATE TABLE IF NOT EXISTS customer_grid_flat( entity_idINT UNSIGNED NOT NULL COMMENT 'Entity ID', nameтекст NULL COMMENT 'Name', emailVARCHAR (255) NULL COMMENT 'Email', group_idИНТ NULL COMMENT 'GROUP_ID', created_atвременная метка NULL по умолчанию NULL COMMENT 'created_at', website_idИНТ NULL КОММЕНТАРИЙ 'Website_id', confirmationvarchar (255) NULL КОММЕНТАРИЙ 'Подтверждение', created_inтекст NULL КОММЕНТАРИЙ 'Created_in', dobдата NULL КОММЕНТАРИЙ 'Dob', genderint NULL КОММЕНТАРИЙ 'Пол', taxvatvarchar (255) NULL КОММЕНТАРИЙ 'Taxvat', lock_expiresотметка времени NULL по умолчанию NULL КОММЕНТАРИЙ 'Lock_expires', shipping_fullтекст NULL КОММЕНТАРИЙ 'Shipping_full', billing_fullтекст NULL COMMENT ' Billing_full ', billing_firstnamevarchar (255) NULL КОММЕНТАРИЙ' Billing_firstname ', billing_lastnamevarchar (255) NULL КОММЕНТАРИЙ 'Billing_lastname', billing_telephonevarchar (255) NULL КОММЕНТАРИЙ 'Billing_telephone', billing_postcodevarchar (255) NULL КОММЕНТАРИЙ 'Billing_postcode', billing_country_idvarchar (255) NULL КОММЕНТАРИЙ 'Billing_country_id', billing_regionvarchar (255) NULL COMMENT billing_streetvarchar (255) NULL КОММЕНТАРИЙ 'Billing_street', billing_cityvarchar (255) NULL КОММЕНТАРИЙ 'Billing_city', billing_faxvarchar (255) NULL КОММЕНТАРИЙ 'Billing_fax', billing_vat_idvarchar (255) NULL КОММЕНТАРИЙ 'Billing_vat_id', billing_companyvarchar (255) NULL COMMENT 'Billing ПЕРВИЧНЫЙ КЛЮЧ ( 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), ИНДЕКС 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)) К.П = 'customer_grid_flat' ДВИГАТЕЛЬ = InnoDB кодировка = utf8 COLLATE = utf8_general_ci

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.