欢迎访问机房运维工作室

爱数知识库

AnyBackup-MySQL 定时备份任务失败,显示错误信息:数据库未通过检测,无法备份当前 MySQL

频道:爱数知识库 日期: 浏览:21

AnyBackup-MySQL 定时备份任务失败,显示错误信息:数据库未通过检测,无法备份当前 MySQL

关键字

未通过检测

适用产品

  • AnyBackup 6.0.x
  • AnyBackup 5.0.x
  • 超易备 5.0.x

问题描述

执行 MySQL 数据库备份失败,执行输出显示如下错误信息:

MySQl 备份过程中,出现异常,任务未能正常结束。附加信息:数据库未通过检测,无法备份当前MySQL。

问题影响

AnyBackup 无法完成 MySQL 数据库备份。

问题原因

MySQL 数据库环境中存在一个长时间占用数据库的查询,导致备份软件在创建数据库快照点的时候卡死不返回。AnyBackup 备份软件在任务触发时会检测当前是否存在长时间的查询,默认超过60秒就算作长时间查询,当检测存在超过60秒的查询操作时则提示未通过检测。

解决方案

在备份计划发起前将长时间占用 MySQL 数据库的查询暂时停止,等备份完之后再启动,或者调整备份计划,等长时间占用 MySQL 数据库的查询结束后再发起备份计划。以下命令可供查询 MySQL 数据库的长查询信息:

show processlist;

以上示例中,Command 列为 Query 表示为查询操作,Time 列表示的是查询的时间,Time>60S 就会出现检测不通过。

更多信息

使用 MySQL 原生的备份方式,需要在每次备份前都使用 ftwrl 来加全局锁,刷新表的缓存。但是如果存在长查询的话,select 会锁定数据表,导致执行 ftwrl 操作等待, ftwrl 会加全局锁,然后刷新表的缓存。如果这个操作卡住,无法保证数据的完全一致性。