此次測試對象主機為三台,分別是 mongodb-test1  mongodb-test2  mongodb-test3

當然進行設定前要把mongodb裝好,安裝請參考 http://charleslin74.pixnet.net/blog/post/388879655

首先我們將 mongodb-test1做為primary的主機,對它進行設定

#vi /etc/mongodb.conf

找到這一行  #replSet = xxxxx ,將 # 拿掉並於 = 後改為你所命名的群組,如下

replSet = mydb

更改完後將mongo 重新啟動,以載入新設定

#servcie mongodb restart

使用mongo指令進入命令控制模式

#mongo

初始化 replSet

> rs.initiate(null)

於 replSet中加入自己本機

> rs.add("mongodb-test1:27017")

若是回應成功,請先稍待數秒鐘,等伺服器偵測和初使化。然後會發現 MongoDB 的命令提示字元從『SECONDARY』變成『PRIMARY』,此時,代表這台機器已經變成 replSet 中的主要機器。

接著對二台secondary主機皆進行以下設定,並重啟mongo服務

#vi /etc/mongodb.conf

找到這一行  #replSet = xxxxx ,將 # 拿掉並於 = 後改為你所命名的群組,如下

replSet = mydb

更改完後將mongo 重新啟動,以載入新設定

#servcie mongodb restart

最後於primary主機中將二台secondary主機加入 replSet

mydb:PRIMARY> rs.add("mongodb-test2:27017")
mydb:PRIMARY> rs.add("mongodb-test3:27017")

至此replSet的設定就完成了,我們可以使用下列指令觀看replSet的資訊

mydb:PRIMARY> rs.conf()

下為資訊

{
        "_id" : "mydb",
        "version" : 3,
        "members" : [
                {
                        "_id" : 0,
                        "host" : "mongodb-test1:27017"
                },
                {
                        "_id" : 1,
                        "host" : "mongodb-test2:27017"
                },
                {
                        "_id" : 2,
                        "host" : "mongodb-test3:27017"
                }
        ]
}

mydb:PRIMARY> rs.status()

下為資訊

{
        "set" : "mydb",
        "date" : ISODate("2014-09-03T08:22:51Z"),
        "myState" : 1,
        "members" : [
                {
                        "_id" : 0,
                        "name" : "mongodb-test1:27017",
                        "health" : 1,
                        "state" : 1,
                        "stateStr" : "PRIMARY",
                        "uptime" : 164,
                        "optime" : Timestamp(1409731610, 1),
                        "optimeDate" : ISODate("2014-09-03T08:06:50Z"),
                        "self" : true
                },
                {
                        "_id" : 1,
                        "name" : "mongodb-test2:27017",
                        "health" : 1,
                        "state" : 2,
                        "stateStr" : "SECONDARY",
                        "uptime" : 164,
                        "optime" : Timestamp(1409731610, 1),
                        "optimeDate" : ISODate("2014-09-03T08:06:50Z"),
                        "lastHeartbeat" : ISODate("2014-09-03T08:22:51Z"),
                        "lastHeartbeatRecv" : ISODate("2014-09-03T08:22:50Z"),
                        "pingMs" : 0,
                        "lastHeartbeatMessage" : "syncing to: mongodb-test1:27017",
                        "syncingTo" : "mongodb-test1:27017"
                },
                {
                        "_id" : 2,
                        "name" : "mongodb-test3:27017",
                        "health" : 1,
                        "state" : 2,
                        "stateStr" : "SECONDARY",
                        "uptime" : 82,
                        "optime" : Timestamp(1409731610, 1),
                        "optimeDate" : ISODate("2014-09-03T08:06:50Z"),
                        "lastHeartbeat" : ISODate("2014-09-03T08:22:51Z"),
                        "lastHeartbeatRecv" : ISODate("2014-09-03T08:22:51Z"),
                        "pingMs" : 0,
                        "lastHeartbeatMessage" : "syncing to: mongodb-test1:27017",
                        "syncingTo" : "mongodb-test1:27017"
                }
        ],
        "ok" : 1
}

 

 

arrow
arrow
    全站熱搜

    痞客興 發表在 痞客邦 留言(0) 人氣()