解決Adobe Commerce中遺失customer_grid_flat資料表的錯誤

當重疊的重新索引處理同時刪除和重新建立customer_grid_flat資料表時,發生Adobe Commerce 2.4.5中的customer_grid資料表遺失錯誤,導致​ SQLSTATE[ 42S02] ​失敗。 若要解決此問題,請驗證處理序衝突的管理員動作記錄檔、避免在cron執行期間手動重新索引、使用bin/magento indexer:reset customer_grid重設索引器,以及監視cron工作排程以防止未來的重疊。

說明 description

環境

  • 產品: Adobe Commerce 2.4.5版
  • 執行個體:生產

問題/症狀

  • 資料庫中缺少customer_grid_flat資料表。
  • SQLSTATE[ 42S02]之類的錯誤:找不到基底資料表或檢視: 1146資料表'z3gmkbwmwrl4g.customer_grid_flat'不存在 ​出現。

原因

發生此問題是因為當customer_grid完整索引子執行時,它會捨棄並重新建立customer_grid表格以調整欄,然後插入資料。 如果手動重新索引與indexer_reindex_all_invalid cron工作同時執行,一個處理序會刪除customer_grid資料表,而另一個處理序會嘗試將資料插入該資料表。 此重疊導致​ SQLSTATE[ 42S02] :找不到基底資料表或檢視: 1146資料表'z3gmkbwmwrl4g.customer_grid_flat'不存在 ​錯誤。

解決方法 resolution

執行完整重新索引來還原表格。 若要解決並防止此問題,請遵循下列步驟:

  1. 檢查管理員動作記錄檔,確認手動重新索引作業(bin/magento indexer:reindex customer_grid)是否與indexer_reindex_all_invalid cron工作的執行重疊。
  2. 請勿在bin/magento indexer:reindex customer_grid執行時執行indexer_reindex_all_invalid cron。 如果需要完整重新索引,請使用bin/magento indexer:reset customer_gridindexer_reindex_all_invalid cron會將完整重新索引處理為背景程式,自動重新建立並填入資料表,而不會發生衝突。
  3. 使用監視工具來追蹤何時執行重要的cron工作(例如indexer_reindex_all_invalid),以避免排程重疊的工作。
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f