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
การรีเซ็ตดัชนีจะสูญเสียข้อมูลใด ๆ ที่รอการทำดัชนีหรือไม่
ol'bob dole

ฉันยังประสบปัญหาเดียวกันในmagento 2.2.4 enterprise editionฉันแก้ไขโดยใช้ขั้นตอนข้างต้น แต่ผลิตภัณฑ์ของฉันไม่ปรากฏที่ด้านหน้า ปัญหาอะไรที่เป็นความคิด?
Chirag Patel

ดีช่วยฉันมาก ..
เอมี่

10

เมื่อฉันเผชิญสถานการณ์ประเภทนี้ฉันต้องเรียกใช้แบบสอบถาม SQL ต่อไปนี้โดยตรงลงในฐานข้อมูล:

UPDATE indexer_state SET status = 'valid';

ฉันไม่สามารถค้นหาตัวเลือกใด ๆ เพื่อบังคับให้ทำดัชนีใหม่เมื่อดัชนีล้มเหลวก่อนหน้านี้


6

ใน MySQL ทำงาน:

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

จากนั้นใน terminal ของคุณทำงาน:

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

ที่ฉันไม่สามารถจัดทำดัชนีใหม่ได้จนกว่าตัวล็อกตารางจะถูกลบออก

การรีเซ็ตดัชนีจะสูญเสียข้อมูลใด ๆ ที่รอการทำดัชนีหรือไม่ - ol'bob dole

การจัดทำดัชนีเป็นกระบวนการค้นหาชุดข้อมูลและจัดเก็บคีย์บางอย่างเพื่อจับคู่กับข้อมูลที่เหมาะสม คุณจะสูญเสียดัชนีปัจจุบันของคุณในกระบวนการและสร้างดัชนีขึ้นใหม่ นอกเหนือจากผลข้างเคียงของดัชนีโดยใช้ทรัพยากรหรือชุดข้อมูลของคุณไม่ถูกต้องไม่ควรมีความเสี่ยงในการทำดัชนีใหม่


0

เพียงแค่เรียกใช้คำสั่งเหล่านี้

php bin / magento indexer: รีเซ็ต php bin / magento indexer: reindex


-2

ฉันแก้ไขปัญหานี้ด้วยขั้นตอนต่อไปนี้:

1.- วางตารางลูกค้า _grid_flat

2.- สร้างตารางขึ้นใหม่:

สร้างตารางถ้าไม่ใช่ EXISTS customer_grid_flat( entity_idint ไม่ได้ลงชื่อ NULL COMMENT 'ID เอนทิตี', nameข้อความ NULL COMMENT 'ชื่อ', emailvarchar (255) ความคิดเห็น NULL 'อีเมล', group_idint NULL COMMENT 'Group_id', created_atประทับเวลา NULL COMMENT 'Created_at', website_idint ความคิดเห็น NULL 'Website_id', confirmationvarchar (255) ความคิดเห็น NULL 'การยืนยัน', created_inข้อความ NULL COMMENT 'Created_in', dobวันที่ความคิดเห็น NULL 'Dob', ความคิดเห็น NULL 'Dob', ความ genderคิดเห็น taxvatNULL 'Taxvat', การ lock_expiresประทับเวลา NULL NULL COMMENT 'Lock_expires', shipping_fullข้อความ NULL COMMENT 'Shipping_full', billing_fullข้อความ NULL COMMENT ' Billing_full ', billing_firstnamevarchar (255) NULL COMMENT' Billing_firstname ', billing_lastnamevarchar (255) NULL COMMENT 'Billing_lastname', billing_telephonevarchar (255) NULL COMMENT 'Billing_telephone', billing_postcodevarchar (255) NULL COMMENT 'Billing_postcode', billing_country_idvarchar (255) NULL COMMENT 'Billing_country_id', billing_regionNull COMMENT 'Billing_ountry' billing_streetvarchar (255) NULL COMMENT 'Billing_street', billing_cityvarchar (255) NULL COMMENT 'Billing_city', billing_faxvarchar (255) NULL COMMENT 'Billing_fax', billing_vat_idvarchar (255) NULL COMMENT 'Billing_vat_id', billing_companyvarchar (255) NULL COMMENT 'Billing_vat_id', คีย์หลัก ( 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) 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)) COMMENT = 'customer_grid_flat' ENGINE = InnoDB charset = utf8 เรียง = utf8_general_ci

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.