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 設定)
即可完成