MongoDB 副本集主從切換方法


一、方法一rs.setpDown()

將Primary節點降級為Secondary節點

myapp:PRIMARY> rs.stepDown()

這個命令會讓primary降級為Secondary節點,並維持60s,如果這段時間內沒有新的primary被選舉出來,這個節點可以要求重新進行選舉。

也可手動指定時間

myapp:PRIMARY> rs.stepDown(30)

在執行完該命令后,原Secondary node3:27017升級為Primary。

二、方法二優先級設置

思路:
1.為了保證數據的一致性,必須先關閉應用的寫服務。
2.提升要升級為Primary節點的Secondary節點的優先級。

操作如下:

點擊(此處)折疊或打開

  1. arps:PRIMARY> config=rs.conf()                //查看當前配置,存入config變量中。
  2. arps:PRIMARY> config.members[2].priority = 3  //修改config變量,第三組成員的優先級為3.
  3. arps:PRIMARY> rs.reconfig(config)             //配置生效                       
  4. ......
  5. ......
  6. 2017-12-22T15:19:56.596+0800 I NETWORK trying reconnect to 127.0.0.1:27017 (127.0.0.1) failed
  7. 2017-12-22T15:19:56.597+0800 I NETWORK reconnect 127.0.0.1:27017 (127.0.0.1) ok
  8. arps:SECONDARY> rs.conf()                    //查看當前配置
  9. {
  10.         "_id" : "arps",
  11.         "version" : 4,
  12.         "members" : [
  13.                 {
  14.                         "_id" : 0,
  15.                         "host" : "172.17.4.37:27017",
  16.                         "arbiterOnly" : false,
  17.                         "buildIndexes" : true,
  18.                         "hidden" : false,
  19.                         "priority" : 1,
  20.                         "tags" : {
  21.                         },
  22.                         "slaveDelay" : 0,
  23.                         "votes" : 1
  24.                 },
  25.                 {
  26.                         "_id" : 1,
  27.                         "host" : "172.17.4.38:27017",
  28.                         "arbiterOnly" : false,
  29.                         "buildIndexes" : true,
  30.                         "hidden" : false,
  31.                         "priority" : 1,
  32.                         "tags" : {
  33.                         },
  34.                         "slaveDelay" : 0,
  35.                         "votes" : 1
  36.                 },
  37.                 {
  38.                         "_id" : 2,
  39.                         "host" : "172.17.4.39:27017",
  40.                         "arbiterOnly" : false,
  41.                         "buildIndexes" : true,
  42.                         "hidden" : false,
  43.                         "priority" : 3,             //優先級變為3
  44.                         "tags" : {
  45.                         },
  46.                         "slaveDelay" : 0,
  47.                         "votes" : 1
  48.                 }
  49.         ],
  50.         "settings" : {
  51.                 "chainingAllowed" : true,
  52.                 "heartbeatTimeoutSecs" : 10,
  53.                 "getLastErrorModes" : {
  54.                 },
  55.                 "getLastErrorDefaults" : {
  56.                         "w" : 1,
  57.                         "wtimeout" : 0
  58.                 }
  59.         }
  60. }
  61. arps:SECONDARY> rs.status()
  62. {
  63.         "set" : "arps",
  64.         "date" : ISODate("2017-12-22T07:25:04.641Z"),
  65.         "myState" : 2,
  66.         "syncingTo" : "172.17.4.39:27017",
  67.         "members" : [
  68.                 {
  69.                         "_id" : 0,
  70.                         "name" : "172.17.4.37:27017",
  71.                         "health" : 1,
  72.                         "state" : 2,
  73.                         "stateStr" : "SECONDARY",
  74.                         "uptime" : 7597536,
  75.                         "optime" : Timestamp(1513927481, 3),
  76.                         "optimeDate" : ISODate("2017-12-22T07:24:41Z"),
  77.                         "syncingTo" : "172.17.4.39:27017",
  78.                         "configVersion" : 4,
  79.                         "self" : true
  80.                 },
  81.                 {
  82.                         "_id" : 1,
  83.                         "name" : "172.17.4.38:27017",
  84.                         "health" : 1,
  85.                         "state" : 2,
  86.                         "stateStr" : "SECONDARY",
  87.                         "uptime" : 7597426,
  88.                         "optime" : Timestamp(1513927481, 3),
  89.                         "optimeDate" : ISODate("2017-12-22T07:24:41Z"),
  90.                         "lastHeartbeat" : ISODate("2017-12-22T07:25:02.961Z"),
  91.                         "lastHeartbeatRecv" : ISODate("2017-12-22T07:25:04.091Z"),
  92.                         "pingMs" : 0,
  93.                         "syncingTo" : "172.17.4.39:27017",
  94.                         "configVersion" : 4
  95.                 },
  96.                 {
  97.                         "_id" : 2,
  98.                         "name" : "172.17.4.39:27017",
  99.                         "health" : 1,
  100.                         "state" : 1,
  101.                         "stateStr" : "PRIMARY",    //最后一個節點升級為PRIMARY
  102.                         "uptime" : 3202,
  103.                         "optime" : Timestamp(1513927481, 3),
  104.                         "optimeDate" : ISODate("2017-12-22T07:24:41Z"),
  105.                         "lastHeartbeat" : ISODate("2017-12-22T07:25:02.951Z"),
  106.                         "lastHeartbeatRecv" : ISODate("2017-12-22T07:25:04.344Z"),
  107.                         "pingMs" : 0,
  108.                         "electionTime" : Timestamp(1513927190, 2),
  109.                         "electionDate" : ISODate("2017-12-22T07:19:50Z"),
  110.                         "configVersion" : 4
  111.                 }
  112.         ],
  113.         "ok" : 1
  114. }
 
整理自:
https://www.cnblogs.com/ivictor/p/6804408.html
http://blog.chinaunix.net/uid-26446098-id-5781440.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM