AnyBackup-Linux 环境下的 MySQL 云容灾失败,提示错误信息:MySQL数据库当前的日志模式为:MIXED,初始化复制过程中请将日志模式设置为 ROW 模式
关键字
云容灾、ROW 模式
适用产品
- AnyBackup 6.0.x
问题描述
AnyBackup 执行 MySQL 云容灾失败,执行输出提示错误,点击查看详情显示下列错误信息:
MySQL 容灾任务出现异常。(错误提供者:mysqlDr,错误值:110,错误位置:ncMySQLDrSchedule.cpp:96)(附加信息:MySQL数据库当前的日志模式为:MIXED,初始化复制过程中请将日志模式设置为ROW模式。(错误提供者:mysqlDr,错误值:e07cc01b,错误位置:ncMySQLDrExec.cpp:436)
问题影响
AnyBackup 无法成功完成 MySQL 云容灾。
问题原因
源端服务器 MySQL 数据库日志模式不为 ROW 模式,AnyBackup 执行 MySQL 云容灾初始化过程中生产端日志模式必须为 ROW 模式。
解决方案
为了解决该问题,需开启 MySQL 数据库的二进制日志并将日志模式设置为 ROW 模式。此解决方案中以 MySQL 实例的 root 用户为例,具体步骤如下:
警告:以下步骤需重启 MySQL 数据库服务,请安排业务停机时间。
1.登录 MySQL 数据库,执行命令如下:
mysql -uroot -p
2.查看数据库日志模式,确认 binlog_format 是否为 ROW 模式,执行命令如下:
show variables like ‘binlog_format’

3.开启数据库的二进制日志,进入 MySQL 安装目录下,编辑配置文件 my.ini,在 [mysqld] 下添加两行,log_bin=mysql_bin 和 binlog_format="ROW",保存后退出

4.重启 MySQL 数据库服务,命令如下:
service mysqld restart
5.重新登录 MySQL 数据库,查看数据库二进制日志模式,确认 binlog_format 是否为 ROW ,最终查到的状态如下图所示:
show variables like ‘binlog_format’

更多信息
二进制日志包含描述数据库更改的“事件”,例如表创建操作或对表数据的更改。关于 MySQL 的二进制日志,请参考: MySQL 官方文档。