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

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