本文为您介绍如何使用数据传输服务DTS(Data Transmission Service)的创建反向任务功能,实现数据库容灾或业务交割(业务切换)场景下的数据回传。
前提条件
已创建存储空间大于业务数据库已使用的灾备数据库,建议灾备数据库比业务数据库大10%。
已在业务数据库和灾备数据库中创建用于数据同步的账号。权限要求,请参见RDS MySQL实例间的单向同步、RDS SQL Server间的同步、云数据库MongoDB版(副本集架构)同步至云数据库MongoDB版(副本集架构或分片集群架构)、云数据库MongoDB版(分片集群架构)同步至云数据库MongoDB版(副本集架构或分片集群架构)。
重要灾备数据库的账号需要具备额外的权限:
SQL Server间的同步实例:目标库账号需具备sysadmin权限,您可以使用超级权限账号通过
EXEC sp_addsrvrolemember @loginame = N'<账号名>', @rolename = N'sysadmin';
命令进行授权。MySQL间的同步实例:目标库账号还需具备REPLICATION CLIENT、REPLICATION SLAVE、SHOW VIEW和SELECT权限。授权方法,请参见MySQL官方说明文档。
云数据库MongoDB版间的同步实例:目标库账号还需具备待同步库、admin库和local库的read权限。授权方法,请参见通过DMS管理数据库账号。
注意事项
仅SQL Server数据库间、MySQL数据库间或云数据库MongoDB版间的同步实例支持创建反向实例,且该反向实例的同步类型只勾选了增量同步。
创建反向实例前直接写入到原同步实例目标库的数据,不会被同步。
反向实例创建成功后会立即进行预检查,预检查通过后会进行增量数据采集,增量数据写入模块不会运行。
每个同步实例仅支持创建一个对应的反向实例,且当反向实例启动后,原实例将无法直接启动。
不支持为跨国家和跨境的同步实例创建反向实例。
请确保待同步的表具备主键或唯一约束,并且字段具有唯一性,否则可能会导致部分数据重复。
请根据业务数据库出现异常后的预估恢复时间,合理设置数据库Binlog的保存时间。
若原实例为Serverless实例,则创建的反向实例的计费方式将为按量付费,且规格为micro;若原实例的计费方式为包年包月或按量付费,则创建的反向实例的计费方式和规格默认与原实例相同。
若原实例为跨地域的同步实例,则需要将同步任务列表的地域切换为正向实例源库对应的地域,才可以看到创建的反向实例。
创建的反向实例暂停期间也会收取相应的费用。
在业务数据库出现异常无法连接的情况下,DTS实例的运行状态为重试中属于正常现象。
操作步骤
数据库容灾场景
根据业务需求,创建业务数据库到灾备数据库的正向同步实例。
请合理选择实例的规格,并根据业务数据库出现异常后的预估恢复时间,设置源库、目标库无法连接后的重试时间。正向同步实例的创建方法,请参见RDS MySQL实例间的单向同步、RDS SQL Server间的同步、云数据库MongoDB版(副本集架构)同步至云数据库MongoDB版(副本集架构或分片集群架构)、云数据库MongoDB版(分片集群架构)同步至云数据库MongoDB版(副本集架构或分片集群架构)。
等待正向同步实例的运行状态处于运行中,创建反向实例。
在同步任务列表找到创建的正向同步实例。
在目标实例右侧,选择
。在弹出的提示对话框,单击确定。
等待反向实例预检查完成,运行状态处于同步初始化中。
说明若您未开启自动刷新功能,则需要手动单击操作上方的按钮,以刷新同步实例的运行状态。
若预检查失败,请单击查看原因,然后单击预检查失败项后查看详情,根据提示修复后重新进行预检查。
反向实例创建好后,暂无需操作。
当业务数据库出现异常无法连接时,执行如下操作来恢复您的业务。
暂停原DTS实例。
在同步任务列表页面,找到原DTS实例。
在目标实例右侧,选择
。在弹出的提示对话框,单击确定。
在弹出的暂停任务成功对话框,单击确定。
将业务切换至灾备数据库。
启动反向实例。
在同步任务列表页面,单击生成的反向实例ID。
(可选)在左侧导航栏,单击任务管理。
在实例进展区域,单击增量写入模块。
在基本信息页签,单击操作右侧的启动增量写入。
在弹出的提示对话框,单击确定。
当业务数据库恢复后,执行如下操作切换业务数据库并恢复同步实例。
将业务切换回原来的业务数据库。
等待反向实例无延迟后,暂停反向实例。
反向实例会将业务直接写入灾备数据库的数据同步到原业务数据库。
等待反向实例暂停成功后,启动原来的正向同步实例。
业务交割场景
创建反向同步实例。
在同步任务列表找到目标正向同步实例(原DTS实例)。
在目标实例右侧,选择
。在弹出的提示对话框,单击确定。
等待反向实例预检查完成,运行状态处于同步初始化中。
说明若您未开启自动刷新功能,则需要手动单击操作上方的按钮,以刷新同步实例的运行状态。
若预检查失败,请单击查看原因,然后单击预检查失败项后查看详情,根据提示修复后重新进行预检查。
反向同步实例创建好后,暂无需操作。
等待增量数据采集模块运行且无延迟。
您可以单击反向同步实例的ID,在任务管理页面的实例进展区域查看模块的状态和延迟时间。
暂停业务写入。
为避免数据丢失,需要暂时中断业务,禁止新的数据写入到数据库。
暂停原DTS实例。
在同步任务列表页面,找到原DTS实例。
在目标实例右侧,选择
。在弹出的提示对话框,单击确定。
在弹出的暂停任务成功对话框,单击确定。
将业务切换为正向同步实例的目标库。
启动反向实例。
在同步任务列表页面,单击生成的反向实例ID。
(可选)在左侧导航栏,单击任务管理。
在实例进展区域,单击增量写入模块。
在基本信息页签,单击操作右侧的启动增量写入。
在弹出的提示对话框,单击确定。
结束或释放正向同步实例。