
(一)调整副本集节点的优先级(priority)
priority属性的值会影响到主节点选举的时间以及结果,priority是一个浮点型数字,可以在0到1000之间设置,数字越高,优先级越高。
对于优先级,有一些默认规定:
非投票成员,priority必须为0;priority大于0的成员不能有0 Votes;从MongoDB 3.6版本开始,仲裁者priority为0;节点修改优先级的步骤:
cfg = rs.conf()cfg.members[n].priority = 3rs.reconfig(cfg)
对于members[n]的定义:
n是members数组中的数组位置,数组以0开始,千万不能将其理解为“members[n]._ID”的_ID值。下面的成员配置都是这样理解。
例如,我要调整“192.168.10.43”的节点的优先级为2,因为该节点在数组索引的第1位(从0开始计算),故调整优先级的方法为:
STEP1:调整前,确认192.168.10.43节点在members数组中的位置:
rstest:PRIMARY> rs.config(){"_ID" : rstest",version11protocolVersion" : NumberLong(1),1)">writeConcernMajorityJournalDefault" : truemembers : [{0host192.168.10.41:27017arbiterOnlyfalsebuildindexeshIDdenpriorityTags : {},1)">slaveDelayVotes},{2192.168.10.43:27017192.168.10.42:27017}],1)">settings : {chainingallowedheartbeatIntervalMillis2000heartbeatTimeoutSecs10electionTimeoutMillis10000catchUpTimeoutMillis" : -catchUpTakeoverDelayMillis30000getLastErrorModesgetLastErrorDefaultswwtimeoutreplicasetID" : ObjectID(5ef1b03c01bba8d9a6759c18)}}rstest:PRIMARY>VIEw Code
STEP2:从上面可以看到,“192.168.10.43”位于数组的第1位,前面的“192.168.10.41”是第0个成员,调整优先级:
rstest:PRIMARY> cfg = rs.conf()rstest:PRIMARY> cfg.members[1].priority = 2rstest:PRIMARY> rs.reconfig(cfg){ok$clusterTimeclusterTime" : Timestamp(1593364371,signaturehash" : BinData(0,1)">gU7HNe/7TCGJsdRB3bU8EWb4SSs=keyID6841443127941660675)}},1)">operationTime)}rstest:PRIMARY>
STEP3:调整后,发现“192.168.10.43”节点优先级由0变为了2:
rstest:PRIMARY> rs.conf(){12)}}rstest:PRIMARY>VIEw Code
(二)防止次级(secondary)节点变为主节点
只需将节点的优先级调整为0即可
cfg = rs.conf()cfg.members[rs.reconfig(cfg)
(三)配置隐藏节点成员(HIDden Replica Set Member)
隐藏节点成员是副本集的一部分,但是隐藏节点不会被选举为主节点,且对客户端应用是不可见的。隐藏节点可以参与投票。
隐藏节点通常使用在延迟复制上。
如果要配置隐藏节点,需要将members[n].priority值设为0,将members[n].hIDden设置为true。
cfg =0].priority = cfg.members[0].hIDden = rs.reconfig(cfg)
重新配置集合后,其它成员在使用isMaster或db.isMaster()输出中不会显示隐藏成员。
(四)配置延迟节点成员(Delayed Replica Set Member)
要配置延迟的辅助成员,需要将members[n].priority设置为0,将members[n].hIDden设置为true,将members[n].slaveDelay值设置为延迟秒数。
例如,这里把节点0配置为延迟节点,延迟时间为3600s。
cfg =0].slaveDelay = 3600rs.reconfig(cfg)
注意:延迟节点的延迟必须要oplog的窗口内,如果oplog短于members[n].slaveDelay窗口,延迟节点将不能成功复制。
(五)配置非投票节点(Non-Voting Replica Set Member)
mongoDB最多允许有50个节点,其中最多7个投票节点。要将成员配置为非投票节点,只需将Votes和priority都设置为0。
cfg = rs.conf()cfg.members[n].Votes = cfg.members[n].priority = rs.reconfig()
【完】
总结以上是内存溢出为你收集整理的MongoDB副本集replica set(四)--成员配置全部内容,希望文章能够帮你解决MongoDB副本集replica set(四)--成员配置所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)