news 2026/7/5 15:29:25

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/5 5:21:17

LobeChat能否编写教案?教师备课自动化尝试

LobeChat 能否编写教案&#xff1f;教师备课自动化尝试 在一所普通中学的办公室里&#xff0c;一位语文老师正对着空白文档发愁。明天要讲《孔乙己》&#xff0c;可她已经连续加班三天准备公开课材料&#xff0c;教案改了五稿仍不满意&#xff1a;结构松散、学生活动单一、新课…

作者头像 李华
网站建设 2026/6/26 4:32:40

vLLM-Omni:全模态AI推理框架技术解析

vLLM-Omni&#xff1a;全模态AI推理框架技术解析 在大模型落地生产系统的热潮中&#xff0c;一个看似不起眼却极为关键的问题正困扰着无数开发者——为什么训练好的强大模型&#xff0c;一旦部署成API服务就变得“卡顿”、响应慢、成本高&#xff1f;明明GPU显存充足&#xff0…

作者头像 李华
网站建设 2026/7/2 3:01:55

18、基于位置点的恢复

基于位置点的恢复 恢复流程概述 指定位置点的恢复主要包含两步: 恢复全量备份。 应用全量备份之后的 binlog 到指定时间点。 测试环境准备 创建测试数据库和表: create database sbtest; create table sbtest.t1(id int auto_increment primary key, insert_time datetim…

作者头像 李华
网站建设 2026/7/4 19:52:46

LobeChat文件上传与语音交互实测:这些功能太惊艳了

LobeChat 文件上传与语音交互实测&#xff1a;这些功能太惊艳了 在智能助手逐渐从“能说话”迈向“懂场景”的今天&#xff0c;用户不再满足于简单的文本问答。我们期待的是一个能读文档、听声音、理解上下文&#xff0c;并像真人一样协助处理复杂任务的 AI 伙伴。而开源项目 L…

作者头像 李华
网站建设 2026/7/2 0:01:12

LobeChat日志记录与审计功能配置方法说明

LobeChat 日志记录与审计功能配置方法说明 在企业级 AI 应用日益普及的今天&#xff0c;一个看似简单的聊天界面背后&#xff0c;往往承载着复杂的安全、合规与运维需求。LobeChat 作为一款基于 Next.js 的开源大语言模型&#xff08;LLM&#xff09;交互平台&#xff0c;不仅提…

作者头像 李华
网站建设 2026/7/5 13:47:38

Qwen3-8B接入MCP实现动态工具调用

Qwen3-8B 接入 MCP 实现动态工具调用 在大模型从“能说”迈向“会做”的演进过程中&#xff0c;一个核心命题逐渐浮现&#xff1a;如何让轻量级语言模型真正具备行动能力&#xff1f;不是仅仅生成一段流畅的文本&#xff0c;而是能够感知用户意图、主动调用外部服务、完成真实…

作者头像 李华