共计 1780 个字符,预计需要花费 5 分钟才能阅读完成。
复制集的概念
复制集(也叫副本集 Replica Set)就是有自动故障恢复功能的主从集群。
传统的主从结构和复制集最为明显的区别是复制集没有固定的“主节点”:整个节点会选举出一个“主节点”,当其不能工作时则变更到其它节点。复制集总会有一个活跃节点(primary)和一个或多个备份的节点(secondary)
对于 MongoDB 在数据容灾上,推荐的模式是使用副本集模式,但传统主从结构与复制集相较也有的一些“用武之处”:
“复制集中参与选举的数据节点只能有 7 个”(MongoDB 2.6 版本)
虽然可以修改复制节点属性的方法,能将复制集节点增加到 12 个,但剩余 5 个节点都不能提供服务,只能做为数据冗余。所以某个生产环境需要从节点的数量超过 11 个时,我们就可使用传统的主从结构,因为主从结构的从节点数量不受限制。
当复制集支持可提供服务的数据节点数超过 11 个时,那么官方建议立即“启用”主从结构。但在MongoDB3.0 版本以上支持的副本数已经超过 50 个。
复制集的特点
复制集的特点主要有以下四点:
- 主是唯一的,但不是固定的。
- 由大多数据原则保证数据的一致性
- 从库无法写入(默认情况下,不使用驱动连接时,也是不能查询的)
- 相对于传统的主从结构,复制集可以自动容灾。
复制集成员分类
任何时间活跃节点(也即主节点)只有一个,其它都为备份节点,指定的活跃节点可随时间而变化。有几种不同类型的节点存在于副本集中:
Standard(标准)
这种是常规节点,它存储一份完整的数据副本,参与投票选举,有可能成为活跃节点
Passive(被动)
存储完整的数据副本,参与投票,不能成为活跃节点。
Arbiter(投票)
仲裁节点只参与投票,不接收复制的数据,也不能成为活跃节点。
每个 参与节点(非仲裁者)有个优先权,优先权(priority)为 0 则是被动的,不能成为活跃节点,优先权不为 0 的,按照由大到小选出活跃节点,优先值一样的则看谁的数据比较新。
按是否存放数据区分:
数据节点:存放数据(实体物理文件 *.ns *.0 等)的节点,包括主节点和从节点
投票节点:不存入数据,仅做选举和复制集节点
按功能区分:
主节点:提供读写服务的活跃节点
从节点:提供读服务的节点
延时节点:延时复制节点(priority=0hidden=true slaveDelay=xx)
隐藏节点:对应用程序不可见(priority=0 hidden=true)
“投票”节点:具有投票权的节点,不是 arbiter(priority=0)的节点
投票节点:Arbiter 节点,无数据,仅做选举和充当复制集节点,也称为选举节点。
更多 MongoDB 相关教程见以下内容:
CentOS 编译安装 MongoDB 与 mongoDB 的 php 扩展 http://www.linuxidc.com/Linux/2012-02/53833.htm
CentOS 6 使用 yum 安装 MongoDB 及服务器端配置 http://www.linuxidc.com/Linux/2012-08/68196.htm
Ubuntu 13.04 下安装 MongoDB2.4.3 http://www.linuxidc.com/Linux/2013-05/84227.htm
MongoDB 入门必读(概念与实战并重) http://www.linuxidc.com/Linux/2013-07/87105.htm
Ubunu 14.04 下 MongoDB 的安装指南 http://www.linuxidc.com/Linux/2014-08/105364.htm
《MongoDB 权威指南》(MongoDB: The Definitive Guide)英文文字版[PDF] http://www.linuxidc.com/Linux/2012-07/66735.htm
Nagios 监控 MongoDB 分片集群服务实战 http://www.linuxidc.com/Linux/2014-10/107826.htm
基于 CentOS 6.5 操作系统搭建 MongoDB 服务 http://www.linuxidc.com/Linux/2014-11/108900.htm
MongoDB 的详细介绍:请点这里
MongoDB 的下载地址:请点这里
本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-04/130011.htm