mongodb复制集

一、mongodb复制(副本集)
MongoDB复制是将数据同步在多个服务器的过程。
复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性, 并可以保证数据的安全性。
复制还允许从硬件故障和服务中断中恢复数据。

二、mongodb复制原理

mongodb的复制至少需要两个节点。其中一个是主节点,负责处理客户端请求,其余的都是从节点,负责复制主节点上的数据。
mongodb各个节点常见的搭配方式为:一主一从、一主多从。
主节点记录在其上的所有操作oplog,从节点定期轮询主节点获取这些操作,然后对自己的数据副本执行这些操作,从而保证从节点的数据与主节点一致。
MongoDB复制结构图如下所示:

以上结构图中,Mongodb复制集(副本集replica set)由一组Mongod实例(进程)组成,包含一个Primary节点和多个Secondary节点,Mongodb Driver(客户端)的所有数据都写入Primary,Secondary通过oplog来同步Primary的数据,保证主节点和从节点数据的一致性,复制集在完成主从复制的基础上,通过心跳机制,一旦primary节点出现宕机,则触发选举一个新的主节点,剩下的secondary节点指向新的primary,时间应该在10-30s内完成感知primary节点故障,实现高可用数据库集群

副本集特征:
? N 个节点的集群
? 任何节点可作为主节点
? 所有写入操作都在主节点上
? 自动故障转移
? 自动恢复

三、mongodb副本集设置

1、首先创建数据目录和日志目录
mkdir -p /data/mongodb/mongodb{1,2,3,4} #创建数据目录

mkdir -p /data/logs/ #创建日志目录

cd /data/logs/
touch mongodb{1,2,3,4}.log #创建日志文件

chmod 777 ./*.log #修改目录权限

2、复制etc/mongod.conf配置文件并开启复制集#replication:去掉#号在下一行加入replSetName: kgcrs 复制集名称为kgcrs

cp -p /etc/mongod.conf /etc/mongod1.conf
cp -p /etc/mongod1.conf /etc/mongod2.conf
cp -p /etc/mongod1.conf /etc/mongod3.conf
cp -p /etc/mongod1.conf /etc/mongod4.conf

vi /etc/mongod1.conf

net:
bind_ip=0.0.0.0
port=27017
storage:
dbpath=/data/mongodb/mongodb1/

path=/data/logs/mongodb1.log
logappend=true
fork=true

replication:
replSetName: kgcrs

3、开启节点
mongod -f /etc/mongod1.conf
mongod -f /etc/mongod2.conf
mongod -f /etc/mongod3.conf
mongod -f /etc/mongod4.conf

4、配置复制集

进入mongodb数据库中:
mongo --port 27017

#定义四个标准节点
cfg={"_id":“kgcrs”,“members”:[{"_id":0,“host”:“127.0.0.1:27017”},{"_id":1,“host”:“127.0.0.1:27018”},{"_id":2,“host”:“127.0.0.1:27019”},{"_id":3,“host”:“127.0.0.1:27020”}]}

#初始化复制集,配置时保证从节点没有数据
rs.initiate(cfg)

#查看复制集状态(rs复制集的简称)
rs.status()
{
“set” : “kgcrs”,
“date” : ISODate(“2019-01-18T00:48:33.956Z”),
“myState” : 1,
“term” : NumberLong(1),
“syncingTo” : “”,
},
“syncSourceHost” : “”,
“syncSourceId” : -1,
“heartbeatInt

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值