业务切换流程
更新时间:2024-07-26
本文介绍执行业务切换流程的操作步骤,帮助您最大化地降低数据迁移对业务的影响。
前提条件
已配置数据迁移任务,且数据迁移任务处于 运行中 或 任务结束 状态。
注意事项
由于执行业务切换操作需要停止数据库写入并暂停业务,请选择业务低峰期操作以降低影响。
操作步骤
- (可选)创建一键反向任务,详情参见 创建一键反向任务。
-
等待数据迁移任务的进度变更为 复制变更,并且延迟显示低于 5 秒。
说明
如果数据传输任务在配置时未勾选 增量同步,进度条不会变更为 复制变更,且迁移完成后会自动结束任务。此类情况通常约定在执行数据迁移任务之前将业务中断并停止新的数据写入源数据库,所以请直接跳转至步骤5继续操作。
- 将业务暂时中断,禁止新的数据写入源数据库。
-
登录源数据库,根据数据库类型选择下述命令查看会话信息,确保没有新的会话执行写入操作。
数据库类型 命令 MySQL show processlist;
Oracle select sid,serial#,username,program,machine,status from v$session;
PostgreSQL select * from pg_stat_activity;
Redis CLIENT LIST
MongoDB use admindb.runCommand({currentOp: 1, $all:[{"active" : true}]})
说明
上述语句查询到的进程或会话信息中,包含 DTS 连接源数据库的进程或会话。
-
等待迁移任务的 复制变更 再次进入延迟 0 秒状态,保持1分钟或以上,进行业务割接,即写流量切至目标端。
- 若为一键反向任务,则执行一键反向,详情操作步骤请参见 一键反向。
- 若为普通任务,则需暂停任务,并手动创建反向任务
注意:
- 当正向任务处于暂停期间时,请不要随意启动任务,否则可能会导致数据不一致。
- 反向任务的源端与目标端与正向任务相反,且迁移对象与正向任务保持一致。
- 反向任务仅需选择 增量同步,增量起始时间选择正向任务暂停前的时间点,建议提前 5 分钟左右。
- 由于反向任务会将目标库产生的增量数据实时迁移回源库,如果业务运行出现问题,可随时将业务切换回源库。
- 当业务成功切换至目标库后,手动结束或释放 DTS 正向任务。
后续操作
业务切换至目标数据库并稳定运行一段时间,测试所有业务涉及的功能并确认无问题,可结束反向数据迁移的任务,详情参见 结束任务。
常见问题
-
Q:业务切换后,如果业务运行出现问题如何处理?
A:由于创建的反向迁移任务会将目标库产生的增量数据实时迁移回源库,如果业务运行出现问题,可随时将业务切换回源库。
-
Q:业务切换失败后,源库如何保证数据一致性?
A:您可以在业务切换前备份源库。
-
Q:业务切换后,由于误操作导致在源数据库中写入了新的数据,应该如何处理?
A:通过数据校验确认源和目标库的差异数据,进行手动订正。