DRS预检查项一览表(1) 分类 预检查项 检查项详情 权限类 源数据库权限 全量迁移需要具备如下最小权限: SELECT、SHOW VIEW、EVENT。 全量+增量迁移需要具备如下最小权限: SELECT、SHOW VIEW、EVENT、LOCK TABLES、REPLICATION SLAVE、REPLICATION CLIENT。 用户迁移时,账户需要有mysql.user的SELECT权限。 权限类 目标数据库权限 提供的目标数据库账号必须拥有如下权限: SELECT、CREATE、ALTER、DROP、DELETE、INSERT、UPDATE、INDEX、EVENT、CREATE VIEW、CREATE ROUTINE、TRIGGER、REFERENCES、WITH GRANT OPTION。当目标库为8.0.148.0.18版本时,还需要有SESSIONVARIABLESADMIN权限。 用户迁移时,需要有mysql库的SELECT、INSERT、UPDATE、DELETE权限。 版本类 源数据库版本 支持5.5、5.6、5.7、8.0版本。 版本类 目标数据库版本 支持5.5、5.6、5.7、8.0版本。 版本类 迁移版本检查 仅支持目标数据库版本等于或高于源数据库版本。 参数类 GTID状态 源数据库GTID状态建议为开启状态,源数据库实例没有开启GTID的情况下不支持主备倒换,DRS任务会因为位点不续接而中断导致无法恢复。 参数类 性能参数 源数据库建议开启skipnameresolve,减少连接超时的可能性。 参数类 性能参数 源数据库logslaveupdates参数需设置为开启状态,否则会导致迁移失败。 参数类 性能参数 源数据库的binlogrowimage参数需设置为full,否则会导致迁移失败。 参数类 最大允许传输包的大小 DRS在迁移数据量大或迁移大字段情况下,源库maxallowedpacket参数过小可能会导致任务失败。 参数类 最大允许传输包的大小 DRS在迁移数据量大或迁移大字段情况下,目标库的maxallowedpacket参数值过小导致目标库数据无法写入造成全量迁移失败。 参数类 sqlmode取值检查 迁移的对象中包含引擎为MyISAM的表,则目标数据库sqlmode不能包含noenginesubstitution参数,否则可能会导致迁移失败。 增量迁移类 Binlog开启 增量迁移时,源数据库的Binlog日志必须打开,且Binlog日志格式必须为Row格式。 增量迁移类 Binlog保留时长 在磁盘空间允许的情况下,建议源数据库Binlog保存时间越长越好,建议为3天,设置为0,可能会导致迁移失败。 源数据库为自建MySQL时,通过设置expirelogsdays参数设置Binlog保留时间。建议将expirelogsday参数设置在合理的范围,确保恢复时断点处的Binlog尚未过期,以保证任务中断后的顺利恢复。 源数据库为RDS for MySQL时,设置binlog保留时间可参考《RDS用户指南》。 增量迁移类 serverid值设置 增量迁移时,必须设置MySQL源数据库的serverid。 如果源数据库版本小于或等于MySQL5.6,serverid的取值范围在2-4294967296之间。 如果源数据库版本大于或等于MySQL5.7,serverid的取值范围在1-4294967296之间。 增量迁移类 session变量设置 增量迁移时,如果设置session变量charactersetclient为binary,可能导致乱码。 目标数据库检查 磁盘空间检查 目标数据库实例必须有足够的磁盘空间。 目标数据库检查 状态检查 目标数据库实例的状态必须正常。 一致性检查 字符集 目标库和源库的字符集需要一致。 一致性检查 字符序 目标库和源库的collationserver需要一致。 一致性检查 时区 目标库和源库的timezone需要一致。 一致性检查 大小写敏感 目标库和源库的lowercasetablenames参数设置需要一致。 一致性检查 事务隔离级别 目标库和源库事务隔离级别需要一致。 一致性检查 groupconcat函数计算结果字符的最大长度 目标库和源库的groupconcatmaxlen参数需要一致 一致性检查 serveruuid参数 目标库和源库serveruuid参数不能相同。 一致性检查 InnoDB检查模式 目标库和源库innodbstrictmode需要一致。 一致性检查 数据块加密参数 目标库和源库blockencryptionmode需要一致。 一致性检查 SQL模式 目标库和源库sqlmode需要一致。 迁移对象类 选择对象检查 支持数据库、表、用户、视图、索引、约束、函数、存储过程、触发器(trigger)和事件(event)的迁移。 仅支持MyISAM和InnoDB表的迁移。 不支持系统库的迁移以及事件状态的迁移。 迁移对象类 无主键表检查 由于无主键表的性能低于主键表的性能,建议将无主键表修改为主键表。 迁移对象类 关联对象检查 相互关联的数据对象要确保同时迁移,避免迁移因关联对象缺失,导致迁移失败。 迁移对象类 外键引用操作检查 不支持外键级联操作。当外键是普通索引的时候,可能会导致表结构创建失败,建议改成唯一索引。 迁移对象类 同名检查 除了MySQL系统数据库之外,目标数据库不能包含与源数据库同名的数据库。 迁移对象类 表名规范检查 源数据库中的库名、表名、视图名不能包含:'<>/"以及非ASCII字符。 源数据库中的库名不允许以iblogfile开头,不能为ibbufferpool、ibdoublewrite、ibdata1、ibtmp1。 迁移对象类 加密表检查 当源库存在加密的表,需要确认目标库是否支持。如果目标库不支持,存在任务失败等风险。
来自: