注意事项
为保证任务的正常运行,DRS提供了自动化的检查方法,在您启动DRS任务前,会针对源数据库和目标数据库的相关配置、条件进行检查。主要的检查项和对应的处理建议请参考DRS预检查项一览表。除了预检查项目之外,您还需要注意的事情如表4所示
表4 注意事项
类型名称 |
使用和操作限制 |
源数据库限制 |
- 源库不支持阿里云RDS的只读副本。
- 如果源数据库为自建库,并且安装了Percona Server for MySQL 5.6.x或Percona Server for MySQL 5.7.x时,内存管理器必须使用Jemalloc库,以避免因系统表频繁查询带来的内存回收不及时,并最终导致数据库Out of Memory问题。
- 源数据库不支持mysql binlog dump命令。
- 源数据库不支持reset master或reset master to命令,可能会导致DRS任务失败或者数据不一致。
- 相互关联的数据对象要确保同时迁移,避免迁移因关联对象缺失,导致迁移失败。
- 不支持外键级联操作。当外键是普通索引的时候,可能会导致表结构创建失败,建议改成唯一索引。
- 由于MySQL本身限制,若源库的一次性事件(EVENT)设定的触发时间在迁移开始前,该事件(EVENT)不会迁移到目标库。
|
使用限制 |
通用:
- 整个迁移过程中,不建议修改、删除连接源和目标数据库的用户的用户名、密码、权限,或修改源和目标数据库的端口号。
- 整个迁移过程中,不允许对正在迁移中的目标数据库进行修改操作(包括但不限于DDL、DML操作)。
- 整个迁移过程中,不允许源库写入binlog格式为statement的数据。
- 整个迁移过程中,不允许源库执行清除binlog的操作。
- 整个迁移过程中,不允许在源库创建库名为ib_logfile的数据库。
- 整个迁移过程中,不允许修改目标数据库主节点的浮动IP到只读节点。如果进行了修改,数据将会写入到只读节点,导致目标数据库和源数据库数据不一致。
- 需要DRS任务迁移索引的情况下,目标库对应表上不能存在同名但不同列信息的索引。全量阶段DRS会忽略对应表上已存在的同名索引,增量阶段DDL根据索引名操作索引时会触发错位问题。
全量迁移阶段:
- 任务启动和全量数据迁移阶段,请不要在源数据库执行DDL操作,否则可能导致任务异常。
增量迁移阶段:
- 选择表级对象迁移时,增量迁移过程中不支持对表进行重命名操作。
- 增量迁移阶段,不支持源数据库进行恢复到某个备份点的操作(PITR)。
- 增量迁移阶段,支持断点续传功能,在主机系统崩溃的情况下,对于非事务性的无主键的表可能会出现重复插入数据的情况。
- 增量迁移阶段,支持DDL语句。
结束任务:
常见故障排查:
- 在任务创建、启动、全量同步、增量同步、结束等过程中,如有遇到问题,可先参考“故障排查”章节进行排查。
|
其他限制 |
- 若专属计算集群不支持4vCPU/8G或以上规格实例,则无法创建迁移任务。
- 目标数据库实例必须是 GaussDB (for MySQL)主备实例。
- 多对一场景下,创建迁移任务时,目标库读写设置需要跟已有任务设置为一致。
- 由于无主键表缺乏行的唯一性标志,网络不稳定时涉及少量重试,表数据存在少量不一致的可能性。
- 对于表中的物理生成列,如果列是根据一个时间类型生成的,会存在此列数据不一致的可能性。
- 不支持目标数据库恢复到全量迁移时间段范围内的PITR操作。
- 源库和目标库为RDS for MySQ L实例 时,不支持带有TDE特性并建立具有加密功能表。
- 如果源库MySQL不支持TLS1.2协议,或者为版本较低的自建库(低于5.6.46或在5.7.0-5.7.28之间),需提交运维申请才能使用SSL测试连接。
- 在创建DRS任务之前,如果源或者目标数据库实例开启并设置了SQL限流规则,可能会导致DRS任务失败。
- 迁移任务目标数据库可以设置“只读”和“读写”。
- 只读:目标数据库实例将转化为只读、不可写入的状态,迁移任务结束后恢复可读写状态,此选项可有效的确保数据迁移的完整性和成功率,推荐此选项。
- 读写:目标数据库可以读写,但需要避免操作或接入应用后会更改迁移中的数据(注意:无业务的程序常常也有微量的数据操作),进而形成数据冲突、任务故障、且无法修复续传,充分了解要点后可选择此选项。
|