mysql 双主延迟_MySQL双主环境复制延时故障处理

某MySQL双主环境遭遇主库B高延时问题,原因包括批量数据导入、无主键表结构、慢查询备份脚本等。解决方案包括优化导入脚本、清理GTID、重置复制并调整配置,确保双主复制正常,提高数据同步效率。
摘要由CSDN通过智能技术生成

故障现象

生产中的一组MySQL双主(主库A和主库B)+Keepalived高可用单写(主库A),出现B库高延时问题。检查B库复制状态如下图1:

d9961ffa5e0b6cb0816de949e2301992.png

(B库的复制状态—图1)

问题分析

1、和开发人员确认,这组MySQL双主每天有批量的数据导入操作,业务是网站展示前一天股票大盘指数,数据是由脚本批量导入,从而产生了复制延时。

2、通过对导数据脚本分析,导数据是对一个表先进行delete后进行insert操作;股指大盘展示数据只保留一天数据,因此确认不需要保留前一天数据,修改脚本先truncate表后insert数据,这样可以加快数据导入的速度,避免复制的延时。

3、检看表结构,表没有主键,没有主键会影响主从复制。

4、检查B库show full processlist(图2),有批量的查询操作,user是dm,host是localhost连接是本地执行的,接下来排查系统是否有定时任务。

5、查看进程(图3),有批量备份脚本执行,每天的备份脚本没有完成,并且不停的执行。

afbeeb20ac20ef426ebd681aa09303cf.png

(B库processlist信息-图2)

d4c1d8885606b0fa96ab6baf9dae7d89.png

(B库检查进程-图3)

处理问题过程

1、kill掉B库系统上的备份脚本进程

2、A库全备份传输到B库,从做A库到B库的复制

f7a2a65b34eb8922f01d0ad4d9bfd808.png

(A库作全备份并传到B库-图4)

3、B库导入A库的备份文件,过程中会有报错,因为备份文件含有GTID信息,需要登录到B库执行reset master清除GTID信息,导入备份文件时重新生成GTID,再次导入A库的备份文件时就可以成功导入。

34fa70e56ec9f1a54ff6f9294ff7e820.png

(B库导入A库备份-图5)

4、从做A库到B库的复制

1)reset slave all; 清除B库复制信息

2)Change master to 从做配置A库到B库的复制

3)Start slave;开启复制

4)Show slave status\G 检查复制状态已经是双YES(图6)

5)查看Master_Log_File=relay_master_log_file &&read_master_log_pos=exec_master_log_pos(图7)

20f03876467f3e575b4e68923d2ea107.png

(B库复制状态-图6)

52ef25ef87e1616884eeaf1f73dfa9d1.png

(B库复制状态-图7)

5、检查B库向A库的复制状态,由于B库执行了reset master清除了B库的GTID信息,所以A库复制报错1236找不到master的binary log。

0bbac1650d5ddc1709f9cd8dbae2790b.png

(A库复制状态-图8)

6、恢复B库到A库的复制,执行change master后检查A库复制状态。

1c22dd39719e2b0dfbffe0b889e87ec1.png

(A库复制状态-图9 )

7、双主环境的双向复制状态都恢复正常。

总结

此次双主环境产生复制延时的原因,主要是B库的备份脚本不停的执行,造成B库有批量的慢查询,备份脚本在B库不停执行的同时A库导数据脚本在删除数据和插入数据,A库在删除数据使用delete数据影响删除效率,造成复制延时。另外A库导数据所涉及的表没有主键也影响了B库复制数据重放速度,产生了复制延时。为了避免故障再次发生,需要给表添加主键,增加复制重放数据的执行效率,优化导数据脚本和备份脚本,来防止再次出现复制产生大量的延时的问题。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值