从本地 MySQL 迁移到 RDS for MySQL

迁移权限要求

当使用 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 数据迁移时,为了解决对象间的依赖关系,提高迁移成功率。结构对象及数据的迁移顺序如下:

  1. 结构对象:表、视图的迁移
  2. 全量数据迁移
  3. 结构对象:存储过程、函数、触发器、外键的迁移
  4. 增量数据迁移

如果任务没有选择增量数据迁移,那么当全量数据迁移完成后,任务列表中的迁移进度为:结构迁移 100%,全量迁移 100%,迁移状态为“迁移中”。此时迁移任务正在进行步骤(3) 中的对象的迁移。此时,请勿手动结束任务,否则会造成迁移数据丢失。

在数据迁移过程中,如果待迁移的数据库在目标 RDS 实例中不存在,那么 DTS 自动会创建。

如果需要进行增量迁移,那么需要确认源库的 binlog 是否开启,格式是否满足要求。具体确认项如下。

  1. 确认源库的 binlog 是否开启。

    确认源库开启 binlog

    如果这里面查询出来的 log_bin=OFF,则说明源库没有开启 binlog,这个时候如果需要使用增量迁移的话,需要修改本地 MySQL 的 binlog 配置,打开 binlog 日志。

    1. 开启二进制日志,修改 log_bin=mysql_bin。
    2. 设置 binlog 模式为 row,修改 binlog_format=row。
    3. 配置 server_id 大于 1,即 server_id=某一个大于 1 的整数。
    4. 如果版本为 5.6,修改 binlog_row_image=full。
    5. 修改完成后,重启 MySQL 进程。
  2. 确认源库的 binlog 格式为 row 模式。

    确认源库 binlog 格式为 ROW 模式

    使用上面的命令确认本地 MySQL 的 binlog 格式是否为 ROW,如果查询出来的结果不为 ROW 的话,那么通过如下的参数设置命令将模式修改为 ROW。

    修改源库 binlog 格式为 ROW 模式

    当修改完成后,建议将源库上已有的连接 KILL 掉,并且重新连接,否则可能出现其他的连接依然使用 statement 格式记录 binlog 日志。

  3. 当本地 MySQL 版本大等于 5.6.2 时,确认源库的 binlog_row_image=full。

    确认源库 binlog_row_image 为 FULL

    如果查询出来的结果不为 FULL 的话,那么通过如下的参数设置命令将其修改为 FULL。

    修改源库 binlog_row_image 为 FULL

猜你喜欢

转载自www.cnblogs.com/John-2011/p/9254294.html