MongoDB的复制

复制的目的

保证数据在生产部署时的冗余和可靠性,通过在不同的机器上保存副本,保证数据的不会因为单点故障而丢失。能够随时应对数据丢失、机器损坏带来的风险。
除此以外,还能提高数据的读取能力,用户的读取和写入在不同的服务器,而且,由不同的服务器为不同的用户提供服务,提高整个系统的负载能力。

  1. Failover(故障转移,故障恢复)
  2. Redundancy(数据冗余)
  3. 避免单点故障,提升数据可用性
  4. 读写分离,分担读压力
  5. 对用户透明的系统维护升级

复制的基础

  1. Primary主节点,一个副本集中只能有一个主节点,它可以进行读、写的操作,负责接收客户端的所有写的请求,执行写操作后同时记录在oplog。当主节点出现故障时,会在从节点中选出一个作为主节点,即使后续主节点恢复正常,再次加入到集群中也是作为从节点的角色。
  2. Secondary从节点,从节点只能进行读取操作,并不断地从主节点同步写入的数据。默认情况下,应用程序会将其读取操作定向到主节点。从节点在异步过程中将主节点记录到oplog中的操作应用到它自己的数据集,从而维护主节点数据集副本。一个副本集可以有一个或多个从节点。
  3. Arbiter仲裁节点,仲裁节点不存储数据,只记录集群节点数及主节点选举时进行仲裁。它具有选举权,但自己不能成为主节点。当主节点故障时,仲裁器允许该副本集拥有奇数票以便于选出新的主节点。仲裁者和其他节点成员之间的唯一通信是选举期间的投票、心跳信息。
  4. oplog实现数据同步:MongoDB的副本集中,主节点通过一个日志文件来记录修改数据库的操作,这个日志就叫做 oplog,即operation log 。
  5. 数据同步方式:副本集中为了维护共享数据集的副本,从节点需从其他节点同步或复制数据。

oplog特点:
1、位于local数据库下,全名local.oplog.rs 。
2、oplog是 Capped Collection 类型(定长集合)。
3、oplog中的每个文档都代表主节点上执行的一个修改数据库状态的操作。

在MongoDB中有两种数据同步方式:

  1. 初始同步,将完整的数据集从一个节点复制到另一个新的节点。这个需要在启动MongoDB的时候指定同步的源节点。
  2. 将主节点持续更改的操作应用于从节点的整个数据集 。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值