校验主从数据一致性

1.先安装pt工具

[[email protected] ~]# yum -y install percona-toolkit

2.主库数据:

root@localhost:mysql3316.sock  16:18:03 [zhangshuo]>select * from zs;
+----+--------------+
| id | name         |
+----+--------------+
|  1 | zhangshuo    |
|  2 | jie          |
|  3 | zhangsanfeng |
+----+--------------+
3 rows in set (0.00 sec)

3.从库数据:

root@localhost:mysql3317.sock  16:20:48 [zhangshuo]>select * from zs;
+----+-----------------+
| id | name            |
+----+-----------------+
|  1 | zhangshuo       |
|  2 | jie             |
|  3 | zhangsanfeng    |
|  4 | 从入门进阶      |
|  5 | 到删库跑路      |
+----+-----------------+
5 rows in set (0.00 sec)

4.很明显数据不一致,我们使用工具来检测:

首先要在从库配置文件中定义:

report_host=slave_ip

report_port=slave_port

root@localhost:mysql3316.sock  08:51:35 [percona]>grant all privileges on *.* to ‘repl‘@‘%‘ identified by‘repl‘;
root@localhost:mysql3316.sock  08:53:05 [percona]>flush privileges;

[[email protected] ~]# pt-table-checksum -S /tmp/mysql3316.sock -P 3316 --user=repl --password=repl --host=192.168.1.113 --databases=zhangshuo --recursion-method=‘hosts‘ --no-check-binlog-format --create-replicate-table --replicate=zhangshuo.checksums

            TS ERRORS  DIFFS     ROWS  CHUNKS SKIPPED    TIME TABLE
07-30T09:02:36      0      1        3       1       0   0.055 zhangshuo.zs
TS            #检测完成时间。
ERRORS        #检查时候发生错误的数量。
DIFFS         #0表示一致,1表示不一致。
ROWS          #表的行数。
CHUNKS        #被划分到表中的块的数目。
SKIPPED       #过多错误而跳过块的数目。
TIME          #执行时间
TABLE         #检查的表名

参数解析:

-S /tmp/mysql3316.sock    #指定sock

-P 3316    #指定端口

--user=repl    #指定用户

--password=repl    #指定密码

--host=192.168.1.113    #指定检测主机

--databases=zhangshuo    #指定检测库

--recursion-method=‘hosts‘    #发现从库方式

--no-check-binlog-forma    #如果是row格式会报错,需跳过。

--create-replicate-table --replicate=zhangshuo.checksums     #指定检测结果输出表

5.

时间: 2024-12-08 17:50:59

校验主从数据一致性的相关文章

mysql主从数据一致性校验及纠错工具

目录 1.概述 2.percona-tooldit工具的安装 3.新建用户 4.pt-table-checksum使用 5.pt-table-sync使用 6.个人总结 1.概述 假如你是一位运维人员,假如你生产环境上部署了mysql系统,再假如你线上的mysql是基于主从复制的架构,那恭喜你,它将可能会带给你主从数据不一致的"恶运". 由于mysql复制架构原生特性,主从服务器上的数据不可能做"同步"复制,所以延时是必然会有的,即使是不那么繁忙的服务器上,在业务不

pt-table-checksum校验mysql主从数据一致性

主从数据的一致性校验是个头疼的问题,偶尔被业务投诉主从数据不一致,或者几个从库之间的数据不一致,这会令人沮丧.通常我们仅有一种办法,热备主库,然后替换掉所有的从库.这不仅代价非常大,而且类似治标不治本的方案,让人十分不安.因此我们需要合适的工具,至少帮我们回答下面三个问题: 是从库延迟导致了用户看到的数据不一致,还是真的主从数据就不一致? 如果不一致,这个比例究竟多大? 下次还会出现吗? 回答清楚这几个问题,有助于我们决定是否修复,以及修复的方式,还可以帮我们找出不一致的数据,进而定位问题根源.

基于pt-table-checksum和pt-table-sync实现MySQL主从数据一致性校验

在基于MySQL逻辑复制原理的下的主从架构,经常会由于某些缘故产生主从数据不一致,从而导致主从复制进程报错中断.而基于定期去检查从库的show slave status\G的IO线程和SQL线程的状态,只能确认当前replication是正常的,却无法确认当前主从数据是否一致.幸好percona公司提供pt工具包,其中的pt-table-checksum和pt-table-sync相互配合,在基于一定的前提条件下,可以较好的完成主从数据一致性校验和修复,而不会较大程度上影响线上数据库的性能. p

percona-toolkit之pt-table-sync修复Mysql主从数据一致性

下载及用户赋权参考上篇文章percona-toolkit之pt-table-checksums检测Mysql主从数据一致性 先使用pt-table-checksums检测数据一致性,然后使用pt-table-sync进行主从一致性修复,注意修复的表必须有主键或者唯一索引 主库bash下执行: ./pt-table-checksum --nocheck-replication-filters --replicate=test.checksums --host=10.50.12.33 --port

使用percona-toolkit校验主从数据的一致性

主从数据校验使用percona-toolkit工具集的以下两个工具(主库上使用): pt-table-checksum  #检查主从数据是否一致, pt-table-sync #把主库数据同步到从库 适用场景如下: 1). 数据迁移前后,进行数据一致性检查 2). 当主从复制出现问题,待修复完成后,对主从数据进行一致性检查 3). 在从库上执行了误操作 4). 定期校验 原理: pt-table-checksum在主库上利用SBR格式对一段数据做hashcode函数运算,然后复制到从库上去检查,

pt-table-checksums监测Mysql主从数据一致性

官方网站:https://www.percona.com/doc/percona-toolkit/2.1/pt-table-checksum.html#dsn-options 环境主:10.50.12.33从:10.50.12.35****************************主从差异现象模拟****************************************主:mysql> create database gaoquan;mysql> use gaoquan;mysql

pt-table-checksum校验主从库数据库数据

pt-table-checksum校验与pt-table-sync,前者主要用于数据的校验,验证主从是否一致,后者主要用来修复数据,两者一般情况结合起来用可以修复数据不一致的问题. 一.pt-table-checksum 安装 下载工具包 的最新地址如下: https://www.percona.com/downloads/percona-toolkit/LATEST/安装pt-table-checksum 和pt-table-sync命令.需要先安装percona-toolkit 工具集 1.

MySQL主从 常见的错误及解决方案

一.错误日志解析: (1) [ERROR]1452:无法在外键的表插入参考主键没有的数据 1452:无法在外键的表插入或更新参考主键没有的数据.由于item_discovery.itemid字段(外键)参考了items.itemid字段(主键),当要在item_discovery表插数据时,如果items表的主键没有对应的数据,则无法插入,报1452错误.此时可以检查参考的表的主键是否有主库对应的数据,如果有,则插入参考的表相应的数据,再开启复制恢复SQL线程. (2) [ERROR]1032:

MySQL主从复制中常见的3个错误及填坑方案

一.问题描述 主从复制错误一直是MySQL DBA一直填不完的坑,如鲠在喉,也有人说mysql主从复制不稳定云云,其实MySQL复制比我们想象中要坚强得多,而绝大部分DBA却认为只要跳过错误继续复制就好啦,接下来不发生错误就好了,其实跳过错误就会有数据不一致的风险,数据不一致可能还会越来越严重,而我就复制错误中反复出现的1045.1032和1062错误引起的数据库主从不一致的的现象进行深入分析及给出一套完善的解决方案. (1) [ERROR]1452:无法在外键的表插入参考主键没有的数据 (2)