2020-08-21

MongoDB最新4.2.7版本三分片集群修改IP实操演练

背景

重新组网,需要对现有MongoDB分片集群服务器的IP进行更改,因此也需要对MongoDB分片集群的IP也进行相应的更新,而MongoDB分片集群的IP修改不能单纯的通过配置来进行,需要一番折腾后才能正常更新,这里对整个MongoDB集群的IP修改过程做下记录,希望对有同样需求的小伙伴有所帮助。

作者:依乐祝
原文地址:https://www.cnblogs.com/yilezhu/p/13536628.html

原有集群配置如下

192.168.147.11192.168.147.16192.168.147.21
mongosmongosmongos
config serverconfig serverconfig server
shard server1 主节点shard server1 副节点shard server1 仲裁
shard server2 仲裁shard server2 主节点shard server2 副节点
shard server3 副节点shard server3 仲裁shard server3 主节点

这里的端口分配如下所示:

mongos20000
config server21000
shard server127001
shard server227002
shard server327003

IP修改对应关系如下:

172.168.7.11172.168.7.11
172.168.7.16172.168.7.16
172.168.7.21172.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
  • 看到如下所示,说明选举成功了。

  • 登录到 primary 节点,修改分片信息

use configcfg=db.shards.findOne({_id:'shard1'})cfg.host="shard1/172.168.7.11:27001,172.168.7.16:27001"db.shards.update({_id:'shard1'},cfg)cfg = db.shards.findOne({_id: 'shard2'})cfg.host = "shard2/172.168.7.16:27002,172.168.7.21:27002"db.shards.update({_id: 'shard2'}, cfg)cfg = db.shards.findOne({_id: 'shard3'})cfg.host = "shard3/172.168.7.11:27003,172.168.7.21:27003"db.shards.update({_id: 'shard3'}, cfg)
  • 至此config服务节点的修改完成,接下来进行shard节点的修改

修改shard分片的IP信息

  • standlone 模式启动分片1,然后登录进去
/usr/mongod/bin/mongod --port 27001 --dbpath=/usr/mongod/shard1//usr/mongod/bin/mongo --port 27001
  • 切换到 admin 数据库的 version 集合查看下 config 配置信息,如果有 _id:shardIdentity 的数据则进行下更新,当然这里如果有 _id:minOpTimeRecovery 的数据也需要更新
use admindb.system.version.find()db.system.version.update({"_id" : "shardIdentity"},{"$set":{"configsvrConnectionString" : "configs/172.168.7.11:21000,172.168.7.16:21000,172.168.7.21:21000"}})db.system.version.update({"_id" : "minOpTimeRecovery"},{"$set":{"configsvrConnectionString" : "configs/172.168.7.11:21000,172.168.7.16:21000,172.168.7.21:21000"}})
  • 修改复制集的配置信息,复制集的配置信息都保存再 local 库的 system.replset 集合中
use localcfg = db.system.replset.findOne({_id: 'shard1'})cfg.members[0].host="172.168.7.11:27003"cfg.members[1].host="172.168.7.16:27003"cfg.members[2].host="172.168.7.21:27003"db.system.replset.update({_id:'shard3'},cfg)db.system.replset.findOne({_id: 'shard3'})
  • 重复上述步骤分别对shaed2,shard3进行ip的更改
  • 最后按照集群的模式启动你的三个分片即可。
/usr/mongod/bin/mongod -f /usr/mongod/conf/shard1.conf

修改mongos服务的路由信息

  • 用vim打开mongos的配置文件,修改对应的 configserver 配置项为最新的configderver地址
vim /usr/mongod/conf/mongos.conf

  • 按集群模式启动mongos服务即可
/usr/mongod/bin/mongos -f /usr/mongod/conf/mongos.conf
  • 登录验证下即可
/usr/mongod/bin/mongo --port 20000


至此,MongoDB分片集群IP修改结束。

MongoDB最新4.2.7版本三分片集群修改IP实操演练东西网ensogo亚马逊精品课程---孙琦30天学会开店:从零开始了解shopify之产品描述设置--Day17提醒!国庆节来临,外贸人要注意的4个出货事项!人人转运深圳光明街道办附近有什么好玩的地方?深圳欢乐海岸那边有什么好吃的?去那边一般都去吃什么?东门老街到梧桐山怎么走最方便?

No comments:

Post a Comment