级联Update Policy设软删除0秒后ExtentsMoveByQuery失败原因排查
级联Update Policy设置源表软删除周期为0秒后异常的解决办法
问题场景
我创建了两个级联运行的Update Policy,此前运行正常。但将两个源表的软删除周期设置为0秒以清理数据时,流程出现异常,错误信息如下:
参数名:参数'originalDestinationTables'未满足条件'要求以下两个集合中的表名去重计数相等:带有非空添加列表的extentsToReplaceByTableName与originalDestinationTables',位置:AddRemoveExtentsAsync in C:__w\1\s\Src\Engine\DataNode\Common\Entities\SchemaManager.cs: line 10742
原因分析
软删除周期设为0秒会导致源表的数据分片(extents)被立即清理,而级联Update Policy依赖源表的extents完成目标表的数据替换/更新操作。当源表extents被快速删除后,Policy执行时无法匹配到对应的分片集合,触发参数校验失败。
解决步骤
- 恢复源表软删除周期至合理值(比如默认7天),给Update Policy足够时间完成级联处理:
.alter table [源表名] policy softdelete @'{"SoftDeletePeriod": "7.00:00:00"}' - 手动触发Update Policy执行,确保数据同步完成:
.execute update policy [目标表名] - 若需立即清理数据,改用手动删除分片的方式替代软删除周期设为0:
.drop extents from table [源表名] where [过滤条件] - 检查两个级联Update Policy的配置,确认源表、目标表的关联逻辑无冲突,避免分片集合不匹配。
内容的提问来源于stack exchange,提问作者dueland
相关产品推荐
相关产品推荐

