当前位置: 首页 > news >正文

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,建议在低峰期进行
http://www.jsqmd.com/news/99810/

相关文章:

  • 深圳到合肥芜湖蚌埠淮南马鞍山淮北铜陵安庆黄山滁州阜阳宿州六安亳州池州宣城搬家公司搬家物流推荐!跨省搬家排行榜 - 物流人
  • pt-table-checksum 工具的校验和原理详解及其与物理文件计算指纹校验的区别
  • LobeChat能否编写教案?教师备课自动化尝试
  • [Windows] FileOptimizer - 智能无损文件压缩优化工具
  • 关系型数据库主流内容校验工具整理及介绍
  • LobeChat能否实现用户权限分级?管理员角色设计思路
  • EI会议推荐!2026年区块链技术与基础模型国际学术会议(BTFM 2026)
  • LobeChat能否部署在阿里云ECS?全流程部署避坑指南
  • NVIDIA TensorRT如何助力大模型Token生成加速?
  • 2025年起名老师联系方式汇总:全国资深专家联系通道与专业起名服务 - 品牌推荐
  • Vue.js 报错:Component “xxx“ should be a constructor
  • 2025年12月豆神大语文课程深度测评:16年教研沉淀的文史教育品牌解析 - 品牌测评鉴赏家
  • Qwen3-32B如何突破小语种翻译瓶颈?
  • 黑马云音乐开发实战(三):一行代码搞定界面逻辑,条件表达式的优雅用法
  • HunyuanVideo-Foley部署:本地与云端GPU加速全解析
  • 把虚拟机Ubuntu中的USB设备名称改为固定名称
  • 架构师基操之如何画出好的架构图?【转】
  • 一次生产环境 Tomcat 7 + JDK 7 应用启动失败的完整排查与修复实录 - 指南
  • LobeChat本地安装详细教程
  • 2025年专业起名老师联系方式汇总:全国资深专家联系通道与科学咨询指引 - 品牌推荐
  • 2025年低泡润湿分散剂供货厂家权威推荐榜单:润湿分散剂/抑泡润湿分散剂/环保润湿剂源头厂家精选 - 品牌推荐官
  • 2025年年终太原管道疏通推荐:权威榜单TOP10及核心服务对比分析 - 品牌推荐
  • LobeChat能否接入LinkedIn API?职业发展建议机器人
  • 2025年年终柳州管道疏通推荐:综合排名比较与真实用户评测报告 - 十大品牌推荐
  • waitGroup底层源码分析
  • 2025年宝宝起名老师联系方式汇总:全国资深专家官方联系通道与科学选择指引 - 品牌推荐
  • 2025年起名老师联系方式汇总:全国资深专家联系通道与专业起名服务指引 - 品牌推荐
  • 2025年起名老师联系方式汇总:全国资深专家官方联系通道与专业起名服务指引 - 品牌推荐
  • TensorFlow-GPU环境搭建与PyCharm配置
  • 2025年年终柳州管道疏通推荐:权威排名与用户真实评价汇总 - 十大品牌推荐