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()