时间:2021-07-01 10:21:17 帮助过:24人阅读
对于members[n]的定义:
n是members数组中的数组位置,数组以0开始,千万不能将其理解为“members[n]._id”的_id值。下面的成员配置都是这样理解。
例如,我要调整“192.168.10.43”的节点的优先级为2,因为该节点在数组索引的第1位(从0开始计算),故调整优先级的方法为:
STEP1:调整前,确认192.168.10.43节点在members数组中的位置:
View Code
- rstest:PRIMARY><span style="color: #000000;"> rs.config()
- {
- </span><span style="color: #800000;">"</span><span style="color: #800000;">_id</span><span style="color: #800000;">"</span> : <span style="color: #800000;">"</span><span style="color: #800000;">rstest</span><span style="color: #800000;">"</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">version</span><span style="color: #800000;">"</span> : <span style="color: #800080;">11</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">protocolVersion</span><span style="color: #800000;">"</span> : NumberLong(<span style="color: #800080;">1</span><span style="color: #000000;">),
- </span><span style="color: #800000;">"</span><span style="color: #800000;">writeConcernMajorityJournalDefault</span><span style="color: #800000;">"</span> : <span style="color: #0000ff;">true</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">members</span><span style="color: #800000;">"</span><span style="color: #000000;"> : [
- {
- </span><span style="color: #800000;">"</span><span style="color: #800000;">_id</span><span style="color: #800000;">"</span> : <span style="color: #800080;">0</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">host</span><span style="color: #800000;">"</span> : <span style="color: #800000;">"</span><span style="color: #800000;">192.168.10.41:27017</span><span style="color: #800000;">"</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">arbiterOnly</span><span style="color: #800000;">"</span> : <span style="color: #0000ff;">false</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">buildIndexes</span><span style="color: #800000;">"</span> : <span style="color: #0000ff;">true</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">hidden</span><span style="color: #800000;">"</span> : <span style="color: #0000ff;">false</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">priority</span><span style="color: #800000;">"</span> : <span style="color: #800080;">3</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">tags</span><span style="color: #800000;">"</span><span style="color: #000000;"> : {
- },
- </span><span style="color: #800000;">"</span><span style="color: #800000;">slaveDelay</span><span style="color: #800000;">"</span> : NumberLong(<span style="color: #800080;">0</span><span style="color: #000000;">),
- </span><span style="color: #800000;">"</span><span style="color: #800000;">votes</span><span style="color: #800000;">"</span> : <span style="color: #800080;">1</span><span style="color: #000000;">
- },
- {
- </span><span style="color: #800000;">"</span><span style="color: #800000;">_id</span><span style="color: #800000;">"</span> : <span style="color: #800080;">2</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">host</span><span style="color: #800000;">"</span> : <span style="color: #800000;">"</span><span style="color: #800000;">192.168.10.43:27017</span><span style="color: #800000;">"</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">arbiterOnly</span><span style="color: #800000;">"</span> : <span style="color: #0000ff;">false</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">buildIndexes</span><span style="color: #800000;">"</span> : <span style="color: #0000ff;">true</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">hidden</span><span style="color: #800000;">"</span> : <span style="color: #0000ff;">false</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">priority</span><span style="color: #800000;">"</span> : <span style="color: #800080;">0</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">tags</span><span style="color: #800000;">"</span><span style="color: #000000;"> : {
- },
- </span><span style="color: #800000;">"</span><span style="color: #800000;">slaveDelay</span><span style="color: #800000;">"</span> : NumberLong(<span style="color: #800080;">0</span><span style="color: #000000;">),
- </span><span style="color: #800000;">"</span><span style="color: #800000;">votes</span><span style="color: #800000;">"</span> : <span style="color: #800080;">1</span><span style="color: #000000;">
- },
- {
- </span><span style="color: #800000;">"</span><span style="color: #800000;">_id</span><span style="color: #800000;">"</span> : <span style="color: #800080;">3</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">host</span><span style="color: #800000;">"</span> : <span style="color: #800000;">"</span><span style="color: #800000;">192.168.10.42:27017</span><span style="color: #800000;">"</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">arbiterOnly</span><span style="color: #800000;">"</span> : <span style="color: #0000ff;">false</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">buildIndexes</span><span style="color: #800000;">"</span> : <span style="color: #0000ff;">true</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">hidden</span><span style="color: #800000;">"</span> : <span style="color: #0000ff;">false</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">priority</span><span style="color: #800000;">"</span> : <span style="color: #800080;">2</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">tags</span><span style="color: #800000;">"</span><span style="color: #000000;"> : {
- },
- </span><span style="color: #800000;">"</span><span style="color: #800000;">slaveDelay</span><span style="color: #800000;">"</span> : NumberLong(<span style="color: #800080;">0</span><span style="color: #000000;">),
- </span><span style="color: #800000;">"</span><span style="color: #800000;">votes</span><span style="color: #800000;">"</span> : <span style="color: #800080;">1</span><span style="color: #000000;">
- }
- ],
- </span><span style="color: #800000;">"</span><span style="color: #800000;">settings</span><span style="color: #800000;">"</span><span style="color: #000000;"> : {
- </span><span style="color: #800000;">"</span><span style="color: #800000;">chainingAllowed</span><span style="color: #800000;">"</span> : <span style="color: #0000ff;">true</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">heartbeatIntervalMillis</span><span style="color: #800000;">"</span> : <span style="color: #800080;">2000</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">heartbeatTimeoutSecs</span><span style="color: #800000;">"</span> : <span style="color: #800080;">10</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">electionTimeoutMillis</span><span style="color: #800000;">"</span> : <span style="color: #800080;">10000</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">catchUpTimeoutMillis</span><span style="color: #800000;">"</span> : -<span style="color: #800080;">1</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">catchUpTakeoverDelayMillis</span><span style="color: #800000;">"</span> : <span style="color: #800080;">30000</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">getLastErrorModes</span><span style="color: #800000;">"</span><span style="color: #000000;"> : {
- },
- </span><span style="color: #800000;">"</span><span style="color: #800000;">getLastErrorDefaults</span><span style="color: #800000;">"</span><span style="color: #000000;"> : {
- </span><span style="color: #800000;">"</span><span style="color: #800000;">w</span><span style="color: #800000;">"</span> : <span style="color: #800080;">1</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">wtimeout</span><span style="color: #800000;">"</span> : <span style="color: #800080;">0</span><span style="color: #000000;">
- },
- </span><span style="color: #800000;">"</span><span style="color: #800000;">replicaSetId</span><span style="color: #800000;">"</span> : ObjectId(<span style="color: #800000;">"</span><span style="color: #800000;">5ef1b03c01bba8d9a6759c18</span><span style="color: #800000;">"</span><span style="color: #000000;">)
- }
- }
- rstest:PRIMARY</span>>
STEP2:从上面可以看到,“192.168.10.43”位于数组的第1位,前面的“192.168.10.41”是第0个成员,调整优先级:
- rstest:PRIMARY> cfg =<span style="color: #000000;"> rs.conf()
- rstest:PRIMARY</span>> cfg.members[<span style="color: #800080;">1</span>].priority = <span style="color: #800080;">2</span>
- <span style="color: #800080;">2</span><span style="color: #000000;">
- rstest:PRIMARY</span>><span style="color: #000000;"> rs.reconfig(cfg)
- {
- </span><span style="color: #800000;">"</span><span style="color: #800000;">ok</span><span style="color: #800000;">"</span> : <span style="color: #800080;">1</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">$clusterTime</span><span style="color: #800000;">"</span><span style="color: #000000;"> : {
- </span><span style="color: #800000;">"</span><span style="color: #800000;">clusterTime</span><span style="color: #800000;">"</span> : Timestamp(<span style="color: #800080;">1593364371</span>, <span style="color: #800080;">1</span><span style="color: #000000;">),
- </span><span style="color: #800000;">"</span><span style="color: #800000;">signature</span><span style="color: #800000;">"</span><span style="color: #000000;"> : {
- </span><span style="color: #800000;">"</span><span style="color: #800000;">hash</span><span style="color: #800000;">"</span> : BinData(<span style="color: #800080;">0</span>,<span style="color: #800000;">"</span><span style="color: #800000;">gU7HNe/7TCGjsdRB3bU8EWb4SSs=</span><span style="color: #800000;">"</span><span style="color: #000000;">),
- </span><span style="color: #800000;">"</span><span style="color: #800000;">keyId</span><span style="color: #800000;">"</span> : NumberLong(<span style="color: #800000;">"</span><span style="color: #800000;">6841443127941660675</span><span style="color: #800000;">"</span><span style="color: #000000;">)
- }
- },
- </span><span style="color: #800000;">"</span><span style="color: #800000;">operationTime</span><span style="color: #800000;">"</span> : Timestamp(<span style="color: #800080;">1593364371</span>, <span style="color: #800080;">1</span><span style="color: #000000;">)
- }
- rstest:PRIMARY</span>>
STEP3:调整后,发现“192.168.10.43”节点优先级由0变为了2:
View Code
- rstest:PRIMARY><span style="color: #000000;"> rs.conf()
- {
- </span><span style="color: #800000;">"</span><span style="color: #800000;">_id</span><span style="color: #800000;">"</span> : <span style="color: #800000;">"</span><span style="color: #800000;">rstest</span><span style="color: #800000;">"</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">version</span><span style="color: #800000;">"</span> : <span style="color: #800080;">12</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">protocolVersion</span><span style="color: #800000;">"</span> : NumberLong(<span style="color: #800080;">1</span><span style="color: #000000;">),
- </span><span style="color: #800000;">"</span><span style="color: #800000;">writeConcernMajorityJournalDefault</span><span style="color: #800000;">"</span> : <span style="color: #0000ff;">true</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">members</span><span style="color: #800000;">"</span><span style="color: #000000;"> : [
- {
- </span><span style="color: #800000;">"</span><span style="color: #800000;">_id</span><span style="color: #800000;">"</span> : <span style="color: #800080;">0</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">host</span><span style="color: #800000;">"</span> : <span style="color: #800000;">"</span><span style="color: #800000;">192.168.10.41:27017</span><span style="color: #800000;">"</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">arbiterOnly</span><span style="color: #800000;">"</span> : <span style="color: #0000ff;">false</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">buildIndexes</span><span style="color: #800000;">"</span> : <span style="color: #0000ff;">true</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">hidden</span><span style="color: #800000;">"</span> : <span style="color: #0000ff;">false</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">priority</span><span style="color: #800000;">"</span> : <span style="color: #800080;">3</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">tags</span><span style="color: #800000;">"</span><span style="color: #000000;"> : {
- },
- </span><span style="color: #800000;">"</span><span style="color: #800000;">slaveDelay</span><span style="color: #800000;">"</span> : NumberLong(<span style="color: #800080;">0</span><span style="color: #000000;">),
- </span><span style="color: #800000;">"</span><span style="color: #800000;">votes</span><span style="color: #800000;">"</span> : <span style="color: #800080;">1</span><span style="color: #000000;">
- },
- {
- </span><span style="color: #800000;">"</span><span style="color: #800000;">_id</span><span style="color: #800000;">"</span> : <span style="color: #800080;">2</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">host</span><span style="color: #800000;">"</span> : <span style="color: #800000;">"</span><span style="color: #800000;">192.168.10.43:27017</span><span style="color: #800000;">"</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">arbiterOnly</span><span style="color: #800000;">"</span> : <span style="color: #0000ff;">false</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">buildIndexes</span><span style="color: #800000;">"</span> : <span style="color: #0000ff;">true</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">hidden</span><span style="color: #800000;">"</span> : <span style="color: #0000ff;">false</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">priority</span><span style="color: #800000;">"</span> : <span style="color: #800080;">2</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">tags</span><span style="color: #800000;">"</span><span style="color: #000000;"> : {
- },
- </span><span style="color: #800000;">"</span><span style="color: #800000;">slaveDelay</span><span style="color: #800000;">"</span> : NumberLong(<span style="color: #800080;">0</span><span style="color: #000000;">),
- </span><span style="color: #800000;">"</span><span style="color: #800000;">votes</span><span style="color: #800000;">"</span> : <span style="color: #800080;">1</span><span style="color: #000000;">
- },
- {
- </span><span style="color: #800000;">"</span><span style="color: #800000;">_id</span><span style="color: #800000;">"</span> : <span style="color: #800080;">3</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">host</span><span style="color: #800000;">"</span> : <span style="color: #800000;">"</span><span style="color: #800000;">192.168.10.42:27017</span><span style="color: #800000;">"</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">arbiterOnly</span><span style="color: #800000;">"</span> : <span style="color: #0000ff;">false</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">buildIndexes</span><span style="color: #800000;">"</span> : <span style="color: #0000ff;">true</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">hidden</span><span style="color: #800000;">"</span> : <span style="color: #0000ff;">false</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">priority</span><span style="color: #800000;">"</span> : <span style="color: #800080;">2</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">tags</span><span style="color: #800000;">"</span><span style="color: #000000;"> : {
- },
- </span><span style="color: #800000;">"</span><span style="color: #800000;">slaveDelay</span><span style="color: #800000;">"</span> : NumberLong(<span style="color: #800080;">0</span><span style="color: #000000;">),
- </span><span style="color: #800000;">"</span><span style="color: #800000;">votes</span><span style="color: #800000;">"</span> : <span style="color: #800080;">1</span><span style="color: #000000;">
- }
- ],
- </span><span style="color: #800000;">"</span><span style="color: #800000;">settings</span><span style="color: #800000;">"</span><span style="color: #000000;"> : {
- </span><span style="color: #800000;">"</span><span style="color: #800000;">chainingAllowed</span><span style="color: #800000;">"</span> : <span style="color: #0000ff;">true</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">heartbeatIntervalMillis</span><span style="color: #800000;">"</span> : <span style="color: #800080;">2000</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">heartbeatTimeoutSecs</span><span style="color: #800000;">"</span> : <span style="color: #800080;">10</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">electionTimeoutMillis</span><span style="color: #800000;">"</span> : <span style="color: #800080;">10000</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">catchUpTimeoutMillis</span><span style="color: #800000;">"</span> : -<span style="color: #800080;">1</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">catchUpTakeoverDelayMillis</span><span style="color: #800000;">"</span> : <span style="color: #800080;">30000</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">getLastErrorModes</span><span style="color: #800000;">"</span><span style="color: #000000;"> : {
- },
- </span><span style="color: #800000;">"</span><span style="color: #800000;">getLastErrorDefaults</span><span style="color: #800000;">"</span><span style="color: #000000;"> : {
- </span><span style="color: #800000;">"</span><span style="color: #800000;">w</span><span style="color: #800000;">"</span> : <span style="color: #800080;">1</span><span style="color: #000000;">,
- </span><span style="color: #800000;">"</span><span style="color: #800000;">wtimeout</span><span style="color: #800000;">"</span> : <span style="color: #800080;">0</span><span style="color: #000000;">
- },
- </span><span style="color: #800000;">"</span><span style="color: #800000;">replicaSetId</span><span style="color: #800000;">"</span> : ObjectId(<span style="color: #800000;">"</span><span style="color: #800000;">5ef1b03c01bba8d9a6759c18</span><span style="color: #800000;">"</span><span style="color: #000000;">)
- }
- }
- rstest:PRIMARY</span>>
(二)防止次级(secondary)节点变为主节点
只需将节点的优先级调整为0即可
- cfg =<span style="color: #000000;"> rs.conf()
- cfg.members[</span><span style="color: #800080;">1</span>].priority = <span style="color: #800080;">0</span><span style="color: #000000;">
- rs.reconfig(cfg)</span>
(三)配置隐藏节点成员(Hidden Replica Set Member)
隐藏节点成员是副本集的一部分,但是隐藏节点不会被选举为主节点,且对客户端应用是不可见的。隐藏节点可以参与投票。
隐藏节点通常使用在延迟复制上。
如果要配置隐藏节点,需要将members[n].priority值设为0,将members[n].hidden设置为true。
- cfg =<span style="color: #000000;"> rs.conf()
- cfg.members[</span><span style="color: #800080;">0</span>].priority = <span style="color: #800080;">0</span><span style="color: #000000;">
- cfg.members[</span><span style="color: #800080;">0</span>].hidden = <span style="color: #0000ff;">true</span><span style="color: #000000;">
- rs.reconfig(cfg)</span>
重新配置集合后,其它成员在使用isMaster或db.isMaster()输出中不会显示隐藏成员。
(四)配置延迟节点成员(Delayed Replica Set Member)
要配置延迟的辅助成员,需要将members[n].priority设置为0,将members[n].hidden设置为true,将members[n].slaveDelay值设置为延迟秒数。
例如,这里把节点0配置为延迟节点,延迟时间为3600s。
- cfg =<span style="color: #000000;"> rs.conf()
- cfg.members[</span><span style="color: #800080;">0</span>].priority = <span style="color: #800080;">0</span><span style="color: #000000;">
- cfg.members[</span><span style="color: #800080;">0</span>].hidden = <span style="color: #0000ff;">true</span><span style="color: #000000;">
- cfg.members[</span><span style="color: #800080;">0</span>].slaveDelay = <span style="color: #800080;">3600</span><span style="color: #000000;">
- rs.reconfig(cfg)</span>
注意:延迟节点的延迟必须要oplog的窗口内,如果oplog短于members[n].slaveDelay窗口,延迟节点将不能成功复制。
(五)配置非投票节点(Non-Voting Replica Set Member)
mongoDB最多允许有50个节点,其中最多7个投票节点。要将成员配置为非投票节点,只需将votes和priority都设置为0。
- cfg =<span style="color: #000000;"> rs.conf()
- cfg.members[n].votes </span>= <span style="color: #800080;">0</span><span style="color: #000000;">
- cfg.members[n].priority </span>= <span style="color: #800080;">0</span><span style="color: #000000;">
- rs.reconfig()</span>
【完】
MongoDB副本集replica set(四)--成员配置
标签:none att time 将不 pre prot one timestamp bin