背景
重新组网,需要对现有MongoDB分片集群服务器的IP进行更改,因此也需要对MongoDB分片集群的IP也进行相应的更新,而MongoDB分片集群的IP修改不能单纯的通过配置来进行,需要一番折腾后才能正常更新,这里对整个MongoDB集群的IP修改过程做下记录,希望对有同样需求的小伙伴有所帮助。
原有集群配置如下
192.168.147.11
192.168.147.16
192.168.147.21
mongos
mongos
mongos
config server
config server
config server
shard server1 主节点
shard server1 副节点
shard server1 仲裁
shard server2 仲裁
shard server2 主节点
shard server2 副节点
shard server3 副节点
shard server3 仲裁
shard server3 主节点
这里的端口分配如下所示:
mongos
20000
config server
21000
shard server1
27001
shard server2
27002
shard server3
27003
IP修改对应关系如下:
172.168.7.11
172.168.7.11
172.168.7.16
172.168.7.16
172.168.7.21
172.168.7.21
更改IP步骤
升级过程是先升级 Config
服务,再分别升级三个 Shard
配置,最后修改一个 mongos
的路由。当然了,在开始之前需要确保MongDB分片集群都已经停掉了。
停掉的步骤也很简单。 ps -ef | grep mongo
找到对应的线程id,然后 kill
掉即可。
修改config 节点的IP
用如下命令,以
standlone
模式启动一个Config
服务/usr/mongod/bin/mongod --port 21000 --dbpath=/usr/mongod/data
新打开一个shell,连接上这个config服务
/usr/mongod/bin/mongo --port 21000
进入到
local
数据库查看replset
集合,并修改对应的host
use localdb.system.replset.find()cfg = db.system.replset.findOne({_id: 'configs'})cfg.members[0].host = "172.168.7.11:21000"cfg.members[1].host = "172.168.7.16:21000"cfg.members[2].host = "172.168.7.21:21000"db.system.replset.update({_id: 'configs'}, cfg)db.system.replset.find()
上面最后一行是把修改好的内容查出来以便于查看下修改是否成功。
按照同样的步骤以
standlone
模式启动启动另外两个config节点,并修改另外两个config服务节点的信息。停掉这三个以
standlone
模式启动的config服务节点分别按照正常集群模式启动这三个config节点
/usr/mongod/bin/mongod -f /usr/mongod/conf/config.conf
看到如下所示,说明选举成功了。