您的位置:首页 > 数据库 > Mongodb

MongoDB副本集部署

2015-08-30 19:52 639 查看
简述:副本集合(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});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: