MongoDB副本集配置(windows)
MongoDB副本集
MongoDB副本集(Replica Set)其實就是具有自動故障恢復功能的主從叢集,和主從複製最大的區別就是在副本集中沒有固定的“主節點;整個副本集會選出一個節點作為“主節點”,當其掛掉後,再在剩下的從節點中選舉一個節點成為新的“主節點”,在副本集中總有一個主節點(primary)和一個或多個備份節點(secondary)。
除了primary和secondary之外,副本集中的節點還可以是以下角色:
官方推薦的副本集最小配置需要有三個節點:一個主節點接收和處理所有的寫操作,兩個備份節點通過複製主節點的操作來對主節點的資料進行同步備份。
配置副本集
環境準備:
節點總數量:4
主節點:1
副節點:2
仲裁節點:1
192.168.16.59:27017
192.168.16.59:27018
192.168.16.59:27019
192.168.16.59:27020
檔案目錄:
mongod.conf
#mongod.conf #配置與儲存有關的資訊 storage: dbPath: D:\software\MongoDB\data3\db journal: enabled: true #指定與日誌有關的資訊 systemLog: destination: file quiet:true logAppend: false path: D:\software\MongoDB\log3\mongod.log #配置與網路有關的資訊 net: port: 27020 bindIp: 0.0.0.0 #副本集模式 replication: replSetName: rs #副本集名稱
mongod1.conf
#mongod.conf #配置與儲存有關的資訊 storage: dbPath: D:\software\MongoDB\data1\db journal: enabled: true #指定與日誌有關的資訊 systemLog: destination: file quiet:true logAppend: false path: D:\software\MongoDB\log1\mongod.log #配置與網路有關的資訊 net: port: 27018 bindIp: 0.0.0.0 #副本集模式 replication: replSetName: rs #副本集名稱
mongod2.conf
#mongod.conf #配置與儲存有關的資訊 storage: dbPath: D:\software\MongoDB\data2\db journal: enabled: true #指定與日誌有關的資訊 systemLog: destination: file quiet: true logAppend: false path: D:\software\MongoDB\log2\mongod.log #配置與網路有關的資訊 net: port: 27019 bindIp: 0.0.0.0 #副本集模式 replication: replSetName: rs #副本集名稱
mongod3.conf
#mongod.conf #配置與儲存有關的資訊 storage: dbPath: D:\software\MongoDB\data3\db journal: enabled: true #指定與日誌有關的資訊 systemLog: destination: file quiet: true logAppend: false path: D:\software\MongoDB\log3\mongod.log #配置與網路有關的資訊 net: port: 27020 bindIp: 0.0.0.0 #副本集模式 replication: replSetName: rs #副本集名稱
註冊服務:
啟動服務:
定義副本集配置
初始化副本集
檢視副本集狀態:
mongodb配置完複製集檔案進行初始化時報錯:
"ok" : 0,
"errmsg" : "replSetInitiate quorum check failed because not all proposed set members responded affirmatively: 172.24.240.103:28001 failed with No route to host, 172.24.240.104:28001 failed with No route to host, 172.24.240.105:28001 failed with No route to host",
"code" : 74,
"codeName" : "NodeNotFound"
解決方案:
由於mongodb分散式複製集初始化時需要各個節點之間的通話,所以需要將各個節點上的防火牆進行關閉。