线上环境单体数据库过度分库分表

文章介绍了两种数据库迁移方案:一是停机迁移,二是不停机的双写方案。双写方案中,系统同时写入老库和新库,通过数据同步工具确保新库数据完整,之后进行数据校验和一致性检查,最终在数据一致后切换到新库,避免了长时间停机。
摘要由CSDN通过智能技术生成

线上单体数据库动态切换成分库分表实现方案

场景说明

线上现在又一个单库单表的系统,在线上跑,假设表中有600万的数据,此时在本地已经部署好了三天服务器,并且通过数据读取系统将所有的数据已经迁移到本地数据库,需要将线上的单库系统切换到分库系统

方案一 :停机迁移方案

这个方案是最low的方案,再系统上发布一个停机公告,然后定时迁移

方案二: 不停机的双写方案

双写迁移方案
这个是我们常用的一种迁移方案,比较靠谱一些,不需要停机
简单来说,就是在线上系统里面,之前所有写库的地方,增删改操作,都除了对老库的增删改,都加上对新库的增删改,这就是所谓的双写,同时写两个库,老库和新库
然后系统部署之后,新库数据差太远,用之前说的导数工具,跑起来读老库的数据写入辛苦,系得手要根据gmt_modified这类的字段判断这条数据最后修改的时间,除非是读出来的数据再新库里没有,或者是比新库的数据新才会写
接着导完一轮之后,有可能数据还是存在不一致,那么就程序自动做一次校验,比对新老库的每个表的每条数据,接着如果有不一致的,就针对那些不一致的数据,从老库中读数据再次写,反复循环,直到两个标的数据都完全一致为止
接着当数据完全一致了,就ok,基于仅仅使用分库分表的最新代码,重新部署一次,就可以完成项目的数据库切换迁移,同时还不需要有几个小时的停机时间,很稳

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值