mysql跳过主从同步错误

方法一: 适用于5.5版本

mysql>slave stop;
mysql>SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1        #跳过一个事务
mysql>slave start

方法二: 通用

下载percona-toolkit(centos 7版本rpm包)
#wget https://www.percona.com/downloads/percona-toolkit/3.0.10/binary/redhat/7/x86_64/percona-toolkit-3.0.10-1.el7.x86_64.rpm
下载percona-toolkit源码包
# wget https://www.percona.com/downloads/percona-toolkit/3.0.10/binary/tarball/percona-toolkit-3.0.10_x86_64.tar.gz



基础依赖安装:
#yum install perl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker  perl-DBI  perl-DBD-MySQL perl-IO-Socket-SSL perl-Digest-MD5 perl-TermReadKey.x86_64

rpm安装
#rpm -ivh percona-toolkit-3.0.10-1.el7.x86_64.rpm

编译安装
# perl Makefile.PL
# make && make install

命令使用
#pt-slave-restart  --user=root --password=XXXX  --socket=/r2/mysqldata/mysql.sock  --error-numbers=1062


pt-slave-restart的使用
mysql主从同步遇到问题,指定跳过某个错误。对于开启GTID的复制进程也有用。
可以跳过所有错误,但是是否要执行跳过操作,要看错误提示和业务要求。
#./pt-slave-restart  --user=root --password=dkqb5ilwv9rKe~riBgqa  --socket=/r2/mysqldata/mysql.sock  --error-numbers=1062

但是对于mysql5.6以后,开启了多线程复制的,就不能跳过错误,会报错:
Cannot skip transactions properly because GTID is enabled and slave_parallel_workers > 0.  See 'GLOBAL TRANSACTION IDS' in the tool's documentation.
解决办法:
mysql> set global slave_parallel_workers=0;

 

你可能感兴趣的:(我的运维笔记,数据库相关)