首页 > 数据库 > NoSQL > mongodb分片物理搬迁方案
mongodb分片架构的物理搬迁方案
mongodb分片整体迁移到另外一个集群,常规做法使用加减节点方式,如果有长时间维护窗口,采用物理拷贝的方式也可以,操作相对容易。但是mongodb的有些配置信息放在数据库中,如果需要修改的话,需要先使用standaalone方式启动,然后修改相关配置信息后再启动。
下面是相关的步骤:
1. 数据节点,修改mg.cnf,ip+port,
1.1 关闭replicaset和shard,以standalone方式重启,修改两个部分
mongo -u __system -p"$(tr -d '\011-\015\040' < $MONGODB_HOME/etc/mg.key)" --host $IP --port $PORT --authenticationDatabase local
--修改数据节点的ip地址+端口
use local
db.system.replset.find()
cfg = db.system.replset.findOne({ "_id": "mg_s2" })
cfg.members[0].host = "192.168.0.38:23092"
db.system.replset.update( { "_id": "mg_s2" } , cfg )
--修改数据节点连接配置节点的ip地址+端口
use admin
db.system.version.find()
db.system.version.update( { "_id" : "shardIdentity" }, { $set: { "configsvrConnectionString": "mg_c/192.168.0.39:6608" } }, { multi: true })
1.2 重启mongodb数据节点
2. 修改配置节点,
1.1 关闭replicaset和shard,以standalone方式重启,修改两个部分
修改配置节点的ip地址+端口
use local
db.system.replset.find()
cfg = db.system.replset.findOne({ "_id": "mg_c" })
cfg.members[0].host = "192.168.0.38:6608"
db.system.replset.update( { "_id": "mg_c" } , cfg )
修改连接数据节点的ip地址+端口
use config
db.shards.update( { "_id" : "mg_s0" }, { $set: { "host": "mg_s0/192.168.0.39:6607" } }, { multi: true })
db.shards.update( { "_id" : "mg_s1" }, { $set: { "host": "mg_s1/192.168.0.38:6606" } }, { multi: true })
db.shards.update( { "_id" : "mg_s2" }, { $set: { "host": "mg_s2/192.168.0.39:6605" } }, { multi: true })
2.2 其他配置节点
删除data目录,
2.3 增加其他两个配置节点同步
rs.add("192.168.0.38:23099")
rs.add("192.168.0.38:23103")
3. 修改路由节点
修改mg.cnf,修改配置节点的配置信息ip+port,
4. 重启路由节点,配置节点和数据节点。
5. 验证。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25105315/viewspace-2865285/ ,如需转载,请注明出处,否则将追究法律责任。