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

发布时间 2023-09-02 15:22:25作者: slnngk

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

 

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

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

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

                        },
                        "slaveDelay" : NumberLong(0),
                        "votes" : 1
                },
                {
                        "_id" : 2,
                        "host" : "192.168.1.110:29001",
                        "arbiterOnly" : false,
                        "buildIndexes" : true,
                        "hidden" : false,
                        "priority" : 1,
                        "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("64d58c8b10dc4e229f96f8a7")
        }
}

 

2.停掉mongodb
每个节点上操作,先停掉从再停主
/usr/local/services/mongodb/bin/mongo localhost:29001
use admin
db.auth("test","test123");
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.105:29001"
cfg.members[1].host = "192.168.1.106:29001"
cfg.members[2].host = "192.168.1.107: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.重新启动

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

 

9.登录检查

/usr/local/services/mongodb/bin/mongo localhost:29001
use admin
db.auth("test","test123");
myrepl:PRIMARY> rs.status()
{
        "set" : "myrepl",
        "date" : ISODate("2023-09-02T07:08:30.560Z"),
        "myState" : 1,
        "term" : NumberLong(7),
        "syncSourceHost" : "",
        "syncSourceId" : -1,
        "heartbeatIntervalMillis" : NumberLong(2000),
        "majorityVoteCount" : 2,
        "writeMajorityCount" : 2,
        "votingMembersCount" : 3,
        "writableVotingMembersCount" : 3,
        "optimes" : {
                "lastCommittedOpTime" : {
                        "ts" : Timestamp(1693638501, 1),
                        "t" : NumberLong(7)
                },
                "lastCommittedWallTime" : ISODate("2023-09-02T07:08:21.308Z"),
                "readConcernMajorityOpTime" : {
                        "ts" : Timestamp(1693638501, 1),
                        "t" : NumberLong(7)
                },
                "appliedOpTime" : {
                        "ts" : Timestamp(1693638501, 1),
                        "t" : NumberLong(7)
                },
                "durableOpTime" : {
                        "ts" : Timestamp(1693638501, 1),
                        "t" : NumberLong(7)
                },
                "lastAppliedWallTime" : ISODate("2023-09-02T07:08:21.308Z"),
                "lastDurableWallTime" : ISODate("2023-09-02T07:08:21.308Z")
        },
        "lastStableRecoveryTimestamp" : Timestamp(1693637577, 1),
        "electionCandidateMetrics" : {
                "lastElectionReason" : "electionTimeout",
                "lastElectionDate" : ISODate("2023-09-02T07:07:51.248Z"),
                "electionTerm" : NumberLong(7),
                "lastCommittedOpTimeAtElection" : {
                        "ts" : Timestamp(0, 0),
                        "t" : NumberLong(-1)
                },
                "lastSeenOpTimeAtElection" : {
                        "ts" : Timestamp(1693637587, 1),
                        "t" : NumberLong(6)
                },
                "numVotesNeeded" : 2,
                "priorityAtElection" : 1,
                "electionTimeoutMillis" : NumberLong(10000),
                "numCatchUpOps" : NumberLong(0),
                "newTermStartDate" : ISODate("2023-09-02T07:07:51.301Z"),
                "wMajorityWriteAvailabilityDate" : ISODate("2023-09-02T07:07:51.867Z")
        },
        "members" : [
                {
                        "_id" : 0,
                        "name" : "192.168.1.105:29001",
                        "health" : 1,
                        "state" : 1,
                        "stateStr" : "PRIMARY",
                        "uptime" : 51,
                        "optime" : {
                                "ts" : Timestamp(1693638501, 1),
                                "t" : NumberLong(7)
                        },
                        "optimeDate" : ISODate("2023-09-02T07:08:21Z"),
                        "lastAppliedWallTime" : ISODate("2023-09-02T07:08:21.308Z"),
                        "lastDurableWallTime" : ISODate("2023-09-02T07:08:21.308Z"),
                        "syncSourceHost" : "",
                        "syncSourceId" : -1,
                        "infoMessage" : "Could not find member to sync from",
                        "electionTime" : Timestamp(1693638471, 1),
                        "electionDate" : ISODate("2023-09-02T07:07:51Z"),
                        "configVersion" : 1,
                        "configTerm" : 7,
                        "self" : true,
                        "lastHeartbeatMessage" : ""
                },
                {
                        "_id" : 1,
                        "name" : "192.168.1.106:29001",
                        "health" : 1,
                        "state" : 2,
                        "stateStr" : "SECONDARY",
                        "uptime" : 47,
                        "optime" : {
                                "ts" : Timestamp(1693638501, 1),
                                "t" : NumberLong(7)
                        },
                        "optimeDurable" : {
                                "ts" : Timestamp(1693638501, 1),
                                "t" : NumberLong(7)
                        },
                        "optimeDate" : ISODate("2023-09-02T07:08:21Z"),
                        "optimeDurableDate" : ISODate("2023-09-02T07:08:21Z"),
                        "lastAppliedWallTime" : ISODate("2023-09-02T07:08:21.308Z"),
                        "lastDurableWallTime" : ISODate("2023-09-02T07:08:21.308Z"),
                        "lastHeartbeat" : ISODate("2023-09-02T07:08:29.328Z"),
                        "lastHeartbeatRecv" : ISODate("2023-09-02T07:08:30.344Z"),
                        "pingMs" : NumberLong(0),
                        "lastHeartbeatMessage" : "",
                        "syncSourceHost" : "192.168.1.105:29001",
                        "syncSourceId" : 0,
                        "infoMessage" : "",
                        "configVersion" : 1,
                        "configTerm" : 7
                },
                {
                        "_id" : 2,
                        "name" : "192.168.1.107:29001",
                        "health" : 1,
                        "state" : 2,
                        "stateStr" : "SECONDARY",
                        "uptime" : 44,
                        "optime" : {
                                "ts" : Timestamp(1693638501, 1),
                                "t" : NumberLong(7)
                        },
                        "optimeDurable" : {
                                "ts" : Timestamp(1693638501, 1),
                                "t" : NumberLong(7)
                        },
                        "optimeDate" : ISODate("2023-09-02T07:08:21Z"),
                        "optimeDurableDate" : ISODate("2023-09-02T07:08:21Z"),
                        "lastAppliedWallTime" : ISODate("2023-09-02T07:08:21.308Z"),
                        "lastDurableWallTime" : ISODate("2023-09-02T07:08:21.308Z"),
                        "lastHeartbeat" : ISODate("2023-09-02T07:08:29.328Z"),
                        "lastHeartbeatRecv" : ISODate("2023-09-02T07:08:30.345Z"),
                        "pingMs" : NumberLong(0),
                        "lastHeartbeatMessage" : "",
                        "syncSourceHost" : "192.168.1.105:29001",
                        "syncSourceId" : 0,
                        "infoMessage" : "",
                        "configVersion" : 1,
                        "configTerm" : 7
                }
        ],
        "ok" : 1
}