背景
有些情况下,官方推荐的迁移方法不是那么便捷,比如mongos集群的整体迁移步骤非常繁琐,且对网络的要求很高;
mongosync支持mongos集群迁移,目前支持3.0及以下版本,特别适合mongodb跨机房的迁移
目前有这么一个需求
机房A有一套mongos集群,需要迁移到机房B,A和B之间的mongo实例网络不通,但是在其中一个中转服务器上能够分别ping通A机房和B机房的mongodb实例,于是我采用360开发的开源迁移工具mongosync
步骤
1 在B机房建立和A机房相同配置的mongos集群
2 A机房mongos停止负载均衡器
3 mongosync全量+增量同步
4 等待两端集群数据完成同步后,在B机房设置sharding信息,比如哪个表的哪个字段参与sharding
5 A机房mongos集群业务停服
6 确认数据完全同步后,应用层将业务ip改为B机房的mongos ip
7 迁移完成
mongosync的安装和使用方法
系统版本 centos 7.2 python 2.7.5 gcc 4.8.5
安装方法
1 git clone https://github.com/jacketwoo/mongosync
2 yum install -y scons
3 yum install -y boost boost-devel
4 yum install -y openssl-devel
5 cd mongosync/
6 make