Adobe Commerceで customer_grid_flat テーブルが見つからないエラーを解決します

Adobe Commerce 2.4.5 で customer_grid_flat テーブルが見つからないエラーが発生するのは、重複するインデックス再作成プロセスで customer_grid テーブルの削除と再作成が同時に行われ、SQLSTATE[ 42S02] エラーが発生した場合です。 これを解決するには、管理アクションログにプロセスの競合がないかどうかを確認し、cron 実行中に手動でインデックスを再作成せず、bin/magento indexer:reset customer_grid を使用してインデクサーをリセットします。また、cron ジョブスケジュールを監視して、今後の重複を防ぎます。

説明 description

環境

  • 製品 :Adobe Commerce、v2.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_grid を使用します。 indexer_reindex_all_invalid cron は、完全な再インデックスをバックグラウンドプロセスとして処理し、競合が発生することなくテーブルを自動的に再作成および設定します。
  3. 監視ツールを使用して、indexer_reindex_all_invalid などの重要な cron ジョブが実行されているタイミングを追跡し、重複するタスクのスケジュールを回避します。
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f