迁移权限要求
当使用 DTS 进行本地 MySQL->RDS for MySQL迁移时,在不同迁移类型,对源端和目标端 MySQL 实例的迁移帐号权限要求如下:
迁移类型 | 结构迁移 | 全量迁移 | 增量迁移 |
---|---|---|---|
本地 MySQL 实例 | select | select | super select replication slave replication client |
目标端 RDS for MySQL 实例 | 读写权限 | 读写权限 | 读写权限 |
本地MySQL实例创建账号:
mysql>grant all privileges on *.* to z1@localhost; mysql>select * from user where user='z1' and host='localhost' G;
迁移流程
DTS 在进行本地 MySQL->RDS for Mysql 数据迁移时,为了解决对象间的依赖关系,提高迁移成功率。结构对象及数据的迁移顺序如下:
- 结构对象:表、视图的迁移
- 全量数据迁移
- 结构对象:存储过程、函数、触发器、外键的迁移
- 增量数据迁移
如果任务没有选择增量数据迁移,那么当全量数据迁移完成后,任务列表中的迁移进度为:结构迁移 100%,全量迁移 100%,迁移状态为“迁移中”。此时迁移任务正在进行步骤(3) 中的对象的迁移。此时,请勿手动结束任务,否则会造成迁移数据丢失。
在数据迁移过程中,如果待迁移的数据库在目标 RDS 实例中不存在,那么 DTS 自动会创建。
如果需要进行增量迁移,那么需要确认源库的 binlog 是否开启,格式是否满足要求。具体确认项如下。
-
确认源库的 binlog 是否开启。
如果这里面查询出来的 log_bin=OFF,则说明源库没有开启 binlog,这个时候如果需要使用增量迁移的话,需要修改本地 MySQL 的 binlog 配置,打开 binlog 日志。
- 开启二进制日志,修改 log_bin=mysql_bin。
- 设置 binlog 模式为 row,修改 binlog_format=row。
- 配置 server_id 大于 1,即 server_id=某一个大于 1 的整数。
- 如果版本为 5.6,修改 binlog_row_image=full。
- 修改完成后,重启 MySQL 进程。
-
确认源库的 binlog 格式为 row 模式。
使用上面的命令确认本地 MySQL 的 binlog 格式是否为 ROW,如果查询出来的结果不为 ROW 的话,那么通过如下的参数设置命令将模式修改为 ROW。
当修改完成后,建议将源库上已有的连接 KILL 掉,并且重新连接,否则可能出现其他的连接依然使用 statement 格式记录 binlog 日志。
-
当本地 MySQL 版本大等于 5.6.2 时,确认源库的 binlog_row_image=full。
如果查询出来的结果不为 FULL 的话,那么通过如下的参数设置命令将其修改为 FULL。
参考网址:
https://help.aliyun.com/document_detail/26621.html?spm=a2c4g.11186623.6.584.sQGyev