使用创建反向任务功能

本文为您介绍如何使用数据传输服务DTS(Data Transmission Service)的创建反向任务功能,实现数据库容灾或业务交割(业务切换)场景下的数据回传。

前提条件

注意事项

  • 仅SQL Server数据库间、MySQL数据库间或云数据库MongoDB版间的同步实例支持创建反向实例,且该反向实例的同步类型只勾选了增量同步

  • 创建反向实例前直接写入到原同步实例目标库的数据,不会被同步。

  • 反向实例创建成功后会立即进行预检查,预检查通过后会进行增量数据采集,增量数据写入模块不会运行。

  • 每个同步实例仅支持创建一个对应的反向实例,且当反向实例启动后,原实例将无法直接启动。

  • 不支持为跨国家和跨境的同步实例创建反向实例。

  • 请确保待同步的表具备主键或唯一约束,并且字段具有唯一性,否则可能会导致部分数据重复。

  • 请根据业务数据库出现异常后的预估恢复时间,合理设置数据库Binlog的保存时间。

  • 若原实例为Serverless实例,则创建的反向实例的计费方式将为按量付费,且规格为micro;若原实例的计费方式为包年包月或按量付费,则创建的反向实例的计费方式和规格默认与原实例相同。

  • 若原实例为跨地域的同步实例,则需要将同步任务列表的地域切换为正向实例源库对应的地域,才可以看到创建的反向实例。

  • 创建的反向实例暂停期间也会收取相应的费用。

  • 在业务数据库出现异常无法连接的情况下,DTS实例的运行状态重试中属于正常现象。

操作步骤

数据库容灾场景

  1. 根据业务需求,创建业务数据库到灾备数据库的正向同步实例。

    请合理选择实例的规格,并根据业务数据库出现异常后的预估恢复时间,设置源库、目标库无法连接后的重试时间。正向同步实例的创建方法,请参见RDS MySQL实例间的单向同步RDS SQL Server间的同步云数据库MongoDB版(副本集架构)同步至云数据库MongoDB版(副本集架构或分片集群架构)云数据库MongoDB版(分片集群架构)同步至云数据库MongoDB版(副本集架构或分片集群架构)

  2. 等待正向同步实例的运行状态处于运行中,创建反向实例。

    1. 同步任务列表找到创建的正向同步实例。

    2. 在目标实例右侧,选择更多设置 > 创建反向任务

    3. 在弹出的提醒对话框,单击确定

      等待反向实例预检查完成,运行状态处于同步初始化中

      说明
      • 若您未开启自动刷新功能,则需要手动单击操作上方的刷新按钮,以刷新同步实例的运行状态

      • 若预检查失败,请单击查看原因,然后单击预检查失败项后查看详情,根据提示修复后重新进行预检查。

    4. 反向实例创建好后,暂无需操作。

  3. 当业务数据库出现异常无法连接时,执行如下操作来恢复您的业务。

    1. 暂停原DTS实例。

      1. 同步任务列表页面,找到原DTS实例。

      2. 在目标实例右侧,选择更多设置 > 暂停任务

      3. 在弹出的提醒对话框,单击确定

      4. 在弹出的暂停任务成功对话框,单击确定

    2. 将业务切换至灾备数据库。

    3. 启动反向实例。

      1. 同步任务列表页面,找到生成的反向实例。

      2. 在目标实例右侧,选择更多设置 > 启动反向任务

      3. 在弹出的提醒对话框,单击确定

  4. 当业务数据库恢复后,执行如下操作切换业务数据库并恢复同步实例。

    1. 将业务切换回原来的业务数据库。

    2. 等待反向实例无延迟后,暂停反向实例。

      反向实例会将业务直接写入灾备数据库的数据同步到原业务数据库。

    3. 等待反向实例暂停成功后,启动原来的正向同步实例。

业务交割场景

  1. 创建反向同步实例。

    1. 同步任务列表找到目标正向同步实例(原DTS实例)。

    2. 在目标实例右侧,选择更多设置 > 创建反向任务

    3. 在弹出的提醒对话框,单击确定

      等待反向实例预检查完成,运行状态处于同步初始化中

      说明
      • 若您未开启自动刷新功能,则需要手动单击操作上方的刷新按钮,以刷新同步实例的运行状态

      • 若预检查失败,请单击查看原因,然后单击预检查失败项后查看详情,根据提示修复后重新进行预检查。

    4. 反向同步实例创建好后,暂无需操作。

  2. 等待增量数据采集模块运行且无延迟。

    您可以单击反向同步实例的ID,在任务管理页面的实例进展区域查看模块的状态和延迟时间。

  3. 暂停业务写入。

    为避免数据丢失,需要暂时中断业务,禁止新的数据写入到数据库。

  4. 暂停原DTS实例。

    1. 同步任务列表页面,找到原DTS实例。

    2. 在目标实例右侧,选择更多设置 > 暂停任务

    3. 在弹出的提醒对话框,单击确定

    4. 在弹出的暂停任务成功对话框,单击确定

  5. 将业务切换为正向同步实例的目标库。

  6. 启动反向实例。

    1. 同步任务列表页面,找到生成的反向实例。

    2. 在目标实例右侧,选择更多设置 > 启动反向任务

    3. 在弹出的提醒对话框,单击确定

  7. 结束或释放正向同步实例。

    更多信息,请参见结束DTS实例释放DTS实例

常见问题

  • 创建正向同步实例时,如何选择规格?

    建议您先选择最小的规格(micro)。待创建好反向实例后,您可以根据业务量升级实例规格。升级规格的方法,请参见升级实例的链路规格

  • 业务数据库恢复后,DTS实例处于失败状态,如何处理?

    您可以启动DTS实例。操作方法,请参见启动DTS实例