# sync-diff-inspector 的使用 - 注意事项

__*sync-diff-inspector 使用*__
__*sync-diff-inspector 注意事项*__

+ 避免在业务高峰期间校验
+ 建议校验前先收集表的统计信息
+ SQL 修复数据需要先确认再执行
+ sync-diff-inspector 默认开启 sharding 校验
+ 如果表的主键或唯一键为 varchar 类型,需要在 sync-diff-inspector 的配置文件中增加 collation 设置

-------------------------------------------------------------
sync-diff-inspector 在校验数据时会消耗一定的服务器资源,需要避免在业务高峰期间校验。

在数据对比前,需要注意表中的 collation 设置。如果表的主键或唯一键为 varchar 类型,且上下游数据库中 collation 设置不同,可能会因为排序问题导致最终校验结果不正确,需要在 sync-diff-inspector 的配置文件中增加 collation 设置。

sync-diff-inspector 会优先使用 TiDB 的统计信息来划分 chunk,需要尽量保证统计信息精确,可以在业务空闲期手动执行 analyze table {table_name}。

table-rule 的规则需要特殊注意,例如设置了 schema-pattern="test1",table-pattern = "t_1",target-schema="test2",target-table = "t_2",会对比 source 中的表 test1.t_1 和 target 中的表 test2.t_2。sync-diff-inspector 默认开启 sharding,如果 source 中还有表 test2.t_2,则会把 source 端的表 test1.t_1 和表 test2.t_2 作为 sharding 与 target 中的表 test2.t_2 进行一致性校验。

生成的 SQL 文件仅作为修复数据的参考,需要确认后再执行这些 SQL 修复数据。