news 2026/7/7 3:27:33

pt-table-checksum 使用指南:在binlog格式为ROW的从库上使用时的注意细节

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
pt-table-checksum 使用指南:在binlog格式为ROW的从库上使用时的注意细节

pt-table-checksum可以在binlog格式为ROW的从库上运行,但需要正确配置。

工作原理

pt-table-checksum通过在主库上执行校验和查询,并利用MySQL复制机制将结果传播到从库:

  1. 在主库计算数据块的校验和
  2. 结果写入percona.checksums
  3. 通过复制同步到从库
  4. 在从库比较本地数据与主库传来的校验和

ROW格式下的特殊考虑

需要满足的条件:

  1. 启用binlog(无论主从)
  2. 设置binlog_format = STATEMENT用于校验和操作:
    -- 会话级设置(推荐)SETSESSIONbinlog_format='STATEMENT';-- 或者在my.cnf中为特定用户设置

正确的执行方式:

# 推荐:让工具自动处理格式转换pt-table-checksum\--replicate=percona.checksums\--no-check-binlog-format\--empty-replicate-table\--create-replicate-table\--recursion-method=hosts\h=主库IP,u=用户,p=密码# 或者显式设置pt-table-checksum\--set-vars"binlog_format=STATEMENT"\--replicate=percona.checksums\h=主库IP

常见问题和解决方案:

问题原因解决方案
复制错误ROW格式无法执行校验和语句使用--set-vars或让工具自动转换
权限不足需要SUPER权限改会话变量授予用户SUPER权限
不一致结果从库也在写入数据使用--pause-file控制节奏

推荐的最佳实践:

  1. 在主库执行(而不是直接在从库):

    pt-table-checksum\--replicate=percona.checksums\--no-check-binlog-format\--max-lag=1s\--check-interval=2\--recursion-method=dsn=D=percona,t=dsns\h=master_host
  2. 配置示例(my.cnf):

    [mysqld] # 默认可以保持ROW格式 binlog_format = ROW # pt-table-checksum所需 binlog_rows_query_log_events = ON log_slave_updates = ON
  3. 检查结果

    # 在从库上检查差异SELECT db, tbl, SUM(this_cnt)AS total_rows, COUNT(*)AS chunks FROM percona.checksums WHERE master_cnt<>this_cnt OR master_crc<>this_crc GROUP BY db, tbl;

注意事项

  • pt-table-checksum总是在主库执行计算
  • 从库只需要能够正常复制并读取校验和结果
  • ROW格式本身不阻止校验,但校验过程需要STATEMENT格式
  • ⚠️ 如果从库有写入(如双主架构),需格外小心
  • ⚠️ 大表可能产生大量binlog,建议在低峰期进行
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/7 12:45:54

104-Zookeeper集群搭建[leader+follower模式]

1.下载zookeeper http://archive.apache.org/dist/zookeeper/zookeeper-3.4.6/ 2.解压缩 在node1主机上&#xff0c;解压zookeeper的压缩包到/export/server路径下去&#xff0c;然后准备进行安装 Last login: Tue Dec 16 14:13:52 CST 2025 on pts/0 (base) [rootnode1 ~]# /e…

作者头像 李华
网站建设 2026/7/6 18:57:22

LobeChat主题颜色自定义教程:打造品牌专属风格

LobeChat主题颜色自定义教程&#xff1a;打造品牌专属风格 在企业纷纷将大语言模型集成到自有服务的今天&#xff0c;一个常见的尴尬场景是&#xff1a;后台已经接入了最先进的LLM引擎&#xff0c;前端却还停留在“默认蓝”的通用界面。用户第一眼看到的不是你精心设计的品牌形…

作者头像 李华
网站建设 2026/7/7 0:49:27

USB设备ID查询实用站点推荐

USB设备ID查询实用站点推荐 在嵌入式开发、系统调试或自动化部署中&#xff0c;你有没有遇到过这样的场景&#xff1a;插上一个USB设备&#xff0c;系统却只显示一串冷冰冰的1a86:7523&#xff1f;既不知道是哪家厂商&#xff0c;也不清楚具体型号&#xff0c;驱动无从下手&am…

作者头像 李华
网站建设 2026/7/7 8:40:49

Java集合-Map讲解

目录一、集合框架层次结构二、Collection集合2、Map集合1. HashMap - 最常用的Map2. LinkedHashMap - 保持插入顺序的Map3. TreeMap - 按键排序的Map4.ConcurrentHashMap - 高并发Map5.Collections.synchronizedMap6.性能对比表Java 集合框架&#xff08;Collections Framework…

作者头像 李华
网站建设 2026/7/7 5:35:09

Jenkins备份及回滚方式

PS:备份脚本存放位置&#xff08;使用时将脚本放置环境服务包下&#xff09;注意权限问题在使用前备份脚本和回滚脚本需要根据实际的服务名称进行修改&#xff0c;并创建备份目录使用SSH Pubishers执行脚本执行脚本后&#xff0c;备份文件存放位置&#xff08;以服务名称为文件…

作者头像 李华
网站建设 2026/7/7 11:26:30

如何在Git Bash中使用清华镜像快速克隆TensorFlow项目?

如何在Git Bash中使用清华镜像快速克隆TensorFlow项目&#xff1f; 在搭建深度学习开发环境时&#xff0c;你是否曾经历过这样的场景&#xff1a;打开 Git Bash&#xff0c;输入 git clone https://github.com/tensorflow/tensorflow.git&#xff0c;然后眼睁睁看着下载速度卡…

作者头像 李华