使用pt-table-checksum校验主从一致性,通过在主库计算checksum并同步到从库比对,发现不一致后用pt-table-sync修复,结合定期检查与监控保障数据一致。
MySQL主从数据一致性校验是保障复制环境数据可靠的关键步骤。由于网络延迟、SQL错误或配置问题,主从库之间可能出现数据不一致的情况。直接对比全量数据效率低,通常采用专门工具和策略来高效检测和修复。
pt-table-checksum 是 Percona Toolkit 中的核心工具,专为 MySQL 主从一致性校验设计。它在主库上运行,逐表计算 checksum,并将结果同步到从库进行比对。
基本使用方法:pt-table-checksum --host=master_host --user=root --password=xxx --nocheck-replication-filters --replicate=percona.checksums
校验完成后,查询从库上的 checksum 表差异:
SELECT * FROM percona.checksums WHERE master_cnt this_cnt OR master_crc this_crc;
发现不一致后,可使用 pt-table-sync 生成修复 SQL:
pt-table-sync --host=master_host --user=root --password=xxx --replicate=percona.checksums --print
pt-table-sync --host=master_host --user=root --password=xxx --replicate=percona.checksums --execute
注意:--execute 会直接修改从库数据,建议先备份相关表。对于简单场景,也可手动进行快速检查:

基本上就这些。定期运行 pt-table-checksum 可及时发现主从偏差,结合监控告警能有效保障数据一致性。整个过程需避开业务高峰期,避免影响数据库性能。