您的位置:首页 > 博客中心 > 数据库 >

mysql 主从一致性检查以及修复

时间:2022-03-10 18:09



一.简介:

可以打开gengral log很容易看到master和slave上执行的操作,分别去一段段的数据做对比校验 ,有不同的立刻用replace into在master去执行



[root@mysql2 data]# pt-table-sync --execute --sync-to-master  h=192.168.186.140,D=lisi,t=haowutest -uopt -p123

 这就是修复了

话虽如此但是要是不行的话 还是在两边都授个全部权限吧

mysql> grant all on *.* to we@‘%‘ identified by ‘123‘;
Query OK, 0 rows affected (0.03 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> \q
Bye
[root@mysql2 data]# pt-table-sync --execute --sync-to-master  h=192.168.186.138,h=192.168.186.140,D=lisi,t=haowutest -uwe -p123
OK 至此结束
[root@dbserver1 data]# mysql -phaowu123
mysql> select count(*) from lisi.haowutest;
+----------+
| count(*) |
+----------+
|  7676940 |
+----------+
1 row in set (7.25 sec)
[root@mysql2 data]# mysql -phaowu123
 
mysql> select count(*) from lisi.haowutest;
+----------+
| count(*) |
+----------+
|  7676940 |
+----------+
1 row in set (7.25 sec)


修复完成

 

七.命令参数详解

不指定参数,表示对本地的所有数据库的表进行检查。[root@mysql2 Desktop]#pt-table-checksum u=root,p=haowu123

参数说明:

TS            :完成检查的时间。

ERRORS        :检查时候发生错误和警告的数量。

DIFFS         :0表示一致,1表示不一致

ROWS          :行数。

CHUNKS        :被划分到表中的块的数目。

SKIPPED       :由于错误或警告或过大,则跳过块的数目。

TIME          :执行的时间。

TABLE         :被检查的表名。

参数意义:

--nocheck-replication-filters :不检查复制过滤器,建议启用。后面可以用--databases来指定需要检查的数据库。

--no-check-binlog-format      : 不检查复制的binlog模式,要是binlog模式是ROW,则会报错。就是说如果是row模式必须加上这玩意

--replicate-check-only :只显示不同步的信息。

--replicate=   :把checksum的信息写入到指定表中,建议直接写到被检查的数据库当中。

--databases=   :指定需要被检查的数据库,多个则用逗号隔开。

--tables=      :指定需要被检查的表,多个用逗号隔开

更多的参数请见官网

如有疑问建议请提出,谢谢!!








本文出自 “” 博客,请务必保留此出处

热门排行

今日推荐

热门手游