解決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
執行完整重新索引來還原表格。 若要解決並防止此問題,請遵循下列步驟:
- 檢查管理員動作記錄檔,確認手動重新索引作業(
bin/magento indexer:reindex customer_grid)是否與indexer_reindex_all_invalidcron工作的執行重疊。 - 請勿在
bin/magento indexer:reindex customer_grid執行時執行indexer_reindex_all_invalid cron。 如果需要完整重新索引,請使用bin/magento indexer:reset customer_grid。indexer_reindex_all_invalidcron會將完整重新索引處理為背景程式,自動重新建立並填入資料表,而不會發生衝突。 - 使用監視工具來追蹤何時執行重要的cron工作(例如
indexer_reindex_all_invalid),以避免排程重疊的工作。
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f