开发者社区> 问答> 正文

用户指南-数据迁移-使用 DTS 迁移数据-使用 DTS 迁移 MySQL 数据


使用数据传输服务(DTS)将本地数据库迁移到 RDS for MySQL,可以实现应用不停服务的情况下,平滑完成数据库的迁移工作。

背景信息


DTS 数据迁移支持 MySQL 的结构迁移、全量迁移和增量迁移。


  • 结构迁移
    DTS 会将本地数据库的结构定义迁移到目标实例。目前 DTS 支持结构迁移的对象有:表、视图、触发器、存储过程、存储函数。

  • 全量迁移
    DTS 会将本地数据库迁移对象的数据全部迁移到目标实例。如果用户还选择了增量迁移,那么全量迁移过程中,为了保证数据一致性,无主键的非事务表会被锁定,锁定期间这些表无法写入,锁定时长依赖于这些表的数据量大小,在这些无主键非事务表迁移完成后,锁才会释放。

  • 增量迁移
    增量迁移会将迁移过程进行数据变更同步到目标实例,如果迁移期间进行了 DDL 操作,那么这些结构变更不会迁移到目标实例。


迁移限制


将本地数据库迁移到 RDS 上有以下限制。
  • 迁移过程中,不支持 DDL 操作
  • 结构迁移不支持 event 的迁移
  • 如果使用了对象名映射功能后,依赖这个对象的其他对象可能迁移失败
  • 当选择增量迁移时,本地 MySQL 实例需要开启 binlog,且本地库的 binlog_format 要为 row。如果本地 MySQL 为5.6版本时,它的 binlog_row_image 还须设置为 full


前提条件


已完成 RDS 实例数据库的准备,可参见 申请外网地址MySQL 5.7高可用版/5.5/5.6创建数据库和账号

操作步骤


本例以有公网 IP 的本地数据库迁移到 RDS 上为例。准备本地数据
在正式迁移之前,需要先在本地数据库和 RDS 实例中创建迁移账号,并在 RDS 实例中创建要迁移的数据库,并将要迁移的数据库的读写权限授权给迁移账号。不同的迁移类型需要不同的权限,如下表所示。
[tr=rgb(51, 205, 229)][td]迁移类型 结构迁移全量迁移增量迁移本地数据库selectselectselect replication slave replication clientRDS 实例读写权限读写权限读写权限
  1. 在本地数据库中创建迁移账号。CREATE USER 'username'@'host' IDENTIFIED BY 'password';
    参数说明:
    • username:要创建的账号
    • host:指定该账号登录数据库的主机。如果是本地用户可以使用 localhost,如果想让该用户从任意主机登录,可以使用通配符 %
    • password:该账号的登录密码

例:要创建账号为 William,密码为 Changme123 的账号从任意主机登录本地数据库,命令如下:CREATE USER 'William'@ '%' IDENTIFIED BY 'Changme123';
  • 在本地数据库中给迁移账号授权,本地数据库中迁移账号的权限要求请参见上表。GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;
    参数说明:
    • privileges:该账号的操作权限,如 SELECT、INSERT、UPDATE 等。如果要授权该账号所有权限,则使用 ALL
    • databasename:数据库名。如果要授权该账号所有的数据库权限,则使用通配符 *
    • tablename:表名。如果要授权该账号所有的表权限,则使用通配符 *
    • username:要授权的账号名
    • host:授权登录数据库的主机名。如果是本地用户可以使用 localhost,如果想让该用户从任意主机登录,可以使用通配符 %
    • WITH GRANT OPTION:授权该账号能使用GRANT命令,该参数为可选

    例:授权账号 William 对所有数据库和表的所有权限,并可以从任意主机登录本地数据库,命令如下:GRANT ALL ON *.* TO 'William'@'%';
    [tr=transparent][url=http://g.alicdn.com/aliyun-icms/assets/icms-main/images/note.png][/url]说明[tr=transparent]以下以预检查不通过为例进行描述,如果预检查通过,请直接参见步骤 8。
  • 系统显示预检查结果,如下图所示。
    [url=http://static-aliyun-doc.oss-cn-hangzhou.aliyuncs.com/assets/img/7977/4267_zh-CN.png]错误排查完毕后,在 迁移任务列表页面,选择当前迁移任务,单击 启动,如下图所示。
  • 系统预检查通过后,单击确定,自动进行迁移任务,如下图所示。


  • 后续操作


    因迁移账号拥有读写权限,为了保证本地数据库安全,请在数据迁移完成后,删除本地数据库和 RDS 实例中的迁移账号。

    展开
    收起
    梨好橙 2018-09-07 23:08:04 1937 0
    0 条回答
    写回答
    取消 提交回答
    问答排行榜
    最热
    最新

    相关电子书

    更多
    搭建电商项目架构连接MySQL 立即下载
    搭建4层电商项目架构,实战连接MySQL 立即下载
    PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

    相关镜像