当您的DTS实例成功将数据同步或迁移至目标库后,您可以参考本文进行业务切换,以最大程度地减少数据同步或迁移对业务的影响。本文以迁移实例为例,为您介绍业务切换的相关步骤。
前提条件
已配置数据迁移实例,且数据迁移实例处于运行中或已完成状态。配置方法,请参见迁移方案概览。
方案概览
暂停源库的业务写入。
为避免数据丢失,需要暂时中断业务,禁止新的数据写入源库。
暂停迁移实例。
源库的数据写入到目标库后,暂停迁移实例。
创建反向数据迁移实例并启动。
将目标库产生的增量数据实时迁移回源库,为业务提供回退方案。在业务切换后,如果业务运行出现异常,可将业务切换回源库中。
切换业务。
切换业务写入的数据库,并恢复业务。
注意事项
由于执行业务切换操作需要停止数据库写入并暂停业务,请选择业务低峰期操作以降低影响。
为便于区分会话信息以及提升数据安全性,建议单独创建并授权一个数据库账号以供数据迁移使用。
执行业务切换操作需要暂停迁移实例,暂停超过7天的实例将无法恢复运行。
对于不再使用的包年包月实例(尤其是已开启自动续费的包年包月实例),请务必手动取消自动续费或释放实例,以免产生额外的费用。具体操作,请参见自动续费的修改、取消等操作和释放DTS实例。
操作步骤
业务切换
等待数据迁移实例进入增量迁移阶段,且运行阶段信息列的延迟时间小于5秒。
说明若迁移实例没有增量迁移阶段(即在配置实例时迁移类型未勾选增量迁移),则数据迁移完成后实例会自动结束任务,请等待实例的运行状态变为已完成。
将业务暂时中断,禁止在源库中写入新数据。
登录源库查看会话信息,确保没有新的会话执行写入操作。
常见数据库查看会话信息的命令如下所示:
MySQL
show processlist;
SQL Server
select * from sys.dm_exec_connections;
Oracle
select sid,serial#,username,program,machine,status from v$session;
PostgreSQL
select * from pg_stat_activity;
Redis
CLIENT LIST
MongoDB
use admin db.runCommand({currentOp: 1, $all:[{"active" : true}]})
说明上述语句查询到的进程或会话信息中,包含DTS连接源库的进程或会话。
暂停迁移实例。
警告在迁移实例暂停期间,请勿随意启动实例,否则可能会导致数据不一致。
等待迁移实例的延迟为0毫秒。
此时,源库中待迁移的数据已成功迁移至目标库。
继续等待1~3分钟。
在此期间,实例的延迟可能会在2秒以内波动。
在目标实例的操作列,选择
。在弹出的提醒对话框中,单击确定。
等待实例的运行状态变为已暂停。
创建反向数据迁移实例。
保持业务中断状态。
取消源库禁止写入的限制。
创建反向数据迁移实例并启动。
重要在配置实例时,迁移类型仅勾选增量迁移。
创建方法,请参见迁移方案概览。
等待实例的运行状态变为运行中。
切换业务。
将业务切换为目标库。
恢复业务数据写入。
测试业务功能。
回退方案
在业务切换失败等异常情况下,您可以参考该方案恢复业务。
将业务暂时中断,禁止在数据库中写入新数据。
将业务切换回源库。
恢复业务数据写入。
后续操作
业务切换至目标库并稳定运行一段时间,测试所有业务涉及的功能并确认无问题,可结束反向数据迁移实例。更多信息,请参见结束DTS实例。
用于数据迁移的数据库账号拥有读写权限,为保障数据库安全性,请在数据迁移完成后,删除用于数据迁移的数据库账号或回收该账号的写权限。