mongodb3.0副本集配置

1.環境

分別在三個主機上安裝mongodb,可以使用yum進行安裝。
主機IP分別爲:
192.168.0.1
192.168.0.2
192.168.0.3

2.配置文件設置

由於配置比較多,所以我們將配置寫到文件裏。

編輯每個節點的配置文件:

vi /etc/mongod.conf

文件內容:

systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

storage:
  dbPath: /var/lib/mongo
  journal:
    enabled: true
  directoryPerDB:true

processManagement:
  pidFilePath: /var/lib/mongo/mongod.pid
  fork: true

net:
  bindIp:192.168.0.X
  port: 27017

replication:
   oplogSizeMB: 10000
   replSetName: test

參數解釋:
storage.dbpath:數據存放目錄
storage.directoryperdb:爲每一個數據庫按照數據庫名建立文件夾存放
systemLog.path:日誌存放路徑
systemLog.logappend:以追加的方式記錄日誌
processManagement.pidfilepath:進程文件,方便停止mongodb
processManagement.fork:以後臺方式運行進程
replication.oplogSizeMB:mongodb操作日誌文件的最大大小。單位爲Mb,默認爲硬盤剩餘空間的5%
replication.replSetName:replica set的名字
net.bind_ip:mongodb所綁定的ip地址,默認綁定127.0.0.1
net.port:mongodb進程所使用的端口號,默認爲27017

其他參數說明請參考https://docs.mongodb.org/manual/reference/configuration-options/

3.啓動mongodb

systemctl start mongod

4.配置主備仲裁節點

可以通過客戶端連接mongodb,也可以直接在三個節點中選擇一個連接mongodb。

mongo 192.168.0.1:27017

切換到admin數據庫

use admin

配置集羣參數

cfg={_id:"test",members:[{_id:0,host:"192.168.0.1:27017",priority:2},{_id:1,host:"192.168.0.2:27017",priority:1},{_id:2,host:"192.168.0.3:27017",arbiterOnly:true}]}

使配置生效

rs.initiate(cfg) 

cfg是可以任意的名字,當然最好不要是mongodb的關鍵字,conf,config都可以。最外層的_id表示replica set的名字,members裏包含的是所有節點的地址以及優先級。優先級最高的即成爲主節點,即這裏的192.168.0.1:27017。特別注意的是,對於仲裁節點,需要有個特別的配置——arbiterOnly:true。這個千萬不能少了,不然主備模式就不能生效。
配置的生效時間根據不同的機器配置會有長有短,配置不錯的話基本上十幾秒內就能生效,有的配置需要一兩分鐘。如果生效了,執行rs.status()命令會看到如下信息:

{
    "set" : "test",
    "date" : ISODate("2016-04-21T07:47:40.515Z"),
    "myState" : 1,
    "term" : NumberLong(1),
    "heartbeatIntervalMillis" : NumberLong(2000),
    "members" : [
        {
            "_id" : 0,
            "name" : "192.168.0.1:27017",
            "health" : 1,
            "state" : 1,
            "stateStr" : "PRIMARY",
            "uptime" : 84,
            "optime" : {
                "ts" : Timestamp(1461224842, 1),
                "t" : NumberLong(1)
            },
            "optimeDate" : ISODate("2016-04-21T07:47:22Z"),
            "infoMessage" : "could not find member to sync from",
            "electionTime" : Timestamp(1461224841, 1),
            "electionDate" : ISODate("2016-04-21T07:47:21Z"),
            "configVersion" : 1,
            "self" : true
        },
        {
            "_id" : 1,
            "name" : "192.168.0.2:27017",
            "health" : 1,
            "state" : 2,
            "stateStr" : "SECONDARY",
            "uptime" : 30,
            "optime" : {
                "ts" : Timestamp(1461224842, 1),
                "t" : NumberLong(1)
            },
            "optimeDate" : ISODate("2016-04-21T07:47:22Z"),
            "lastHeartbeat" : ISODate("2016-04-21T07:47:39.985Z"),
            "lastHeartbeatRecv" : ISODate("2016-04-21T07:47:39.657Z"),
            "pingMs" : NumberLong(1),
            "syncingTo" : "szss-app-soa1:27017",
            "configVersion" : 1
        },
        {
            "_id" : 2,
            "name" : "192.168.0.3:27017",
            "health" : 1,
            "state" : 7,
            "stateStr" : "ARBITER",
            "uptime" : 30,
            "lastHeartbeat" : ISODate("2016-04-21T07:47:39.980Z"),
            "lastHeartbeatRecv" : ISODate("2016-04-21T07:47:36.649Z"),
            "pingMs" : NumberLong(1),
            "configVersion" : 1
        }
    ],
    "ok" : 1
}

其他相關文章:

在centos中安裝mongodb

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章