当前位置: 首页 > 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.zskr.cn/news/110508.html

相关文章:

  • [Windows] FileOptimizer - 智能无损文件压缩优化工具
  • LobeChat能否部署在阿里云ECS?全流程部署避坑指南
  • NVIDIA TensorRT如何助力大模型Token生成加速?
  • 2025年12月豆神大语文课程深度测评:16年教研沉淀的文史教育品牌解析 - 品牌测评鉴赏家
  • 把虚拟机Ubuntu中的USB设备名称改为固定名称
  • 2025年宝宝起名老师联系方式汇总:全国资深专家官方联系通道与科学选择指引 - 品牌推荐
  • LobeChat能否用于编写Prometheus告警规则?可观测性增强
  • LobeChat能否隐藏源码信息?增强系统隐蔽性
  • sm3加密算法
  • 【UE5.3】使用Live Link Face给vrm角色添加表情和头部动作
  • EmotiVoice安装与环境配置指南
  • FLUX.1-Controlnet-Union新手快速配置指南
  • MySQL的索引底层数据结构?(B+树)为什么用B+树不用B树或哈希?
  • LobeChat能否应用于自动驾驶?车载语音助手升级
  • LangFlow实现社交媒体内容自动审核流程
  • 百度AI开放平台VS GPT-SoVITS:哪个更便宜?
  • Langflow自定义组件开发:从入门到实战
  • TensorRT镜像部署:从Git下载到Docker安装一步到位
  • 别再让你的多线程程序卡死!彻底掌握 POSIX 信号量在生产者-消费者模型中的同步与互斥
  • LobeChat能否用于创建客户画像?精准营销数据建模
  • 销量与口碑双赢:市场上最畅销的多重光散射仪是哪家? - 品牌推荐大师
  • Qwen3-8B-AWQ部署与长文本处理实战指南
  • Wan2.2-T2V-A14B + GPU:重塑AI视频生产力
  • 办公室下午茶小包装零食推荐:我工位抽屉里的“轻负担”组合(旺旺Fixbody) - AIEO
  • 基于鲹鱼优化算法的物流配送中心选址附Matlab代码
  • 国际象棋比赛数据:100万局专业对局数据库助力AI算法训练和棋艺分析研究
  • Seed-Coder-8B-Base实战:构建机器学习Pipeline
  • AI社交平台的用户体验设计:焦圈儿做了哪些创新?
  • 调节性 T 细胞(Tregs)科普
  • 社交+AI的化学反应:焦圈儿打造的新型互动模式