如何配置MySQL主从复制的pt-table-checksum实现线上数据一致性零停机校验

星明酱_4945

星明酱_4945

2026-06-07

567人浏览

原创

pt-table-checksum是percona toolkit中专用于mysql主从数据一致性校验的成熟工具,它通过主库分块计算校验和、复制到从库比对的方式实现低侵入、不锁表、不影响业务的高效校验。

如何配置mysql主从复制的pt-table-checksum实现线上数据一致性零停机校验

直接在主库运行 pt-table-checksum,它自动分块计算校验值、通过复制同步到从库比对,全程不锁表、不中断业务——这是目前最成熟、低干扰的线上一致性校验方式。

环境准备:三件事必须确认

校验结果是否可信,取决于底层状态是否就绪:

  • 所有从库 Seconds_Behind_Master = 0,且 Slave_IO_Running 和 Slave_SQL_Running 均为 Yes
  • 主库显式配置 report_host 和 report_port(不能依赖已废弃的 SHOW SLAVE HOSTS)
  • 校验账号(如 chkuser)已在每个从库执行授权:
    GRANT SELECT, REPLICATION CLIENT ON *.* TO 'chkuser'@'%'; FLUSH PRIVILEGES;

安全执行:关键参数要写全

避免默认发现逻辑带来的不确定性,用明确参数控制行为:

MySQL
MySQL

编写正确的MySQL查询,避免字符集、索引和锁方面的常见陷阱。

下载
  • --recursion-method=dsn=D=percona,t=dsns:提前在主库建好 percona.dsns 表,填入各从库连接信息(IP、端口、用户、密码),确保可控可审计
  • --replicate=percona.checksums:该表需在所有从库存在、结构一致、可写(工具会自动创建,但必须能被复制并落地)
  • --no-check-binlog-format:适配 ROW 模式(MySQL 5.7+ 默认),避免因 binlog 格式报错中断
  • --max-lag=1:从库延迟超 1 秒自动暂停,防止校验“追着延迟跑”
  • --chunk-time=0.5(默认值,可微调):每块处理目标时间 ≤0.5 秒,负载高时自动缩小块,保障业务查询不卡顿

结果验证:别只看命令行输出

Diffs = 0 不代表真正一致——校验结果默认静默写入 percona.checksums 表,需人工查表确认:

  • 校验完成后,立即在主库执行:
    SELECT db,tbl,chunk,master_cnt,this_cnt,master_crc,this_crc FROM percona.checksums WHERE master_cnt != this_cnt OR master_crc != this_crc;
  • master_cnt = 0 && this_cnt > 0:从库有数据、主库没有(典型如从库被误写或复制过滤漏主库变更)
  • this_cnt = 0 && master_cnt > 0:复制中断,整块数据未同步过去
  • 查询无返回,才表示当前校验范围内数据一致

避坑要点:常见失效场景

显示一致但实际偏差?大概率是以下原因:

  • Skipped 过多:默认 chunk 超时 0.5 秒,大字段或慢索引易触发;可加 --chunk-time=1.0 或 --chunk-size=5000,但不宜过大,否则锁等待风险上升
  • Diffs = 0 却知道数据不对:先登录从库执行 SELECT * FROM percona.checksums LIMIT 1;,确认该表是否真实同步并写入了校验值(若为空,说明复制链路未覆盖该表或权限不足)
  • 连不上从库:检查从库 bind_address 是否放开远程访问(不能是 127.0.0.1),MySQL 8.0+ 用户认证插件是否兼容(caching_sha2_password 需搭配新版 Percona Toolkit ≥3.4.0)

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

417

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

840

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

2432

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

816

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

709

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

374

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2176

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

4012

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

647

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL vs MySQL
PostgreSQL vs MySQL

共1课时 | 172人学习

使用phpenv集成环境安装极致CMS
使用phpenv集成环境安装极致CMS

共2课时 | 274人学习