天天看點

MongoDB主從複制介紹(轉)

MongoDB的主從複制其實很簡單,就是在運作主的伺服器上開啟mongod程序時,加入參數--master即可,在運作從的伺服器上開啟mongod程序時,加入--slave 和 --source 指定主即可,這樣,在主資料庫更新時,資料被複制到從資料庫中

(這裡日志檔案和通路資料時授權使用者暫時不考慮)

下面我在單台伺服器上開啟2deamon來模拟2台伺服器進行主從複制:

mkdirmmastermslavemkdirmmastermslavemongodb/bin/mongod  --port  28018 --dbpath ~/m_master  --master  &

$mongodb/bin/mongod  --port  28019 --dbpath ~/m_slave  --slave  --source   localhost:28018  &

這樣主從伺服器都已經啟動了,可以利用netstat -an -t 檢視28018、28019端口是否開放

登入主伺服器:

$ mongodb/bin/mongo --port 28018

MongoDB shell version: 1.2.4-

url: test

connecting to: 127.0.0.1:28018/test

type "help" for help

> show dbs

admin

local

test

> use test

switched to db test

> show collections

這裡主上的test資料什麼表都沒有,為空,檢視從伺服器同樣也是這樣

$ mongodb/bin/mongo --port 28019

MongoDB shell version: 1.2.4-

connecting to: 127.0.0.1:28019/test

那麼現在我們來驗證主從資料是否會像想象的那樣同步呢?

我們在主上建立表user

> db    

>db.createCollection("user");

> show collections            

system.indexes

user

>

表user已經存在了,而且test庫中還多了一個system.indexes用來存放索引的表

到從伺服器上檢視test庫:

User

> db.user.find(); 

從伺服器的test庫中user表已經存在,同時我還查了一下user表為空

現在我們再來測試一下,向主伺服器test庫的user表中插入一條資料

> db.user.insert({uid:1,name:"Falcon.C",age:25});

> db.user.find();                                

{ "_id" : ObjectId("4b8226a997521a578b7aea38"), "uid" : 1, "name" : "Falcon.C", "age" : 25 }

這時我們檢視從伺服器的test庫user表時會多出一條記錄

來:

MongoDB還有 Replica Pairs 和 Master - Master

本文轉自 不得閑 部落格園部落格,原文連結:http://www.cnblogs.com/DxSoft/archive/2010/10/21/1857358.html   ,如需轉載請自行聯系原作者http://www.cnblogs.com/DxSoft/archive/2010/10/21/1857358.html