首页 > 数据库 >MySQL-PT数据校验和修复

MySQL-PT数据校验和修复

时间:2024-03-25 16:46:44浏览次数:22  
标签:PT pt -- 校验 192.168 master MySQL table

目录

pt-table-checksum

注意事项(在做检验之前一定要先检查如下配置)

  • 只能指定一个host,必须为主库的IP;
  • 在检查时会向表加S锁
  • 如果master和slave的binlog日志不是STATEMENT格式,要用--no-check-binlog-format选项
  • 运行之前需要从库的同步IO和SQL进程是YES状态
  • 表要有主键索引或唯一键索引(行数不一样 没有主键或者唯一约束,可以校验出来;内容不一样 没有主键或者唯一约束,不能校验出来)
  • 需要一个能同时访问主库和从库的账号
  • slave需要配置了report_host和report_port, 否则可能执行不成功(Diffs cannot be detected because no slaves were found. Please read the --recursion-method documentation for information.)
METHOD       USES
===========  =============================================
processlist  SHOW PROCESSLIST
hosts        SHOW SLAVE HOSTS
cluster      SHOW STATUS LIKE 'wsrep\_incoming\_addresses'
dsn=DSN      DSNs from a table
none         Do not find slaves

常用参数

--nocheck-replication-filters :不检查复制过滤器,建议启用。后面可以用--databases来指定需要检查的数据库。
--no-check-binlog-format      : 不检查复制的binlog模式,要是binlog模式是ROW,则会报错。
--replicate-check-only :只显示不同步的信息。
--recursion-method     :发现从库的方式
--replicate=    :把checksum的信息写入到指定表中,建议直接写到被检查的数据库当中。
--databases=    :指定需要被检查的数据库,多个则用逗号隔开。
--tables=       :指定需要被检查的表,多个用逗号隔开
h=192.168.1.128 :Master的地址
u=root          :用户名
p=123456        :密码
P=3306          :端口

使用案例

授权用户

create database pt;
GRANT SELECT, PROCESS, SUPER, REPLICATION SLAVE ON *.* TO 'pt'@'192.168.79.%' IDENTIFIED BY 'mysql';
grant create,delete ,update,insert,select  on pt.* to 'pt'@'192.168.79.%';

主从校验

在master库操作

  • 注意--recursion-method的取值
pt-table-checksum  --nocheck-replication-filters --no-check-binlog-format --replicate=pt.checksums    --databases=test  h=192.168.79.112,u=percona,p=mysql,P=3311  --max-load  Threads_running=200
pt-table-checksum  --nocheck-replication-filters --no-check-binlog-format --replicate=pt.checksums  --recursion-method=hosts   --databases=test  h=192.168.79.112,u=percona,p=mysql,P=3311  --max-load  Threads_running=200 --chunk-size-limit=8

检查slave上校验信息表

SELECT db, tbl, SUM(this_cnt) AS total_rows, COUNT(*) AS chunks
FROM pt.checksums
WHERE (
 master_cnt <> this_cnt
 OR master_crc <> this_crc
 OR ISNULL(master_crc) <> ISNULL(this_crc))
GROUP BY db, tbl;
+------+------------+-------+------------+-------------+----------------+----------------+----------+----------+------------+------------+---------------------+
| db   | tbl        | chunk | chunk_time | chunk_index | lower_boundary | upper_boundary | this_crc | this_cnt | master_crc | master_cnt | ts                  |
+------+------------+-------+------------+-------------+----------------+----------------+----------+----------+------------+------------+---------------------+
| test | runoob_tbl |     1 |   0.002375 | NULL        | NULL           | NULL           | 14dc5712 |        3 | 14dc5712   |          3 | 2019-06-24 11:34:59 |
| test | tbosc      |     1 |    0.00312 | NULL        | NULL           | NULL           | 5476b1ca |        2 | a32d2ec6   |          3 | 2019-06-24 11:34:59 |
+------+------------+-------+------------+-------------+----------------+----------------+----------+----------+------------+------------+---------------------+
2 rows in set (0.00 sec)

以上的查询结果为空则表示校验的结果一致,主备库数据一致,否者表示校验结果不一致。
可以看到当前节点和master节点数据条目不一样

遇到的问题

pt-table-sync

  • 检测到主数据差异后,使用该工具修复主从不一致的数据
  • 注意权限问题,根据报错赋予相应权限即可
pt-table-sync --replicate=test.checksums h=192.168.79.112,u=percona,p=mysql,P=3311 h=192.168.79.112,u=percona,p=mysql,P=3312  --print

注意双主模式的修复

  • 双主模式master2修复自身数据
pt-table-sync --execute --sync-to-master h=master2,D=db,t=tbl
pt-table-sync --execute --sync-to-master  h=10.25.1.10,u=root,p='xxx' --databases=activity --tables=xxx --max-load thread_runing=20

标签:PT,pt,--,校验,192.168,master,MySQL,table
From: https://www.cnblogs.com/xulinforDB/p/18094738

相关文章

  • PT工具使用介绍
    PT工具的使用目录PT工具的使用pt-online-schema-change在线添加字段在线添加索引在线修改表字段pt-archiver数据清理数据归档参数说明:pt-archiverBug不会迁移max(id)那条数据的解决方法:删除老数据(单独的删数据操作不用指定字符集)复制数据到其他mysql实例,且不删除source的数据(......
  • 高性能JavaScript——6、快速响应的用户界面
    大多数浏览器让一个单线程共用于执行JavaScript和更新用户界面。每个时刻只能执行其中一种操作,这意味着当JavaScript代码正在执行时用户界面无法响应输入,反之亦然。当JavaScript代码执行时,用户界面处于“锁定”状态。管理好JavaScript的运行时间对Web应用的性能非常重要。......
  • ChatGPTGPT4科研应用、数据分析与机器学习、论文高效写作、AI绘图技术教程
    原文链接:ChatGPTGPT4科研应用、数据分析与机器学习、论文高效写作、AI绘图技术教程https://mp.weixin.qq.com/s?__biz=MzUzNTczMDMxMg==&mid=2247598798&idx=2&sn=014f5ae90306a3b1e8fd87ab58561411&chksm=fa820329cdf58a3f72799a43016b223057fd1bd022849e607d1e62193dcdc3b26b......
  • 【附源码】JAVA计算机毕业设计银行助学贷款管理系统(springboot+mysql+开题+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着高等教育的普及和深化,越来越多的学生选择通过助学贷款来支持自己的学业。然而,传统的助学贷款管理方式往往存在效率低下、信息不透明、审批流程繁......
  • 【附源码】JAVA计算机毕业设计银行排号系统(springboot+mysql+开题+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景在当今信息化、数字化的时代,银行业作为金融体系的基石,其服务质量和效率直接影响到客户的满意度和忠诚度。然而,传统的银行排号系统往往存在着效率低下......
  • 【附源码】JAVA计算机毕业设计音频服务系统(springboot+mysql+开题+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展和人们生活水平的提高,音频服务在人们的日常生活中扮演着越来越重要的角色。从个人娱乐到商业应用,音频内容的需求日益旺盛,音频......
  • Java毕业设计-基于springboot开发的逍遥大药房管理系统-毕业论文+答辩PPT(附源代码+演
    文章目录前言一、毕设成果演示(源代码在文末)二、毕设摘要展示1、开发说明2、需求分析3、系统功能结构三、系统实现展示1、系统功能模块2、管理员功能模块四、毕设内容和源代码获取总结Java毕业设计-基于springboot开发的逍遥大药房管理系统-毕业论文+答辩PPT(附源代码......
  • Java毕业设计-基于springboot开发的网上图书商城平台-毕业论文+答辩PPT(附源代码+演示
    文章目录前言一、毕设成果演示(源代码在文末)二、毕设摘要展示1、开发说明2、需求分析3、系统功能结构三、系统实现展示1、系统功能模块2、管理员功能模块3、卖家功能模块四、毕设内容和源代码获取总结Java毕业设计-基于springboot开发的网上图书商城平台-毕业论文+答......
  • [MySQL]细节与使用经验
    【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)https://www.cnblogs.com/cnb-yuchen/p/18032065出自【进步*于辰的博客】纯文字阐述,内容比较干。并且,由于考虑到时间长了恐有所遗漏,便即兴记录,并没有对内容进行筛选、排序。因此,大家在阅读时可以直接Ctrl+F进行......
  • PTP时钟服务器(NTP时间同步服务器)建设施工技术方案
    PTP时钟服务器(NTP时间同步服务器)建设施工技术方案PTP时钟服务器(NTP时间同步服务器)建设施工技术方案京准电子科技官微——ahjzsz 一、施工简介:应贵司要求,我司提供卫星时钟系统(NTP时钟同步服务器),为解决全网络计算机系统时间同步问题; 二、施工须知:1.使用本装置之前,请您仔细阅......