首页 > 数据库 >mongodb副本集(仲裁模式)修改各节点ip(update方式)

mongodb副本集(仲裁模式)修改各节点ip(update方式)

时间:2023-09-03 14:55:06浏览次数:36  
标签:02T10 29001 mongodb 09 update 192.168 ip 节点

环境:
OS:Centos 7
mongodb:5.0
当前的ip        变更后的ip
192.168.1.105    192.168.1.108    PRIMARY
192.168.1.106    192.168.1.109    SECONDARY
192.168.1.107    192.168.1.110    ARBITER

 

1.查看当前的集群
登录一个节点上查看

[root@localhost key]# /usr/local/services/mongodb/bin/mongo localhost:29001
use admin
db.auth("test","test123");
myrepl:PRIMARY> rs.conf()
{
        "_id" : "myrepl",
        "version" : 1,
        "term" : 4,
        "members" : [
                {
                        "_id" : 0,
                        "host" : "192.168.1.105:29001",
                        "arbiterOnly" : false,
                        "buildIndexes" : true,
                        "hidden" : false,
                        "priority" : 1,
                        "tags" : {

                        },
                        "slaveDelay" : NumberLong(0),
                        "votes" : 1
                },
                {
                        "_id" : 1,
                        "host" : "192.168.1.106:29001",
                        "arbiterOnly" : false,
                        "buildIndexes" : true,
                        "hidden" : false,
                        "priority" : 1,
                        "tags" : {

                        },
                        "slaveDelay" : NumberLong(0),
                        "votes" : 1
                },
                {
                        "_id" : 2,
                        "host" : "192.168.1.107:29001",
                        "arbiterOnly" : true,
                        "buildIndexes" : true,
                        "hidden" : false,
                        "priority" : 0,
                        "tags" : {

                        },
                        "slaveDelay" : NumberLong(0),
                        "votes" : 1
                }
        ],
        "protocolVersion" : NumberLong(1),
        "writeConcernMajorityJournalDefault" : true,
        "settings" : {
                "chainingAllowed" : true,
                "heartbeatIntervalMillis" : 2000,
                "heartbeatTimeoutSecs" : 10,
                "electionTimeoutMillis" : 10000,
                "catchUpTimeoutMillis" : -1,
                "catchUpTakeoverDelayMillis" : 30000,
                "getLastErrorModes" : {

                },
                "getLastErrorDefaults" : {
                        "w" : 1,
                        "wtimeout" : 0
                },
                "replicaSetId" : ObjectId("64f30914ff7c531f5e18d8f0")
        }
}

 

2.停掉mongodb
每个节点上操作,先停掉从节点和冲裁节点再停主节点
/usr/local/services/mongodb/bin/mongo localhost:29001
use admin
db.auth("test","test123");
db.shutdownServer()

仲裁节点不需要验证
myrepl:ARBITER> use admin
switched to db admin
myrepl:ARBITER> db.shutdownServer()

3.修改每个节点的ip
cd /etc/sysconfig/network-scripts
vi ifcfg-enp0s3

重启网络
systemctl restart network

 

4.单机模式启动每一个节点(除去仲裁节点,因为仲裁节点不存储数据)
我这里以其中一个节点为例子
vi /home/middle/mongodb/conf/mongo.cnf

bind_ip=192.168.1.108,127.0.0.1 ##注意修改ip
##shardsvr=true
##replSet=myrepl
##auth=true
##keyFile=/home/middle/mongodb/key/keyfile

单机模式启动
/usr/local/services/mongodb/bin/mongod -f /home/middle/mongodb/conf/mongo.cnf

 

5.更新配置表(除去仲裁节点,因为仲裁节点不存储数据)
每个节点都要执行该操作

/usr/local/services/mongodb/bin/mongo localhost:29001
use local
db.system.replset.findOne()
cfg = db.system.replset.findOne({_id: 'myrepl'})
cfg.members[0].host = "192.168.1.108:29001"
cfg.members[1].host = "192.168.1.109:29001"
cfg.members[2].host = "192.168.1.110:29001"
db.system.replset.update({_id: 'myrepl'}, cfg)
db.system.replset.findOne()

 

注意这里我的副本集名称为:myrepl,要根据自己的实际情况替换.

 

6.停掉每个节点
/usr/local/services/mongodb/bin/mongo localhost:29001
use admin
db.shutdownServer()

另外的节点也做步骤4 和步骤5、步骤6的操作

 

7.去掉每个节的注释参数(除去仲裁节点)
vi /home/middle/mongodb/conf/mongo.cnf
shardsvr=true
replSet=myrepl
auth=true
keyFile=/home/middle/mongodb/key/keyfile

 

8.仲裁节点需要修改ip

 

9.重新启动
每个节点都执行
/usr/local/services/mongodb/bin/mongod -f /home/middle/mongodb/conf/mongo.cnf

 

10.登录检查

/usr/local/services/mongodb/bin/mongo localhost:29001
use admin
db.auth("test","test123");

        "members" : [
                {
                        "_id" : 0,
                        "name" : "192.168.1.108:29001",
                        "health" : 1,
                        "state" : 1,
                        "stateStr" : "PRIMARY",
                        "uptime" : 59,
                        "optime" : {
                                "ts" : Timestamp(1693651795, 1),
                                "t" : NumberLong(5)
                        },
                        "optimeDate" : ISODate("2023-09-02T10:49:55Z"),
                        "lastAppliedWallTime" : ISODate("2023-09-02T10:49:55.084Z"),
                        "lastDurableWallTime" : ISODate("2023-09-02T10:49:55.084Z"),
                        "syncSourceHost" : "",
                        "syncSourceId" : -1,
                        "infoMessage" : "Could not find member to sync from",
                        "electionTime" : Timestamp(1693651755, 1),
                        "electionDate" : ISODate("2023-09-02T10:49:15Z"),
                        "configVersion" : 1,
                        "configTerm" : 5,
                        "self" : true,
                        "lastHeartbeatMessage" : ""
                },
                {
                        "_id" : 1,
                        "name" : "192.168.1.109:29001",
                        "health" : 1,
                        "state" : 2,
                        "stateStr" : "SECONDARY",
                        "uptime" : 55,
                        "optime" : {
                                "ts" : Timestamp(1693651795, 1),
                                "t" : NumberLong(5)
                        },
                        "optimeDurable" : {
                                "ts" : Timestamp(1693651795, 1),
                                "t" : NumberLong(5)
                        },
                        "optimeDate" : ISODate("2023-09-02T10:49:55Z"),
                        "optimeDurableDate" : ISODate("2023-09-02T10:49:55Z"),
                        "lastAppliedWallTime" : ISODate("2023-09-02T10:49:55.084Z"),
                        "lastDurableWallTime" : ISODate("2023-09-02T10:49:55.084Z"),
                        "lastHeartbeat" : ISODate("2023-09-02T10:50:01.111Z"),
                        "lastHeartbeatRecv" : ISODate("2023-09-02T10:50:02.118Z"),
                        "pingMs" : NumberLong(0),
                        "lastHeartbeatMessage" : "",
                        "syncSourceHost" : "192.168.1.108:29001",
                        "syncSourceId" : 0,
                        "infoMessage" : "",
                        "configVersion" : 1,
                        "configTerm" : 5
                },
                {
                        "_id" : 2,
                        "name" : "192.168.1.110:29001",
                        "health" : 1,
                        "state" : 7,
                        "stateStr" : "ARBITER",
                        "uptime" : 43,
                        "lastHeartbeat" : ISODate("2023-09-02T10:50:01.119Z"),
                        "lastHeartbeatRecv" : ISODate("2023-09-02T10:50:02.407Z"),
                        "pingMs" : NumberLong(0),
                        "lastHeartbeatMessage" : "",
                        "syncSourceHost" : "",
                        "syncSourceId" : -1,
                        "infoMessage" : "",
                        "configVersion" : 1,
                        "configTerm" : 5
                }
        ],
        "ok" : 1
}

 

标签:02T10,29001,mongodb,09,update,192.168,ip,节点
From: https://www.cnblogs.com/hxlasky/p/17674990.html

相关文章

  • Mybatis的saveOrUpdateBatch________批量保存或更新
    一、saveOrUpdateBatch介绍Mybatis是一种优秀的ORM框架,为了提高效率,Mybatis提供了批量执行操作的方法。saveOrUpdateBatch是其中一个方法,它可以保存或更新多组数据。二、怎样使用saveOrUpdateBatch要使用Mybatis的saveOrUpdateBatch方法,您需要先创建一个Mapper接口,并在其中定义......
  • 无涯教程-JavaScript - QUARTILE函数
    QUARTILE函数取代了Excel2010中的QUARTILE.INC函数。描述该函数返回数据集的四分位数。四分位数通常用于销售和调查数据中,以将人群分为几类。语法QUARTILE(array,quart)争论Argument描述Required/OptionalArrayThearrayorcellrangeofnumericvaluesforwhi......
  • JS基础-初识JavaScript
    前面讲了前端开发必备的三种语言。其中的HTML、CSS我们基本上有了比较正确的认识。这里讲一下JavaScript。语言功能结构层HTML搭建结构、放置部件、描述定义样式层CSS美化页面、实现布局行为层JavaScript实现交互效果、数据收发、表单验证HTML构成了......
  • 无涯教程-JavaScript - PERCENTRANK函数
    PERCENTRANK函数取代了Excel2010中的PERCENTRANK.INC函数。描述该函数以数据集的百分比形式返回数据集中的值的排名。此功能可用于判断数据集中值的相对位置。语法PERCENTRANK(array,x,[significance])争论Argument描述Required/OptionalArrayThearrayorrangeo......
  • Java:使用javax.crypto.Cipher的AES算法实现数据加密解密
    AES算法加密Stringalgorithm="AES/ECB/PKCS5Padding";//定义加密算法Stringkey="1234567890123456";//这是待加密的信息Stringmessage="HelloWorld.";//这是待加密的信息Ciphercipher=Cipher.getInstance(algorithm);cipher.init(Cipher.ENCRYPT......
  • Unity业务抽象套路二、EIP Everythings Is Prefab
     为什一些控制、数据管理的逻辑也要做成Prefab?好处:可以在Inspector中调整参数(而不是散落在各个配置文件中)调试时能够在Inspector确认具体数值自然地支持一系列方法:携程、定时、Update、FixedUpDate注意:有人习惯将配置写成ScriptableObject然后统一以此来管理。个人建......
  • DNS解析一个地址,会返回多个IP吗?
    答案是不会的。一个域名对应多个IP从理论上讲,一个域名是可以对应多个IP的,在这种情况下,当不同的用户访问该域名时,就会访问到不同的IP地址。要实现一个域名对应多个IP地址的效果,只需要在DNS解析操作平台,添加一条解析记录,将网站的域名指向服务器的IP地址。一般情况下,一......
  • 无涯教程-JavaScript - NEGBINOMDIST函数
    NEGBINOMDIST函数取代了Excel2010中的NEGBINOM.DIST函数。描述该函数返回负二项式分布。NEGBINOMDIST返回在第number_s次成功之前出现number_f次失败的概率,而成功的恒定概率是概率_s。该函数与二项式分布相似,不同之处在于成功次数是固定的,而试验次数是可变的。像二项式一......
  • 关于 Product Pipeline 的 galectin.json 文件
    ProductPipeline概述:"ProductPipeline"是一个广泛用于企业中的术语,指的是一个产品从概念到最终交付的整个过程。它代表了产品的生命周期,从概念、规划、设计、开发、测试、部署,一直到最终发布和维护。在软件开发领域,"ProductPipeline"通常包括多个阶段和环节,每个环节都有特定的......
  • JavaScript-console 对象
    console对象console对象是JavaScript的原生对象,它有点像Unix系统的标准输出stdout和标准错误stderr,可以输出各种信息到控制台,并且还提供了很多有用的辅助方法。console的常见用途有两个。调试程序,显示网页代码运行时的错误信息。提供了一个命令行接口,用来与网页代码互动。cons......