Research

Powered By Blogger

4/14/2016

MongoDB 3.2.4 Replicate set


MongoDB 3.2.4  Replicate set 




1.先準備三台

 以下主機

 host A(Primary)
 host B(Secondary1)
 host C(Secondary2)



2.首先先在三台的 vim /etc/hosts

加上
host A(Primary)
host B(Secondary1)
host C(Secondary2)

的hosts IP 和名稱


3.登入host A(Primary)
 
  vim /etc/mongod.config

添加這條些內容
replication:
   oplogSizeMB: 100
   replSetName: rs0
  #secondaryIndexPrefetch: all
  # enableMajorityReadConcern: true

wq!: 存檔離開

接著 service mongod stop


4.登入host B(Secondary1)
 
  vim /etc/mongod.config

添加這條些內容
replication:
   oplogSizeMB: 100
   replSetName: rs0
  #secondaryIndexPrefetch: all
  # enableMajorityReadConcern: true

wq!: 存檔離開

接著 service mongod stop


5.登入host C(Secondary2)
 
  vim /etc/mongod.config

添加這條些內容
replication:
   oplogSizeMB: 100
   replSetName: rs0
  #secondaryIndexPrefetch: all
  # enableMajorityReadConcern: true

wq!: 存檔離開

接著 service mongod stop

6.接著

回到 host A(Primary)

輸入 nohup mongod --port 27017 --dbpath /var/lib/mongo/ --config /etc/mongod.conf &

啟動服務


7.接著

回到 host B(Secondary1)

輸入 nohup mongod --port 27017 --dbpath /var/lib/mongo/ --config /etc/mongod.conf &

啟動服務


8.接著

回到 host C(Secondary2)

輸入 nohup mongod --port 27017 --dbpath /var/lib/mongo/ --config /etc/mongod.conf &

啟動服務

9.回到 host A(Primary)

輸入mongo 進入資料庫

輸入rs.initiate()

輸入rs.status() 查看狀態

接下來輸入

rs.add("host B(Secondary1) hostname:27017")   <== 增加第二台機器

輸入

rs.add("host C(Secondary2) hostname:27017")   <== 增加第三台機器


10.輸入 rs.status()

成功的話應該會看到類似下面訊息
=====================================================
{
        "set" : "rs0",
        "date" : ISODate("2016-03-17T02:58:10.275Z"),
        "myState" : 1,
        "term" : NumberLong(1),
        "heartbeatIntervalMillis" : NumberLong(2000),
        "members" : [
                {
                        "_id" : 0,
                        "name" : "mongodb324prim:27017",
                        "health" : 1,
                        "state" : 1,
                        "stateStr" : "PRIMARY",
                        "uptime" : 496,
                        "optime" : {
                                "ts" : Timestamp(1458183478, 1),
                                "t" : NumberLong(1)
                        },
                        "optimeDate" : ISODate("2016-03-17T02:57:58Z"),
                        "electionTime" : Timestamp(1458183353, 2),
                        "electionDate" : ISODate("2016-03-17T02:55:53Z"),
                        "configVersion" : 3,
                        "self" : true
                },
                {
                        "_id" : 1,
                        "name" : "mongodb324sec1:27017",
                        "health" : 1,
                        "state" : 2,
                        "stateStr" : "SECONDARY",
                        "uptime" : 24,
                        "optime" : {
                                "ts" : Timestamp(1458183478, 1),
                                "t" : NumberLong(1)
                        },
                        "optimeDate" : ISODate("2016-03-17T02:57:58Z"),
                        "lastHeartbeat" : ISODate("2016-03-17T02:58:10.209Z"),
                        "lastHeartbeatRecv" : ISODate("2016-03-17T02:58:09.214Z"                   ),
                        "pingMs" : NumberLong(0),
                        "syncingTo" : "mongodb324prim:27017",
                        "configVersion" : 3
                },
                {
                        "_id" : 2,
                        "name" : "mongodb324sec2:27017",
                        "health" : 1,
                        "state" : 2,
                        "stateStr" : "SECONDARY",
                        "uptime" : 12,
                        "optime" : {
                                "ts" : Timestamp(1458183478, 1),
                                "t" : NumberLong(1)
                        },
                        "optimeDate" : ISODate("2016-03-17T02:57:58Z"),
                        "lastHeartbeat" : ISODate("2016-03-17T02:58:10.227Z"),
                        "lastHeartbeatRecv" : ISODate("2016-03-17T02:58:09.242Z"                   ),
                        "pingMs" : NumberLong(4),
                        "syncingTo" : "mongodb324prim:27017",
                        "configVersion" : 3
                }
        ],
        "ok" : 1
}

=====================================================

11. 記得把每台開機自動啟動的服務 mongod 關掉

並且在 vim /etc/rc.d/rc.local

添加此行
nohup mongod --port 27017 --dbpath /var/lib/mongo/ --config /etc/mongod.conf &

讓開機後自動啟動此行 (因為我們要吃 config 設定)


即可完成

沒有留言:

張貼留言