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});

eg:

mongodb副本集部署

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

redis服务器有哪些架构?每个架构的优劣是什么?

一、架构分类1.单主架构:只有一个redis节点,如果这个节点挂了,整个redis服务就不可用,这个不能在生产环境使用,一般是本地开发使用;2.主从架构:一个master一个或者多个slaver,从服务器是主服务器的副本,从服务器也可以

MongoDB 删除,添加副本集,并修改副本集IP等信息

MongoDB删除,添加副本集,并修改副本集IP等信息添加副本,在登录到主节点下输入rs.add("ip:port");删除副本rs.remove("ip:port");新增仲裁节点rs.addArb("ip:port");修改副本host:shard1:PRIMARYcfgrs.c