我們有項目用到了MongoDB,在正式運營時數據需要做實時備份,而目前資源也有限,只有兩臺機器用于MongoDB,所以選用MongoDB的Master-Slave Replication來實現實時備份,其實我是比較看好Replica Sets的,因為其可以實現自動切換,但我目前因為機器少只能做罷。
兩臺機器一臺為Master(192.168.1.173),一臺為Slave(192.168.1.174),系統環境為:centos linux 5.5。
1)在兩臺機器上都安裝MongoDB
我們直接用官方編譯好的rpm包
先增加mongodb的rpm庫:
vi /etc/yum.repos.d/10gen.repo
[10gen]
name=10gen Repository
baseurl=http://downloads.mongodb.org/distros/centos/5.4/os/x86_64/
gpgcheck=0
再yum安裝:
yum -y install mongo-stable mongo-stable-server
2)配置Master:
vi /etc/mongod.conf
增加下面幾行:
rest = true
master = true
啟動:
service mongod start
3)配置Slave:
vi /etc/mongod.conf
增加下面幾行:
rest = true
slave = true
source = 192.168.1.174
autoresync = true
啟動:
service mongod start
4)查看和測試
查看相關的狀態
db.printReplicationInfo()
查看是否為Master:
db.isMaster();
測試:
在Master上增加一個Collection
db.createCollection("mycoll2", {capped:true, size:100000})
然后再在Slave上查看
show collections
如果能看到剛剛新增的mycoll2,說明成功了。
4)故障測試
A. Slave機器出了問題怎么辦?
按照上面的3)中的步驟,重做一遍就是了。
B. Master機器出問題怎么辦?
如果Master機器掛了,那么我們可以先把Slave改成Master讓其提供服務:
在Slave上先停止mongod:
service mongod stop
再刪除本地數據庫,因為slave的相關信息存在這里面了。
cd /var/lib/mongo
rm -rf local.*
在配置文件內把slave改成master:
vi /etc/mongod.conf
刪掉下面幾行:
slave = true
source = 192.168.1.174
autoresync = true
增加:
master = true
最后再啟動mongod:
service mongod start
兩臺機器一臺為Master(192.168.1.173),一臺為Slave(192.168.1.174),系統環境為:centos linux 5.5。
1)在兩臺機器上都安裝MongoDB
我們直接用官方編譯好的rpm包
先增加mongodb的rpm庫:
vi /etc/yum.repos.d/10gen.repo
[10gen]
name=10gen Repository
baseurl=http://downloads.mongodb.org/distros/centos/5.4/os/x86_64/
gpgcheck=0
再yum安裝:
yum -y install mongo-stable mongo-stable-server
2)配置Master:
vi /etc/mongod.conf
增加下面幾行:
rest = true
master = true
啟動:
service mongod start
3)配置Slave:
vi /etc/mongod.conf
增加下面幾行:
rest = true
slave = true
source = 192.168.1.174
autoresync = true
啟動:
service mongod start
4)查看和測試
查看相關的狀態
db.printReplicationInfo()
查看是否為Master:
db.isMaster();
測試:
在Master上增加一個Collection
db.createCollection("mycoll2", {capped:true, size:100000})
然后再在Slave上查看
show collections
如果能看到剛剛新增的mycoll2,說明成功了。
4)故障測試
A. Slave機器出了問題怎么辦?
按照上面的3)中的步驟,重做一遍就是了。
B. Master機器出問題怎么辦?
如果Master機器掛了,那么我們可以先把Slave改成Master讓其提供服務:
在Slave上先停止mongod:
service mongod stop
再刪除本地數據庫,因為slave的相關信息存在這里面了。
cd /var/lib/mongo
rm -rf local.*
在配置文件內把slave改成master:
vi /etc/mongod.conf
刪掉下面幾行:
slave = true
source = 192.168.1.174
autoresync = true
增加:
master = true
最后再啟動mongod:
service mongod start