解决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表'z3gmkbwwrl4g.customer_grid_flat'不存在

原因

出现此问题是因为运行customer_grid完整索引器时,它将删除并重新创建customer_grid表以调整列,然后插入数据。 如果手动重新索引和indexer_reindex_all_invalid cron作业同时运行,则一个进程将删除customer_grid表,而另一个进程将尝试将数据插入该表。 此重叠导致​ SQLSTATE[ 42S02] :未找到基表或视图: 1146表'z3gmkbwwrl4g.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. 使用监视工具来跟踪indexer_reindex_all_invalid等关键cron作业何时运行,以避免计划重叠的任务。
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f