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 用户文档。