mongoDB複製集(Replica Set)

mongodb主從複製實現:node

只須要在某一個服務啓動時加上--master參數,另外一個服務加上--slave和--source參數,便可實現主從同步。web

主節點:mongodb

#mongod  --dbpath=/data/dbs/master  --port  10000  --mastershell

從節點:數據庫

#mongod  --dbpath=/data/dbs/slave  --port  10001  --slave  --source  192.168.10.50:10000服務器


複製集(Replica Set)是具有自動故障恢復功能的主從集羣。主從集羣和複製集最明顯的區別是複製集沒有固定的主節點,整個集羣會選舉出一個主節點。複製集中有一個活躍節點(Primary英 ['praɪm(ə)rɪ])和一個或多個備份節點(Secondary英 ['sek(ə)nd(ə)rɪ])。spa


部署複製集:日誌

一、複製集命名爲replcopy,啓動IP爲192.168.10.50,端口爲10000這臺mongodb數據庫
code

#mongod   --dbpath=/data/dbs/node1   --port  10000  --logpath=/var/log/mongodb/node1.log  --replSet   replcopy/192.168.10.51:10001orm

說明:使用replSet是告訴服務器在這個replcopy複製集中還有別的同伴。

二、啓動IP爲192.168.10.51,端口爲10001這臺mongodb數據庫

#mongod  --dbpath=/data/dbs/node2  --port  10001  --logpath=/var/log/mongodb/node2.log  --replSet  replcopy/192.168.10.50:10000

三、啓動IP爲192.168.10.52,端口爲10002這臺mongodb數據庫

#mongod  --dbpath=/data/dbs/node3  --port  10002  --logpath=/var/log/mongodb/node3.log  --replSet  replcopy/192.168.10.50:10000

說明:複製集具有自動檢測功能,在其中指定單臺服務器後,mongodb就會自動搜索並鏈接其他的節點。

四、啓動這幾臺服務器後,日誌就會告訴咱們複製集沒有進行初始化,在shell中鏈接其中一臺服務器,初始化命令只須要執行一次

# /usr/local/mongodb/bin/mongo --port 10000

> config={_id : 'replcopy',members : [{_id : 0, host : '192.168.10.50:10000'},{_id : 1, host : '192.168.10.51:10001'},{_id : 2, host : '192.168.10.52:10002'}]}//配置節點信息{        "_id" : "replcopy",        "members" : [                {                        "_id" : 0,                        "host" : "192.168.10.50:10000"                },                {                        "_id" : 1,                        "host" : "192.168.10.51:10001"                },                {                        "_id" : 2,                        "host" : "192.168.10.52:10002"                }        ]}> replcopy.initiate(config)//這個過程可能要等個一到兩分鐘的時間。{        "info" : "Config now saved locally.  Should come online in about a minute.",        "ok" : 1}> replcopy.status()

相關文章
相關標籤/搜索