主從復制是Mongodb最常用的復制方式。這種方式非常靈活,可用于備份、故障恢復、讀擴展等。Mongodb主從結構如下圖所示:
最基本的方式就是建立一個主節點和一個或者多個從節點,每個從節點要知道主節點的地址。主節點服務器使用mongod --master方式啟動,而從節點服務器則使用mongod --slave --source master_address方式啟動。其中master_address指的是主節點服務器的地址。
?
一般主從節點是在多臺服務器上,這里我通過在單臺機器上建立多個實例來模擬主從復制。
首先建立主從節點數據目錄:
[root@localhost mongodb]# mkdir -p /opt/mongodb/data/dbs/master [root@localhost mongodb]# mkdir -p /opt/mongodb/data/dbs/slave
然后配置主從節點的配置文件(也可以通過參數直接啟動)
mongodb-master.conf(主節點配置文件)
port=10000 dbpath=data/dbs/master logpath=log/mongodb-master.log logappend=true
mongodb-slave.conf(從節點配置文件)
port=10001 dbpath=data/dbs/slave logpath=log/mongodb-slave.log logappend=true
接著分別啟動主節點服務和從節點服務:
1)啟動主節點服務
[root@localhost mongodb]# ./bin/mongod -f mongodb-master.conf --master all output going to: log/mongodb-master.log
2)啟動從節點服務(注意需要使用--source參數指定主服務的地址)
[root@localhost mongodb]# ./bin/mongod -f mongodb-slave.conf --slave --source localhost:10000 all output going to: log/mongodb-slave.log
然后連接到主節點
[root@localhost mongodb]# ./bin/mongo localhost:10000 MongoDB shell version: 2.0.6 connecting to: localhost:10000/test > db.users.find() #查詢主節點users集合中的數據,結果返回為空 >
使用另外一個連接連接到從節點
[root@localhost mongodb]# ./bin/mongo localhost:10001 MongoDB shell version: 2.0.6 connecting to: localhost:10001/test > db.users.find() #查詢從節點users集合中的數據,結果也返回為空 >
往主節點users集合中插入數據
#首先往users集合中插入數據 > db.users.save({"name":"zhouxiaofei","position":"Web tester"}) > db.users.save({"name":"chenzhou","position":"Java developer"}) > db.users.find() #查詢主節點users集合中數據,返回如下結果 { "_id" : ObjectId("502a83750e192a4a90d0f6c1"), "name" : "zhouxiaofei", "position" : "Web tester" } { "_id" : ObjectId("502a837c0e192a4a90d0f6c2"), "name" : "chenzhou", "position" : "Java developer" } >
通過另外一個連接從節點的實例查詢從節點中users集合中的數據
> db.users.find() #查詢從節點中users集合,返回了主節點中插入的數據 { "_id" : ObjectId("502a83750e192a4a90d0f6c1"), "name" : "zhouxiaofei", "position" : "Web tester" } { "_id" : ObjectId("502a837c0e192a4a90d0f6c2"), "name" : "chenzhou", "position" : "Java developer" } >
根據結果可以看出,簡單的主從復制已經實現。關于Mongodb主從復制更多的知識,可以參考mongodb在線文檔,地址如下: http://www.mongodb.org/display/DOCS/Master+Slave
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
