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

Wesley13
• 阅读 814

背景

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

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

原有集群配置如下

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

  • 看到如下所示,说明选举成功了。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Stella981 Stella981
3年前
MongoDB分片(Sharding)技术
分片(sharding)是MongoDB用来将大型集合分割到不同服务器(或者说一个集群)上所采用的方法。尽管分片起源于关系型数据库分区,但MongoDB分片完全又是另一回事。和MySQL分区方案相比,MongoDB的最大区别在于它几乎能自动完成所有事情,只要告诉MongoDB要分配数据,它就能自动维护数据在不同服务器之间的均衡。2.1MongoDB
Stella981 Stella981
3年前
MongoDb分片集群认证
本文主要基于已经搭建好的未认证集群,结合上篇Mongodb副本集分片集群模式环境部署(https://www.cnblogs.com/woxingwoxue/p/9875878.html),MongoDb分片集群认证几个主要流程1.在分片集群环境中,副本集内成员之间需要用keyFile认证,mongos与配置服务器,副本集之间也要keyFi
Stella981 Stella981
3年前
MongoDB Sharding 分片集群配置理论
分片集群  MongoDB的分片集群由以下部分组成:_shard_(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fdocs.mongodb.com%2Fmanual%2Fcore%2Fshardedclustershards%2F): 用来存储数据,为这个分片
Wesley13 Wesley13
3年前
MongoDB DBA 实践8
在Linux系统中,主要是使用命令行进行mongodb的分片集群部署一、先决条件  mongodb安装成功,明确路径,MongoDB的几个路径:1./var/lib/mongodb2./var/log/mongodb3./etc/mongod.conf4.usr/bin/二、分片部署   
Stella981 Stella981
3年前
Mongodb集群搭建一篇就够了
本文主要介绍mongodb集群的搭建安装过程,对于学习mongodb的同学很有帮助,包括分片模式、复制集模式、是否启用认证等,本文选取mongodb3.6.3版本为例进行详细安装说明,其他版本搭建过程和本过程一样,只需按照本文说明操作即可。1.Mongodb分片集群架构
Wesley13 Wesley13
3年前
MongoDB 分片管理(一)检查集群状态
一、检查集群状态1.1使用sh.status()查看集群摘要信息1、使用sh.status()可以查看分片信息、数据库信息、集合信息sh.status()如果数据块较多时,使用sh.status(true)又是输出会很多,就不会截断,要使用如下查看2、tooman
Wesley13 Wesley13
3年前
MongoDB的分片集群的安装
简介所谓分片,指的就是把数据拆分,将其分散到不同机器上的过程。MongoDB支持自动分片,对应用而言,好像始终和一个单机的服务器交互一样。分片和复制复制是让多台服务器拥有相同的数据副本,而分片是每个分片都拥有整个数据集的一个子集,且相互是不同的数据,多个分片的数据合起来构成整个数据集。Mongos用来
Stella981 Stella981
3年前
Mongodb集群节点故障恢复场景分析(转)
一个适当配置的Mongodb分片集群是没有单点故障。本文描述了分片集群中存在的几种不同的潜在的节点故障场景,以及Mongodb对这些节点故障是怎么处理的。1、Mongos节点宕机一个Mongos进程应该运行在每一个应用程序服务器上,这个服务器应该独占这个Mongos进程,并且通过它与分片集群来通讯。Mongos进程不是持久化的,相反,