业务切换流程

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

当您的DTS实例成功将数据同步或迁移至目标库后,您可以参考本文进行业务切换,以最大程度地减少数据同步或迁移对业务的影响。本文以迁移实例为例,为您介绍业务切换的相关步骤。

前提条件

已配置数据迁移实例,且数据迁移实例处于运行中已完成状态。配置方法,请参见迁移方案概览

方案概览

  1. 暂停源库的业务写入。

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

  2. 暂停迁移实例。

    源库的数据写入到目标库后,暂停迁移实例。

  3. 创建反向数据迁移实例并启动。

    将目标库产生的增量数据实时迁移回源库,为业务提供回退方案。在业务切换后,如果业务运行出现异常,可将业务切换回源库中。

  4. 切换业务。

    切换业务写入的数据库,并恢复业务。

注意事项

  • 由于执行业务切换操作需要停止数据库写入并暂停业务,请选择业务低峰期操作以降低影响。

  • 为便于区分会话信息以及提升数据安全性,建议单独创建并授权一个数据库账号以供数据迁移使用。

  • 执行业务切换操作需要暂停迁移实例,暂停超过7天的实例将无法恢复运行。

  • 对于不再使用的包年包月实例(尤其是已开启自动续费的包年包月实例),请务必手动取消自动续费或释放实例,以免产生额外的费用。具体操作,请参见自动续费的修改、取消等操作释放DTS实例

操作步骤

业务切换

  1. 等待数据迁移实例进入增量迁移阶段,且运行阶段信息列的延迟时间小于5秒。

    说明

    若迁移实例没有增量迁移阶段(即在配置实例时迁移类型未勾选增量迁移),则数据迁移完成后实例会自动结束任务,请等待实例的运行状态变为已完成

  2. 将业务暂时中断,禁止在源库中写入新数据。

  3. 登录源库查看会话信息,确保没有新的会话执行写入操作。

    常见数据库查看会话信息的命令如下所示:

    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连接源库的进程或会话。

  4. 暂停迁移实例。

    警告

    在迁移实例暂停期间,请勿随意启动实例,否则可能会导致数据不一致。

    1. 等待迁移实例的延迟为0毫秒。

      此时,源库中待迁移的数据已成功迁移至目标库。

    2. 继续等待1~3分钟。

      在此期间,实例的延迟可能会在2秒以内波动。

    3. 在目标实例的操作列,选择更多设置 > 暂停任务

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

    5. 等待实例的运行状态变为已暂停

  5. 创建反向数据迁移实例。

    1. 保持业务中断状态。

    2. 取消源库禁止写入的限制。

    3. 创建反向数据迁移实例并启动。

      重要
      • 在配置实例时,迁移类型仅勾选增量迁移

      • 创建方法,请参见迁移方案概览

    4. 等待实例的运行状态变为运行中

  6. 切换业务。

    1. 将业务切换为目标库。

    2. 恢复业务数据写入。

    3. 测试业务功能。

回退方案

说明

在业务切换失败等异常情况下,您可以参考该方案恢复业务。

  1. 将业务暂时中断,禁止在数据库中写入新数据。

  2. 将业务切换回源库。

  3. 恢复业务数据写入。

后续操作

业务切换至目标库并稳定运行一段时间,测试所有业务涉及的功能并确认无问题,可结束反向数据迁移实例。更多信息,请参见结束DTS实例

警告

用于数据迁移的数据库账号拥有读写权限,为保障数据库安全性,请在数据迁移完成后,删除用于数据迁移的数据库账号或回收该账号的写权限。

常见问题

  • Q:业务切换后,原来的迁移实例如何处理?

    A:您可以根据实际需求,结束或释放该实例。更多信息,请参见结束DTS实例释放DTS实例

  • Q:业务切换后,由于误操作导致在源库中写入了新的数据,应该如何处理?

    A:通过数据校验确认源和目标库的差异数据,进行手动订正。