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= :指定需要被检查的表,多个用逗号隔开
更多的参数请见官网
如有疑问建议请提出,谢谢!!
本文出自 “” 博客,请务必保留此出处