解决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
通过执行完全重新索引来恢复表。 要解决并防止出现此问题,请执行以下步骤:
- 通过检查管理员操作日志,验证手动重新索引操作(
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会将完整的重新索引作为后台进程处理,自动重新创建并填充表而不会发生冲突。 - 使用监视工具来跟踪
indexer_reindex_all_invalid等关键cron作业何时运行,以避免计划重叠的任务。
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f