一般是sql_thread错误
1236错误
mysqldump备份数据重建复制
mysqldump -uxxx -p -s /tmp/mysql.sock --master-data=2 --single-transaction -A > backup.sql
reset master;
mysqldump -uxxx -p -s /tmp/mysql.sock < backup.sql
retrieved_gtid_set出现空洞没问题,但是如果executed_gtid_set有空洞就说明丢数据
修复retrieved_gtid_set空洞的办法
stop slave;reset slave all;change master to ...;start slave;
1062
出现问题的原因,从库有数据写入,或者主库crash重启,InnoDB数据没有持久化
1032
delete,update的记录在从库上被delete掉了
传统复制
stop slave;
set global sql_slave_skip_counter=1;
start slave;
gtid复制
(1)停止slave
mysql> STOP SLAVE;
(2)设置事务号,事务号从Retrieved_Gtid_Set获取
在session里设置gtid_next,即跳过这个GTID
mysql> SET @@SESSION.GTID_NEXT= '8f9e146f-0a18-11e7-810a-0050568833c8:4'
(3)设置空事物
mysql> BEGIN; COMMIT;
(4)恢复事物号
mysql> SET SESSION GTID_NEXT = AUTOMATIC;
(5)启动slave进程
mysql> START SLAVE;
架构变换
让slave日志停在同一位置
方法一
master执行
set sql_log_bin=0;
create table larry(id int);
set sql_log_bin=1;
drop table larry;
方法二
start slave sql_thread until
1.看看sql_thread在执行什么?
https://blog.csdn.net/fdsfdf3434/article/details/78652084
案例