错误场景
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的连接,导致备份失败。

MySQL Backup--Xtrabackup备份异常(MySQL Server has gone away)的更多相关文章

  1. xtrabackup备份(MySQL备份)与恢复

    xtrabackup备份(MySQL备份)与恢复 1. innobackupex参数选项 --no-timestamp: 不创建一个时间戳 --defaults-file=[MY.CNF] //指定配 ...

  2. Mysql使用xtrabackup备份失败处理

    在生产环境中使用的是xtrabackup,对mysql进行备份,每天0点开始备份,周日是全量备份,其他时间是基于周日做的增量备份,通过脚本实现,每天备份完成后会发送短信,突然有一天,备份全部失败,手动 ...

  3. xtrabackup备份还原MySQL数据库

    mysqldump 备份鉴于其自身的某些特性(锁表,本质上备份出来insert脚本或者文本,不支持差异备份),不太适合对实时性要求比较高的情况Xtrabackup可以解决mysqldump存在的上述的 ...

  4. MySQL Backup mysqldump备份流程学习

    我们都知道MySQL逻辑备份工具mysqldump可以保证备份数据的一致性,但是它是怎么保持一致性的? 本文不讨论mysqldump具体的选项和用法,一直对mysqldump的工作机制梳理的不太清楚, ...

  5. MySQL 基于xtrabackup备份—热备工具

    xtrabackup(仅对InnoDB存储引擎支持热备) percona公司开发 改进的MySQL分支:percona-server 存储引擎改进:InnoDB —> XtraDB 使用本地的R ...

  6. 黄聪:Mysql数据库还原备份提示MySQL server has gone away 的解决方法(备份文件数据过大)

    使用mysql做数据库还原的时候,由于有些数据很大,会出现这样的错误:The MySQL Server returned this Error:MySQL Error Nr. MySQL server ...

  7. 使用 xtrabackup 进行MySQL数据库物理备份

    0. xtrabackup的功能 能实现的功能: 非阻塞备份innodb等事务引擎数据库. 备份myisam表会阻塞(需要锁). 支持全备.增量备份.压缩备份. 快速增量备份(xtradb,原理类似于 ...

  8. 解析XtraBackup备份MySQL的原理和过程(转)

    原文:http://ourlinux.blog.51cto.com/274624/844859 XtraBackup是percona公司提供的开源工具,以热备Innodb表著称而被广泛采用. Xtra ...

  9. MySQL物理物理备份与还原工具xtraBackup

    (一)xtraBackup简介 xtraBackup是Percona公司开发的一款MySQL数据库备份软件,在备份模式中属于物理备份.其显著特点是开源.免费.备份执行过程中不会阻塞事物.备份可压缩.支 ...

随机推荐

  1. Mxnet学习笔记(3)--自定义Op

    https://blog.csdn.net/u011765306/article/details/54562282 前言 今天因为要用到tile操作(类似np.tile,将数据沿axises进行数据扩 ...

  2. AIX 系统参数配置

    AIX 系统参数配置 原创 Linux操作系统 作者:fanhongjie 时间:2008-05-08 22:46:37 540 0 AIX内核属于动态内核,核心参数基本上可以自动调整,因此当系统安装 ...

  3. SpringBoot @Autowired中注入静态方法或者静态变量

    注:用static去定义一个注入的方法或者配置文件值变量,编译时不会有任何异常,运行时会报空指针. Spring官方不推荐此种方法. 原理: https://www.cnblogs.com/chenf ...

  4. ROS tf-深入Time和TF

    博客转载自:https://www.ncnynl.com/archives/201702/1313.html ROS与C++入门教程-tf-深入Time和TF 说明: 介绍使用waitForTrans ...

  5. SqlServer Stuff

    SqlServer Stuff DECLARE @TAB TABLE ( UserID INT, UserName ) ) INSERT INTO @TAB ( UserID, UserName ) ...

  6. Bladex使用代码生成器操作步骤

    一.从私服上下载BladeX和Saber 二.运行BladeX所有服务 三.运行Saber 四.数据库创建自己需要使用的表(建议表名和字段名为:bldex_xxxx,xxx_xxxx,不要使用驼峰命名 ...

  7. linux grep的用法

    linux grep的用法<pre>[root@iZ23uewresmZ ~]# cat /home/ceshis.txtb124230 b034325 a081016 m7187998 ...

  8. c++中的不是数的数nan

    matlab中经常碰到nan,inf等特殊“数”,而在C++中也有相应的表示:例如std::numeric_limits <float>::quiet_NaN ();可以得到浮点型的nan ...

  9. 通过元类创建一个Python类

    通过元类创建一个Python类 最开始学pytohn的时候我们这样定义类 class ClassName: pass 当熟悉了元类的概念之后我们还可以这样创建 ClassName = type(&qu ...

  10. 超简单的react和typescript和引入scss项目搭建流程

    1.首先我们先创建一个react项目,react官网也有react项目搭建的命令 npx create-react-app my-app cd my-app 2.安装我们项目需要的样式依赖,这个项目我 ...