有奖捉虫:办公协同&微信生态&物联网文档专题 HOT

检查详情

源库表的 row_format 不能为 FIXED
源库变量 connect_timeout 必须大于10。
源库不能为只读权限,需要将 read_only 设置为 OFF
MySQL 备份场景中,如果源库存在耗时较长的 SQL 在运行,会报警告,提示“源实例有耗时较长的 SQL 在运行,可能导致锁表失败进而校验任务失败,请稍后重试校验或对源实例中的 SQL 进行处理”。

修复方法

修改源库 row_format 参数

数据库中表的 row_format 的取值为 FIXED 时,表格中每行的存储长度超过限制值时会溢出,发生报错。因此需要修改为其他模式,如 DYNAMIC,使每行的存储长度会随内容的长度而变化。
如发生此类报错,请参考如下指导进行修复。
1. 登录源数据库。
2. 修改 row_format 参数为 DYNAMIC
alter table table_name row_format = DYNAMIC;
3. 查看配置是否生效。
show table status like 'table_name'\\G;
系统显示结果类似如下:
mysql> show table status like 'table_name'\\G;
*************************** 1. row ***************************
Name: table_name
Engine: InnoDB
Version: 10
Row_format: Dynamic
Rows: 5
......
1 row in set (0.00 sec)
4. 重新执行校验任务。

修改源库变量 connect_timeout

connect_timeout 为数据库的连接时间,超过 connect_timeout 设置值的连接请求将会被拒绝。如果设置过小,会导致数据库连接频繁断开,影响处理效率,因此建议该参数取值大于10。
如发生此类报错,请参考如下指导进行修复。
1. 登录源数据库。
2. 修改 connect_timeout 参数。
set global connect_timeout = 10;
3. 查看参数是否修改成功。
show global variables like '%connect_timeout%';
系统显示结果类似如下:
mysql> show global variables like '%connect_timeout%';
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| connect_timeout | 10 |
+------------------------+-------+
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. 重新执行校验任务。