MySQL5.7.36之主从复制常见问题及解决方案-centos7

1、主库删除操作导致从库sql_thread线程关闭

        解决方案:从库sql_thread线程跳过当前步骤

第一步:停止sql_thread线程 stop slave sql_thread;
第二步:查找错误位置 show slave status \G;
Retrieved_Gtid_Set: 1864fb2f-54d7-11ed-81c4-000c2991c366:1-15 #当前io_thread已经接收到的binlog
Executed_Gtid_Set: 1864fb2f-54d7-11ed-81c4-000c2991c366:1-15,
59d4fb2f-54d8-11ed-8d61-000c29fb87c6:1-3 #当前从库sql_thread执行的二进制日志位置
第三步:将gtid分配给下一个事务 set gtid_next='59d4fb2f-54d8-11ed-8d61-000c29fb87c6:4'; #4=从库错误的当前位置+1
第四步:执行一个空事件 begin;commit;
第五步:设置系统自动分配gtid set gtid_next=automatic;
第六步:启动sql_thread线程 start slave sql_thread;

2、主从复制中断怎么解决

        解决方案:从库复制中断要考虑两个线程:io_thread与sql_thread

        io_thread:链接主库,接收binlog,写入relay-log,更新master.info

        sql_thread:主要是因为逻辑不满足SQL执行,sql_thread回放是逻辑操作

        案例:sql_thread停止。主库插入一条数据,但是从库已经有了这条记录

第一步:停止sql_thread线程 stop slave sql_thread;
第二步:查找错误指定的位置 show slave status \G;
第三步:主库服务器上的改动不记录binlog,不会复制到从库(关闭binlog日志) set sql_log_bin=0;
第四步:删除错误位置的数据 delete from tablename where id=从表已经有了的那条数据
第五步:恢复记录binlog并复制到从库(开启binlog日志) set sql_log_bin=1;
第六步:启动sql_thread线程 start salve sql_thread;
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值