mongodb不停机迁移库思路

背景

随着业务量上升,原本一台机器上的多个相关业务去查询不同的db,这时想把其中一个或者db独立出去,迁移到新机器上去,但是要求不能停掉业务。

方法

一.最先想到的就是将新的db设置为准备要迁移的db的副本集,待同步完成后,将新的db独立出来提供服务,但后来了解到,独立的期间需要修改配置,此时是处于下线的,不能写,所以就会丢掉几十分钟的数据,这是不能接受的。

二.建立后新的db集群后,双写db,具体步骤如下

1、调整代码,数据库双写
2、脚本全量跑数据,迁移数据到新机器,新机器添加索引
3、调整代码,数据库单写新机器
三.这种方式感觉需要跑全库,如果数据量很大就感觉需要很久才能跑完,想出了一下可以优化的地方

1、导出现有数据,导入到新机器的db
2、调整代码,数据库双写
3、脚本跑旧库倒入因为时间差而缺少的数据(从执行备份开始->双写开始,因为边界的问题可以提前,然后几分钟)
4、调整代码,数据库单写新机器
5、再跑一遍脚本

总结:上面的这种方法感觉使用起来得视具体情况而定,如果数据量不大的话,还是第二种吧,肯定不会丢数据

发布了43 篇原创文章 · 获赞 37 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/qq_28119741/article/details/89482676