更新时间:2025-12-04 GMT+08:00
分享

实时迁移

解释说明

实时迁移是指在数据复制服务能够同时连通源数据库和目标数据库的情况下,只需要配置迁移的源、目标数据库实例及迁移对象即可完成整个数据迁移过程,再通过多项指标和数据的对比分析,帮助确定合适的业务割接时机,实现最小化业务中断的数据库迁移。

实时迁移支持多种网络迁移方式,如:公网网络、VPC网络、VPN网络和专线网络。通过多种网络链路,可快速实现跨云平台数据库迁移、云下数据库迁移上云或云上跨区域的数据库迁移等多种业务场景迁移。

特点:通过增量迁移技术,能够最大限度允许迁移过程中业务继续对外提供使用,有效的将业务系统中断时间和业务影响最小化,实现数据库平滑迁移上云,支持全部数据库对象的迁移。

图1 实时迁移

常见问题

如何判断数据迁移任务可以停止?

您可参考以下方法,确认任务是否可以结束。结束之前您需要确认完成以下几点:

  1. 请您确认至少在业务低峰期有过一次完整的数据对比。
  2. 完成业务割接。
    1. 先中断业务(如果业务负载非常轻,也可以尝试不中断业务)。
    2. 在源数据库端执行如下语句(此处以MySQL为例),并观察在1-5分钟内若无任何新会话执行SQL ,则可认为业务已经完全停止。
      show processlist;

      上述语句查询到的进程列表中,包括DRS迁移实例的连接,您需要确认除DRS迁移实例的连接外无任何新会话执行SQL,即可认为业务已经完全停止。

    3. 同步时延为0,并稳定保持一段时间;同时,您可以使用数据级对比功能,进行割接前的最后一次数据级对比,耗时可参考之前的对比记录。
      • 如果时间允许,则选择全部对比。
      • 如果时间不允许,则推荐对比活跃表,关键业务表,第二步对比多次存在差异的表等。
    4. 确定系统割接时机,业务系统指向目标数据库,业务对外恢复使用。
  3. 结束迁移任务,该操作仅删除了迁移实例,迁移任务仍显示在任务列表中,您可以进行查看或删除。

如何确保业务数据库的全部业务已经停止?

业务切换时可通过如下方法确保业务数据库的全部业务已经停止:

  1. 在源数据库端执行如下语句,查看当前是否还存在有业务连接 。

    show processlist;
    图2 查看是否存在业务连接

  2. 可选:如果源数据库有业务连接,则通过结果中Host列的值来查找对应的业务进程并将其停止。
  3. 在源库执行如下语句,查看binlog位置并记录该值(file列取值:position列取值 ),此处将该值记为ckpt1。

    show master status;
    图3 查看binlog位置

  4. 等待30s以上,在源库执行如下语句,查看binlog位置并记录该值(file列取值:position列取值 ),此处将该值记为ckpt2。ckpt1=ckpt2时,表示源数据库业务已基本停写。

    show master status;

相关文档