更新时间:2026-08-03 GMT+08:00
分享

割接流程

操作场景

数据库从一个实例搬迁到另一个数据库实例之后,需要做业务切换,切换时刻的割接流程,本场景只考虑单向有增量的链路的情况。

前提条件

数据迁移实例(包括实时同步、实时迁移、实时灾备任务的实例)处于增量运行中状态。配置方法,请参见对应链路的用户指南。

方案概览

1、源端停写

为避免数据丢失,需要暂停源端业务写入,避免同步链路停掉之后,源端有新产生的数据未同步到目标端。

2、数据追平

业务所需要的数据,都已经从源库同步到目标库后,再确认两端数据已经一致。

3、链路反向

目标库接入业务之后,为了能安全回退,后续增量数据需要及时写回源库。

4、业务切换

开启业务往目标端数据库的写入,恢复业务。

注意事项

因切换期间需要停止数据库写入,请选择业务低峰期操作以降低影响。

任务一旦结束,将停止计费,并回收资源,任务将无法恢复,因此割接流程中需要确认是使用暂停还是结束,还是使用“实时灾备”的功能。

切换前后,需要严格保证切换前后,数据只在一端写入,否则可能造成业务数据无法同步到另一端而造成数据不一致的问题。

操作步骤

  1. 等待迁移完成。等待DRS任务进入增量迁移阶段且延迟时间小于5秒,且保持5分钟以上。
  2. 暂停业务写入。

    1. 将业务写入暂时中断,停止在源库中写入新数据,可以通过设置源库只读,必要时可以中断会话/取消写入权限等手段。
    2. 登录源库,反复查询位点,确认位点不再变化,或者确保没有新的业务数据写入。

      MySQL查看位点的命令为:

      show master status;

      如果因为有心跳或者其它无关业务写入,可以通过如下命令确认位点之后无正常业务写入。

      show binlog events in 'xxx' from yyy;

  3. 等待数据追平。

    1. 在任务进度页面,查看“源位点”和“已消费位点”一致,必要时可以确认跟源端show master status; 命令中查询的位点一致。
    2. 数据对比确保源端和目标端数据一致,可以在数据校验页面创建数据对比任务,等待对比结果一致。

      内容对比时间较长,可以选择行对比;或者挑选一些核心表,配置查询条件,抽检部分数据做内容对比。

  4. 准备反向链路。

    如果任务选择的是“实时灾备”,此时可以直接单击页面的倒换。

    如果任务选择是“实时同步”或者“实时迁移”,则有如下两种操作。

    1. 可以选择暂停或者结束任务。

      暂停任务的时候,不会迁移event/trigger等信息,如果需要迁移这些信息,则需要结束任务。

    2. 创建反向单增量任务,等待任务运行到增量中。

  5. 目标端接入业务。

    1. 业务连接目标端数据库,开启写入。
    2. 业务验证。

回退方案

  1. 业务停写。
  2. 业务接入源库。
  3. 业务恢复写入。

相关文档