当前位置:Gxlcms > 数据库问题 > MongoDB副本集replica set(四)--成员配置

MongoDB副本集replica set(四)--成员配置

时间:2021-07-01 10:21:17 帮助过:24人阅读

].priority = 3 rs.reconfig(cfg)

对于members[n]的定义:
n是members数组中的数组位置,数组以0开始,千万不能将其理解为“members[n]._id”的_id值。下面的成员配置都是这样理解。

例如,我要调整“192.168.10.43”的节点的优先级为2,因为该节点在数组索引的第1位(从0开始计算),故调整优先级的方法为:

STEP1:调整前,确认192.168.10.43节点在members数组中的位置:

技术图片
  1. rstest:PRIMARY><span style="color: #000000;"> rs.config()
  2. {
  3. </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;">,
  4. </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;">,
  5. </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;">),
  6. </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;">,
  7. </span><span style="color: #800000;">"</span><span style="color: #800000;">members</span><span style="color: #800000;">"</span><span style="color: #000000;"> : [
  8. {
  9. </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;">,
  10. </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;">,
  11. </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;">,
  12. </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;">,
  13. </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;">,
  14. </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;">,
  15. </span><span style="color: #800000;">"</span><span style="color: #800000;">tags</span><span style="color: #800000;">"</span><span style="color: #000000;"> : {
  16. },
  17. </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;">),
  18. </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;">
  19. },
  20. {
  21. </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;">,
  22. </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;">,
  23. </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;">,
  24. </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;">,
  25. </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;">,
  26. </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;">,
  27. </span><span style="color: #800000;">"</span><span style="color: #800000;">tags</span><span style="color: #800000;">"</span><span style="color: #000000;"> : {
  28. },
  29. </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;">),
  30. </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;">
  31. },
  32. {
  33. </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;">,
  34. </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;">,
  35. </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;">,
  36. </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;">,
  37. </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;">,
  38. </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;">,
  39. </span><span style="color: #800000;">"</span><span style="color: #800000;">tags</span><span style="color: #800000;">"</span><span style="color: #000000;"> : {
  40. },
  41. </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;">),
  42. </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;">
  43. }
  44. ],
  45. </span><span style="color: #800000;">"</span><span style="color: #800000;">settings</span><span style="color: #800000;">"</span><span style="color: #000000;"> : {
  46. </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;">,
  47. </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;">,
  48. </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;">,
  49. </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;">,
  50. </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;">,
  51. </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;">,
  52. </span><span style="color: #800000;">"</span><span style="color: #800000;">getLastErrorModes</span><span style="color: #800000;">"</span><span style="color: #000000;"> : {
  53. },
  54. </span><span style="color: #800000;">"</span><span style="color: #800000;">getLastErrorDefaults</span><span style="color: #800000;">"</span><span style="color: #000000;"> : {
  55. </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;">,
  56. </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;">
  57. },
  58. </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;">)
  59. }
  60. }
  61. rstest:PRIMARY</span>>
View Code

STEP2:从上面可以看到,“192.168.10.43”位于数组的第1位,前面的“192.168.10.41”是第0个成员,调整优先级:

  1. rstest:PRIMARY> cfg =<span style="color: #000000;"> rs.conf()
  2. rstest:PRIMARY</span>> cfg.members[<span style="color: #800080;">1</span>].priority = <span style="color: #800080;">2</span>
  3. <span style="color: #800080;">2</span><span style="color: #000000;">
  4. rstest:PRIMARY</span>><span style="color: #000000;"> rs.reconfig(cfg)
  5. {
  6. </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;">,
  7. </span><span style="color: #800000;">"</span><span style="color: #800000;">$clusterTime</span><span style="color: #800000;">"</span><span style="color: #000000;"> : {
  8. </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;">),
  9. </span><span style="color: #800000;">"</span><span style="color: #800000;">signature</span><span style="color: #800000;">"</span><span style="color: #000000;"> : {
  10. </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;">),
  11. </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;">)
  12. }
  13. },
  14. </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;">)
  15. }
  16. rstest:PRIMARY</span>>

 STEP3:调整后,发现“192.168.10.43”节点优先级由0变为了2:

技术图片
  1. rstest:PRIMARY><span style="color: #000000;"> rs.conf()
  2. {
  3. </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;">,
  4. </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;">,
  5. </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;">),
  6. </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;">,
  7. </span><span style="color: #800000;">"</span><span style="color: #800000;">members</span><span style="color: #800000;">"</span><span style="color: #000000;"> : [
  8. {
  9. </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;">,
  10. </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;">,
  11. </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;">,
  12. </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;">,
  13. </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;">,
  14. </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;">,
  15. </span><span style="color: #800000;">"</span><span style="color: #800000;">tags</span><span style="color: #800000;">"</span><span style="color: #000000;"> : {
  16. },
  17. </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;">),
  18. </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;">
  19. },
  20. {
  21. </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;">,
  22. </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;">,
  23. </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;">,
  24. </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;">,
  25. </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;">,
  26. </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;">,
  27. </span><span style="color: #800000;">"</span><span style="color: #800000;">tags</span><span style="color: #800000;">"</span><span style="color: #000000;"> : {
  28. },
  29. </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;">),
  30. </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;">
  31. },
  32. {
  33. </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;">,
  34. </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;">,
  35. </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;">,
  36. </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;">,
  37. </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;">,
  38. </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;">,
  39. </span><span style="color: #800000;">"</span><span style="color: #800000;">tags</span><span style="color: #800000;">"</span><span style="color: #000000;"> : {
  40. },
  41. </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;">),
  42. </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;">
  43. }
  44. ],
  45. </span><span style="color: #800000;">"</span><span style="color: #800000;">settings</span><span style="color: #800000;">"</span><span style="color: #000000;"> : {
  46. </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;">,
  47. </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;">,
  48. </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;">,
  49. </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;">,
  50. </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;">,
  51. </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;">,
  52. </span><span style="color: #800000;">"</span><span style="color: #800000;">getLastErrorModes</span><span style="color: #800000;">"</span><span style="color: #000000;"> : {
  53. },
  54. </span><span style="color: #800000;">"</span><span style="color: #800000;">getLastErrorDefaults</span><span style="color: #800000;">"</span><span style="color: #000000;"> : {
  55. </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;">,
  56. </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;">
  57. },
  58. </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;">)
  59. }
  60. }
  61. rstest:PRIMARY</span>>
View Code

 

 (二)防止次级(secondary)节点变为主节点

只需将节点的优先级调整为0即可

  1. cfg =<span style="color: #000000;"> rs.conf()
  2. cfg.members[</span><span style="color: #800080;">1</span>].priority = <span style="color: #800080;">0</span><span style="color: #000000;">
  3. rs.reconfig(cfg)</span>

 

(三)配置隐藏节点成员(Hidden Replica Set Member)
隐藏节点成员是副本集的一部分,但是隐藏节点不会被选举为主节点,且对客户端应用是不可见的。隐藏节点可以参与投票。
隐藏节点通常使用在延迟复制上。
如果要配置隐藏节点,需要将members[n].priority值设为0,将members[n].hidden设置为true。

  1. cfg =<span style="color: #000000;"> rs.conf()
  2. cfg.members[</span><span style="color: #800080;">0</span>].priority = <span style="color: #800080;">0</span><span style="color: #000000;">
  3. cfg.members[</span><span style="color: #800080;">0</span>].hidden = <span style="color: #0000ff;">true</span><span style="color: #000000;">
  4. rs.reconfig(cfg)</span>

重新配置集合后,其它成员在使用isMaster或db.isMaster()输出中不会显示隐藏成员。

 

(四)配置延迟节点成员(Delayed Replica Set Member)
要配置延迟的辅助成员,需要将members[n].priority设置为0,将members[n].hidden设置为true,将members[n].slaveDelay值设置为延迟秒数。
例如,这里把节点0配置为延迟节点,延迟时间为3600s。

  1. cfg =<span style="color: #000000;"> rs.conf()
  2. cfg.members[</span><span style="color: #800080;">0</span>].priority = <span style="color: #800080;">0</span><span style="color: #000000;">
  3. cfg.members[</span><span style="color: #800080;">0</span>].hidden = <span style="color: #0000ff;">true</span><span style="color: #000000;">
  4. cfg.members[</span><span style="color: #800080;">0</span>].slaveDelay = <span style="color: #800080;">3600</span><span style="color: #000000;">
  5. rs.reconfig(cfg)</span>

注意:延迟节点的延迟必须要oplog的窗口内,如果oplog短于members[n].slaveDelay窗口,延迟节点将不能成功复制。

 

(五)配置非投票节点(Non-Voting Replica Set Member)
mongoDB最多允许有50个节点,其中最多7个投票节点。要将成员配置为非投票节点,只需将votes和priority都设置为0。

  1. cfg =<span style="color: #000000;"> rs.conf()
  2. cfg.members[n].votes </span>= <span style="color: #800080;">0</span><span style="color: #000000;">
  3. cfg.members[n].priority </span>= <span style="color: #800080;">0</span><span style="color: #000000;">
  4. rs.reconfig()</span>

 

 

【完】 

MongoDB副本集replica set(四)--成员配置

标签:none   att   time   将不   pre   prot   one   timestamp   bin   

人气教程排行