简介
数据库迁移是系统发展各个阶段,都会遇到的问题。例如数据库压力达到瓶颈需要拆分,业务系统需要迁移上云,测试数据构造等。很多数据库都提供了原生的迁移工具,例如MySQL的mysqldump,SQLServer的SSMA,Oracle的imp/exp。然而这些工具都只能进行全量数据拷贝,为了保证迁移数据一致性,要求业务在数据迁移之前需要停止服务。所以,这种传统的迁移方案对业务影响极大。为降低数据迁移门槛,阿里云数据传输DTS推出不停服迁移功能。使用不停服迁移功能,可实现整个数据迁移过程,业务停服时间降低到分钟级别
传统数据库迁移流程
本小节简单介绍传统全量迁移方案的整个数据迁移流程。
如上图所示,传统数据库迁移流程包括以下几个步骤:
(1) 应用停止服务
(2) 使用工具开始进行数据迁移
(3)启动应用,重新提供服务
所以,整个数据迁移过程当中,应用需要全程停服。如果数据量比较大的情况下,整个应用停服时间可能高达几个小时甚至数天,这对应用影响极大。
不停服数据库迁移流程
本小节简单介绍数据传输DTS提供的增量迁移方案的整个数据迁移流程。
如上图所示,数据传输DTS提供的不停服迁移流程包括以下几个步骤:
(1) 使用DTS,配置数据迁移任务
(2) 迁移任务进入增量数据同步阶段时,当增量数据追平后,将源库应用停服,数据同步快速追平后,将业务切换到目标数据库,启动业务开启服务
所以,整个数据迁移过程当中,应用只需要在要切换之前停服,停服时间降低到分钟级别,极大得降低了数据迁移对业务的影响。
不停服数据库迁移技术原理
本小节简单介绍数据传输DTS提供的不停服迁移的实现原理。
如上如所示,DTS在全量迁移之前,会先在后台启动一个增量日志拉取及解析程序。这个程序会实时获取源数据库在全量迁移过程中产生的任何增量日志,解析并将其封装为DTS自己的数据格式存储在本地存储系统中。当全量迁移完成后,增量数据回放模块,会去拉取模块中读取存储的增量日志数据,然后通过解析、过滤、封装等步骤,最终拼装成要回放的SQL语句,回放到目标数据库,从而实现源数据库同目标数据库之间的增量数据实时同步。
小结
不停服迁移功能是阿里云数据传输DTS提供的低门槛数据迁移方式。目前可以实现MySQL、SQLServer、PostgreSQL的不停服迁移,未来DTS还将提供Oracle、MongoDB、Redis的不停服迁移功能。立即体验 >>
不停服迁移功能只是数据传输DTS提供的一种迁传输方式,除数据迁移之外,数据传输还提供了数据实时同步,实时数据订阅等多种传输能力,通过数据实时同步可以实现数据异地灾备 ,加速跨境业务访问速度 ,打通oltp->olap数据通道 等场景。通过数据订阅可以实现轻量级缓存更新 、核心业务异步解耦 等业务场景。如需了解数据传输更多详情,请猛击数据传输