MongoDB實戰系列之四: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 },
]
} );
>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
/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 },
]
} );
_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 ( )
>user local;
>rs.isMaster ( )
>db.system.replset.find ( )
查看當前主庫:
>;db. $cmd.findOne ( {ismaster: 1 } );
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!