本文介绍如何使用数据传输服务(Data Transmission Service,简称DTS),实现RDS实例间的数据迁移。DTS支持结构迁移、全量数据迁移以及增量数据迁移,同时使用这三种迁移类型可以实现在自建应用不停服的情况下,平滑地完成数据库的迁移。

前提条件

RDS实例的数据库类型必须相同,不支持跨数据库类型迁移。

注意事项

  • DTS在执行全量数据迁移时将占用源库和目标库一定的读写资源,可能会导致数据库的负载上升,在数据库性能较差、规格较低或业务量较大的情况下(例如源库有大量慢SQL、存在无主键表或目标库存在死锁等),可能会加重数据库压力,甚至导致数据库服务不可用。因此您需要在执行数据迁移前评估源库和目标库的性能,同时建议您在业务低峰期执行数据迁移(例如源库和目标库的CPU负载在30%以下)。
  • 如果源库中待迁移的表没有主键或唯一约束,且所有字段没有唯一性,可能会导致目标数据库中出现重复数据。
  • 当选择的迁移类型为全量数据迁移,那么为保障数据一致性,在迁移期间请勿在源RDS实例中写入新的数据。
  • 对于迁移失败的任务,DTS会触发自动恢复。当您需要将业务切换至目标实例,请务必先结束或释放迁移任务,避免该任务被自动恢复后,使用源端数据覆盖目标实例的数据。

费用说明

迁移类型 链路配置费用 公网流量费用
结构迁移和全量数据迁移 不收费。 通过公网将数据迁移出阿里云时将收费,详情请参见产品定价
增量数据迁移 收费,详情请参见产品定价

迁移类型说明

  • 结构迁移

    DTS将迁移对象的结构定义迁移到目标实例。

  • 全量数据迁移

    DTS将源RDS实例迁移对象的存量数据,全部迁移到目标RDS实例中。

  • 增量数据迁移

    DTS在全量迁移的基础上,将源RDS实例的增量更新数据同步到目标RDS实例中。通过增量数据迁移可以实现在自建应用不停服的情况下,平滑地完成数据迁移。

数据库账号的权限要求

数据库 结构迁移 全量迁移 增量迁移
源RDS实例 读写权限 读写权限 读写权限
目标RDS实例 读写权限 读写权限 读写权限

操作步骤

  1. 登录数据传输控制台
  2. 在左侧导航栏,单击数据迁移
  3. 迁移任务列表页面顶部,选择迁移的目标实例所属地域。选择地域
  4. 单击页面右上角的创建迁移任务
  5. 配置迁移任务的源库及目标库信息。 RDS实例间迁移
    类别 配置 说明
    任务名称 DTS会自动生成一个任务名称,建议配置具有业务意义的名称(无唯一性要求),便于后续识别。
    源库信息 实例类型 选择RDS实例
    实例地区 选择源RDS实例所属地域。
    RDS实例ID 选择源RDS实例ID。
    说明 源RDS和目标RDS实例可以不同或相同,即您可以使用DTS实现两个RDS实例间的数据迁移或同一RDS实例内的数据迁移。
    数据库名称 填入RDS PostgreSQL实例中待迁移的数据库名。
    说明 当RDS实例的引擎为PostgreSQL时,该参数才会出现并需要配置。
    数据库账号 填入源RDS实例的数据库账号,权限要求请参见数据库账号的权限要求
    数据库密码 填入该数据库账号对应的密码。
    说明 源库信息填写完毕后,您可以单击数据库密码后的测试连接来验证填入的源库信息是否正确。源库信息填写正确则提示测试通过;如果提示测试失败,单击测试失败后的诊断,根据提示调整填写的源库信息。
    连接方式 根据需求选择非加密连接SSL安全连接。如果设置为SSL安全连接,您需要提前开启RDS实例的SSL加密功能,详情请参见设置SSL加密
    说明

    当RDS实例的引擎为MySQL时,该参数才会出现并需要配置。

    目标库信息 实例类型 选择RDS实例
    实例地区 选择目标RDS实例所属地域。
    RDS实例ID 选择目标RDS实例ID。
    说明 目标RDS实例和源RDS实例可以不同也可以相同,即您可以使用DTS实现两个RDS实例间的数据迁移或同一RDS实例内的数据迁移。
    数据库名称 填入RDS PostgreSQL实例中待迁入数据的目标数据库名,可以和源实例中待迁移的数据库名不同。
    说明 当RDS实例的引擎为PostgreSQL时,该参数才会出现并需要配置。
    数据库账号 填入目标RDS实例的数据库账号,权限要求请参见数据库账号的权限要求
    数据库密码 填入该数据库账号对应的密码。
    说明 目标库信息填写完毕后,您可以单击数据库密码后的测试连接来验证填入的目标库信息是否正确。目标库信息填写正确则提示测试通过;如果提示测试失败,单击测试失败后的诊断,根据提示调整填写的目标库信息。
    连接方式 根据需求选择非加密连接SSL安全连接。如果设置为SSL安全连接,您需要提前开启RDS实例的SSL加密功能,详情请参见设置SSL加密
    说明 当RDS实例的引擎为MySQL时,该参数才会出现并需要配置。
  6. 配置完成后,单击页面右下角的授权白名单并进入下一