新闻中心
6个步骤,开启海外云服务器双写数据迁移方案
2023-04-26
阅读()
来源:互联数据

什么是海外云双写实现数据迁移方案?随着业务的发展,存储也会经常性的需要迁移。双写是比较靠谱不用停机,不用看办公室外凌晨4点的风景,数据迁移将一批数据从同构存储系统(如MySQLA到MySQLB)或异构存储系统(如MySQL-MongoDB)间搬运迁移。最简单的数据迁移方式是通过脚本或定时任务将数据进行搬运,亦或是通过类似canal之类的工具进行数据同步。


海外云数据库购买http://www.hkt4.com/cloud/108vps.html


双写就是在线上系统里面,之前所有写库的地方,增删改操作,都除了对老库增删改,都加上对新库的增删改,这就是所谓双写,同时写俩库,老库和新库。可以保证迁移过程是在线的、迁移前后数据是一致的、迁移过程是可回滚的。数据双写迁移方案分为五大步,分别是:同步、双写、校验、切读、切写。以MySQL数据迁移至MongoDB为例来说明这五大步的流程。

海外云双写实现数据迁移

海外云数据迁移双写方案可通过canal或mq做实现:


1、增加新库,按照现有节点, 增加对应的数量。


2、数据迁移:避免增量影响, 先断开主从,再导入(耗时较长), 同步完成并做校验


3、增量同步:开启Canal同步服务, 监听从节点数据库, 再开启主从同步,从节点收到数据后会通过Canal服务, 传递至新的DB节点。


4、切换新库:通过Nginx,切换访问流量至新的服务。


5、修复切换异常数据:在切换过程中, 如果出现,Canal未同步,但已切换至新库的请求(比如下单,修改了资金, 但还未同步 ), 可以通过定制程序, 读取检测异常日志,做自动修复或人工处理。


针对此种情况, 最好是在凌晨用户量小的时候, 或专门停止外网访问,进行切换,减少异常数据的产生。


6、数据校验:为保障数据的完全一致, 有必要对数据的数量完整性做校验。


双写方案可以实现数据的实时同步和迁移,可以保证数据的一致性和完整性,但是需要考虑到数据同步的性能和可靠性问题。同时,双写方案也需要考虑到数据的安全性和隐私性问题,需要采取相应的安全措施来保护数据的安全性。


导完一轮之后,有可能数据还是存在不一致,那么就程序自动做一轮校验,比对新老库每个表的每条数据,接着如果有不一样的,就针对那些不一样的,从老库读数据再次写。反复循环,直到两个库每个表的数据都完全一致为止。


接着当数据完全一致了,就 ok 了,基于仅仅使用分库分表的最新代码,重新部署一次,不就仅仅基于分库分表在操作了么,还没有几个小时的停机时间,很稳。所以现在基本玩儿数据迁移之类的,都是这么干的。


互联数据提供完整的端到端云迁移解决方案,将企业客户的系统和数据平滑迁移至各大公有云:亚马逊云、谷歌云、微软云、阿里云、华为云等。

相关阅读