TiDB 主从集群的数据校验

    Syncpoint 通过利用 TiDB 提供的 snapshot 特性,让 TiCDC 在同步过程中维护了一个上下游具有一致性 snapshot 的 。把校验动态数据的一致性问题转化为了校验静态 snapshot 数据的一致性问题,达到了接近数据一致性实时校验的效果。

    然后,你只需要在 sync-diff-inspector 中配置 snapshot 即可对 TiDB 主从集群的数据进行校验。以下 TiCDC 配置示例为创建的同步任务开启 Syncpoint 功能:

    以上 表中各列所代表的信息如下:

    • changefeed:插入该条记录的 Changefeed 的 ID。由于不同的 TiCDC 集群可能会存在重名的 Changefeed,所以需要通过 TiCDC 集群 ID 和 Changefeed 的 ID 来确认一个 Changefeed 所插入的 ts-map
    • primary_ts:上游数据库 snapshot 的时间戳。
    • secondary_ts:下游数据库 snapshot 的时间戳。
    • TiCDC 在创建 Changefeed 前,请确保 TiCDC 的配置项 enable-sync-point 已设置为 true,这样才会开启 Syncpoint 功能,在下游保存 ts-map。完整的配置请参考 。
    • 需要调整 TiKV 的 GC 时间,保证在校验时 snapshot 对应的历史数据不会被执行 GC。建议调整为 1 个小时,在校验后再还原 GC 设置。
    • 以上配置只展示了 Datasource config 部分,完整配置请参考 sync-diff-inspector 用户文档