Placement Policy SQL 对空分区提前做分配时,产生的 Empty Region 无法被 Merge

【 TiDB 使用环境】生产环境
【 TiDB 版本】6.5.2
【复现路径】Placement Policy SQL 对空分区提前做策略分配
【遇到的问题:问题现象及影响】

产生的 Empty Region 无法被 Merge Region。通过 pd operator add merge-region 手动操作成功后,一会又会 Split Region 产生两个 Empty Region。

undersize region 也同样会有这个问题,导致看监控这二者的 Region 数量一直不下降

使用pd operator add merge-region命令手动合并区域后,最终分裂的区域变成了两个空区域。 此问题还影响了尺寸过小的区域,导致受监视区域的数量没有按预期减少。

要排查和解决此问题,我建议执行以下步骤:

验证 TiDB 集群状态:检查集群状态,确保所有组件(包括 TiDB、PD 和 TiKV)都在运行,没有任何错误或警告。 使用以下命令验证每个组件的状态:

  • tidb-ctl display-cluster
  • pd-ctl config show all
  • tikv-ctl --host <tikv_host> --port <tikv_port> store
    检查 PD 日志:检查 PD 日志文件中是否存在任何可能揭示问题的相关错误消息或警告。 查找与区域拆分、合并或空区域相关的任何消息。 日志文件通常位于 PD 数据目录中。

Monitor Region Distribution:使用 PD API 或 TiDB Dashboard 监控区域分布。 注意区域数量和大小分布。 这将有助于确定是否有任何特定区域或区域有异常行为。

Check the Placement Rules:查看 TiDB 集群中配置的放置规则。 确保规则已正确定义并分配给所需的分区。 不正确或冲突的放置规则可能会导致意外的区域行为。

分析 Region 分裂合并过程:使用 PD API 或 TiDB Dashboard 监控 Region 分裂合并过程。 这将提供对导致空白区域生成的事件顺序的见解。 寻找触发问题的任何模式或特定条件。

Verify TiDB Configuration:检查 Region 拆分和合并相关的 TiDB 配置设置。 确保参数设置正确并符合您的集群要求。 注意 split-region-on-table、enable-one-way-merge 和 max-merge-region-size 等配置。

升级 TiDB 版本:考虑升级到更新版本的 TiDB,其中包括与区域拆分和合并相关的错误修复和改进。 检查您正在使用的版本的发行说明和变更日志,看看是否有与此问题相关的任何已知问题。

把日志发下