本文共 1053 字,大约阅读时间需要 3 分钟。
有些情况下,官方推荐的迁移方法不是那么便捷,比如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 迁移完成
系统版本 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
nohup ./mongosync --src_srv 10.6.13.140:27000 --src_user ucloudbackup --src_passwd xxx --src_auth_db admin --dst_srv 10.19.110.146:27000 --dst_user ucloudbackup --dst_passwd xxx --dst_auth_db admin --oplog --is_mongos --shard_user ucloudbackup --shard_passwd xxx&
其中shard_user和shard_passwd指的是每一个分片的登录账户和密码,这里没有考虑多分片账户不一致的情况,所以理论上最好所有的分片都采用一套账户和密码
更多wiki参见https://github.com/Qihoo360/mongosync/wiki
转载地址:http://ycbgb.baihongyu.com/