MongoDB副本集replica set(三)--添加删除成员

MongoDB副本集replica set(三)--添加删除成员,第1张

概述在上一篇文章中,我们搭建了3个节点的副本集,集群信息如下: rstest:PRIMARY> rs.config() { "_id" : "rstest",

在上一篇文章中,我们搭建了3个节点的副本集,集群信息如下:

rstest:PRIMARY> rs.config(){    "_ID" : rstest",version2protocolVersion" : NumberLong(1),1)">writeConcernMajorityJournalDefault" : truemembers : [        {            0host192.168.10.41:27017arbiterOnlyfalsebuildindexeshIDdenpriorityTags : {                            },1)">slaveDelayVotes        },{            192.168.10.42:27017192.168.10.43:27017        }    ],1)">settings : {        chainingallowedheartbeatIntervalMillis2000heartbeatTimeoutSecs10electionTimeoutMillis10000catchUpTimeoutMillis" : -catchUpTakeoverDelayMillis30000getLastErrorModes : {                    },1)">getLastErrorDefaults : {            wwtimeoutreplicasetID" : ObjectID(5ef1b03c01bba8d9a6759c18)    }}

 

(一)删除副本集成员

删除副本集成员可以使用rs.remove()或者rs.reconfig()。

方法一:使用rs.remove删除"IP为192.168.10.42"的成员

STEP1:关闭要删除节点的实例

[root@mongodbserver2 ~]# 
mongo -u replica -p replica --
authenticationDatabase admin  MongoDB shell version v4.2.7 connecting to: mongodb://127.0.0.1:27017/?authSource=admin&compressors=Disabled&gssAPIServicename=mongodb Implicit session: session { ID" : UUID(946853b3-ad91-44d0-b7df-3001cbfc1af0) } MongoDB server version: 4.2.7rstest:SECONDARY> use admin switched to db admin rstest:SECONDARY>db.shutdownServer() 2020-06-28T23:47:02.129+0800 I  NETWORK  [Js] DBClIEntConnection Failed to receive message from 127.0.0.1:27017 - HostUnreachable: Connection closed by peer server should be down... 02.134+0800 I  NETWORK  [Js] trying reconnect to 27017 Failed 0800 I  NETWORK  [Js] reconnect  Failed Failed  02.137+ Failed Failed  >

STEP2:连接到主节点,不知道主节点,可以使用db.isMaster()确认

STEP3:在主节点上删除成员

rstest:PRIMARY> rs.remove(){    ok$clusterTimeclusterTime" : Timestamp(1593359559,signaturehash" : BinData(0,1)">UpD/BEf5OF484ZeHTHCEDReiJKw=keyID6841443127941660675)        }    },1)">operationTime)}rstest:PRIMARY>

 

方法二:使用rs.reconfig删除成员

这里不再演示,见官方文档:https://docs.mongodb.com/manual/tutorial/remove-replica-set-member/

 

(二)添加副本集成员

这里演示如何把上面已经删除的节点重新添加回来。

STEP1:启动节点,节点的启动参数必须含有集群参数。主要参数如下:

# network interfaces net:    port:     bindIp: 0.0.0.0  # Listen to local interface only,comment to Listen on all interfaces.  security:    authorization: enabled    keyfile: /mongo/mongo-keyfile replication:  replSetname: rstest

STEP2:在主节点上执行添加节点命令

rs.add( { host: ",priority: 0 } )

注意:当新添加服务器的priority和Votes大于0时,在其初始同步期间,即使该服务器由于数据不一致而无法提供读取服务或成为主服务器,但是他仍会作为有表决权的成员,这可能会导致多数投票成员在线但是无法选举主成员的情况。

STEP3:确保新加入的成员状态已经转变为SECONDARY

rs.status()

STEP4:如果新成员状态已经转变为SECONDARY,如果需要,可以使用rs.reconfig()更改新成员的priority和Votes。

var cfg = rs.conf();cfg.members[3].priority = cfg.members[3].Votes = rs.reconfig(cfg)

 

 

【完】

总结

以上是内存溢出为你收集整理的MongoDB副本集replica set(三)--添加删除成员全部内容,希望文章能够帮你解决MongoDB副本集replica set(三)--添加删除成员所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/1152053.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-31
下一篇2022-05-31

发表评论

登录后才能评论

评论列表(0条)

    保存