一、检查详情
·备份集文件必须有效。
·备份集与目标库的大小写配置需要保持一致(lower_case_table_names)。
·目标库参数 max_allowed_packet 设置需要大于4M。
·目标库不能为只读权限,需要将 read_only 设置为 OFF。
二、检查备份集文件
备份集文件失效,需要重新选择其他可用的备份集文件,然后再次发起恢复任务。
三、修改目标库 lower_case_table_names 变量
lower_case_table_names 是 MySQL 设置大小写是否敏感的一个参数,不同的取值情况如下:
Windows 或 macOS 环境对大小写是不敏感的,但是 Linux 环境却是敏感的,为了保证不同系统的兼容性,需要将大小写敏感规则设置统一。
·0:表名存储为给定的大小写,比较的时候区分大小写。
·1:表名存储在磁盘是小写的,比较的时候不区分大小写。
·2:表名存储为给定的大小写,比较的时候是小写的。
如发生此类报错,请参考如下指导修改目标库的参数。
1. 登录数据库。
2. 查看备份集和目标库中的 lower_case_table_names 取值,备份集中的参数通过登录源数据库进行查看。
show variables like '%lower_case_table_names%';
3. 参考如下内容修改目标数据库的配置文件 my.cnf。
注意:my.cnf 配置文件的默认路径为 /etc/my.cnf,现场以实际情况为准。
lower_case_table_names = 1
4. 参考如下命令重启数据库。
[$Mysql_Dir]/bin/mysqladmin -u root -p shutdown[$Mysql_Dir]/bin/safe_mysqld &
5. 查看配置是否生效。
show variables like '%lower_case_table_names%';
系统显示结果类似如下:
mysql> show variables like '%lower_case_table_names%';+————————+——-+| Variable_name | Value |+————————+——-+| lower_case_table_names | 1 |+————————+——-+1 row in set (0.00 sec)
6. 重新执行校验任务。
四、修改目标库 max_allowed_packet 参数
max_allowed_packet 为最大允许的传输包。设置太大,会使用更多内存导致丢包,无法捕捉异常大事物包 SQL;设置太小,可能会导致程序报错,备份失败,也会导致频繁的收发网络包,影响系统性能。
如发生此类报错,请参考如下指导进行修复。
1. 登录目标数据库。
2. 修改 max_allowed_packet 参数。
set global max_allowed_packet = 4*1024*1024;
3. 查看配置是否生效。
show global variables like '%max_allowed_packet%';
系统显示结果类似如下:
mysql> show global variables like '%max_allowed_packet%';+————————+———+| Variable_name | Value |+————————+———+| max_allowed_packet | 4194304 |+————————+———+1 row in set (0.00 sec)
4. 重新执行校验任务。
五、修改目标库 read_only 参数
read_only 为目标库访问权限控制参数,DBS 进行数据库恢复时,需要具备目标数据库的读写权限,所以 read_only 需要设置为 OFF。
1. 登录目标数据库。
2. 修改 read_only 参数。
set global read_only = OFF;
3. 查看参数是否修改成功。
show global variables like '%read_only%';
系统显示结果类似如下:
mysql> show global variables like '%read_only%';+————————+——-+| Variable_name | Value |+————————+——-+| read_only | OFF |+————————+——-+1 row in set (0.00 sec)
4. 重新执行校验任务。