mongodb副本集部署(四)

簡述:副本集合(Replica Sets),是一個基於主/從複製機制的複製功能,但增加了自動故障轉移和恢復特性。一個集羣最多可以支持7個服務器,並且任意節點都可以是主節點。所有的寫操作都被分發到主節點,而讀操作可以在任何節點上進行。

環境:CentOS 5.5 x64

md01 10.0.0.11
md02 10.0.0.12
md03 10.0.0.14

把以上主機名對應IP 添加到hosts文件

方法一:設置優先級

啓動各節點:
md01

/elain/apps/mongodb/bin/mongod --rest --replSet elain/md01:27017 --master--fork --port 27017 --dbpath /elain/data/mongodb/db/ --logpath/elain/logs/mongodb/mongodb.log

md02

/elain/apps/mongodb/bin/mongod --rest --replSet elain/md02:27017 --fork --port 27017 --dbpath /elain/data/mongodb/db/ --logpath/elain/logs/mongodb/mongodb.log

md03

/elain/apps/mongodb/bin/mongod --rest --replSet elain/md03:27017 --fork --port 27017 --dbpath /elain/data/mongodb/db/ --logpath/elain/logs/mongodb/mongodb.log

初始化節點:
md01:(登錄其中任何一個節點操作皆可)

mongo --port 27017

>rs.initiate({
_id : "elain",
members : [
{_id : 1, host : "md01:27017", priority:2},
{_id : 2, host : "md02:27017", priority:3},
{_id : 3, host : "md03:27017", priority:4},
]
});


#priority 是設置優先級的,默認優先級爲1,可以是1-1000的數字
注:通常在同一個交換機上,同一個網內,通常使用優先級來設置 副本集就已經足夠使用了

方法二:添加仲裁節點(這裏設置在md02):

啓動各節點:
md01

/elain/apps/mongodb/bin/mongod --rest --replSet elain/md01:27017 --fork --port 27017 --dbpath /elain/data/mongodb/db/ --logpath/elain/logs/mongodb/mongodb.log

md02

/elain/apps/mongodb/bin/mongod --rest --replSet elain/md02:27017 --fork --port 27017 --dbpath /elain/data/mongodb/db/ --logpath/elain/logs/mongodb/mongodb.log

md03

/elain/apps/mongodb/bin/mongod --rest --replSet elain/md03:27017 --fork --port 27017 --dbpath /elain/data/mongodb/db/ --logpath/elain/logs/mongodb/mongodb.log

#啓動仲裁節點
在md02上

mkdir /elain/data/mongodb/arb
/elain/apps/mongodb/bin/mongod --fork --rest --replSet elain --dbpath/elain/data/mongodb/arb --port 27015 --logpath/elain/logs/mongodb/mongodb.log

初始化節點:
md01:(登錄其中任何一個節點操作皆可)

> rs.initiate({
_id : "elain",
members : [
{_id : 1, host : "md01:27017"},
{_id : 2, host : "md02:27017"},
{_id : 3, host : "md03:27017"},
{_id : 4, host : "md02:27015""arbiterOnly"true},
]
});

#驗證

PRIMARY>rs.status()

也可瀏覽:http://10.0.0.11:28017/_replSet 查看狀態

#設置從庫可讀(從庫上執行)

>rs.slaveOk();

查看副本集狀態

>rs.status()
>user local;
>rs.isMaster()
>db.system.replset.find()

查看當前主庫:

>;db.$cmd.findOne({ismaster:1});

轉載自:http://www.elain.org/?p=654


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章