捕捉execute异常mysql_MySQL Backup--Xtrabackup备份异常(MySQL Server has gone away)

错误场景

MySQL 版本:5.7.24

XtraBackup 版本:2.4.8

CentOS 版本:6.5

MySQL需要新增一个从库,为避免XtraBackup备份影响生产,选择在从库上进行备份,备份脚本为:

innobackupex \

--socket=${mysql_socket} \

--user=${mysql_user} \

--password=${mysql_pwd} \

--defaults-file=${mysql_config_file} \

--slave-info \

${backup_dir}

之前一直运行正常的脚本,最近却频繁报错:

failed to execute query SET SESSION lock_wait_timeout=31536000,MySQL server has gone away.

问题原因

MySQL报gone away错误的常见因素

1、MySQL连接超时(受参数wait_timeout和interactive_timeout控制)

2、MySQL连接被KILL

3、MySQL实例重启

排查问题后发现:

1、从库上没有业务操作,不存才超大事务。

2、从库上SQL线程应用主库BINLOG,但主库没有超大事务也没有DDL操作。

3、备份账号有管理员权限,有足够权限执行SET操作。

4、SET操作失败概率最近一段时间较高。

5、MySQL实例正常,连接超时时间配置较长。

6、开启通用日志,捕捉到KILL命令,发现自动KILL的程序有BUG

问题总结

innobackupex备份过程后期,会使用长连接到MySQL执行查询,在两次执行过程中连接处于SLEEP状态,而部署的自动KILL程序为释放连接会自动KILL这些长时间SLEEP的连接,导致备份失败。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值