MySQL DBA 复制故障处理及一致性校验(十一)

一般是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

案例

https://mp.weixin.qq.com/s?__biz=MjM5NzAzMTY4NQ==&mid=2653930276&idx=1&sn=40d37e6b9e7b4cf53b321da745e6dbbd&scene=0#wechat_redirect

 

posted @ 2019-07-13 22:01  geek_ace  阅读(396)  评论(0编辑  收藏  举报