`

MongoDB 3.0 学习--复制集(一)

阅读更多

        话不多说,先说说复制集的作用:复制在为数据提供了冗余同时,也提高了数据的可用性。 (摘自MongoDB 中文社区)

       

  •          MongoDB 复制集的结构以及基本概念

 

Diagram of default routing of reads and writes to the primary.

图一 MongoDB 基本结构图

 

        正如上图所示,MongoDB 复制集的架构中,主要分为两部分:主节点(Primary)和从节点(Secondary)。

       

        主节点:在一个复制集中只有并且必须有一个主节点,主节点点也是众多实例中唯一可以接收客户端写操作的节点,当然也可以进行读操作;

 

        从节点:从节点会复制主节点的操作,以获取完全一致的数据集。客户端不能够直接对从节点进行写操作,但是可以进行读操作,这个需要通过复制集选项进行设置。

 

        注:MongoDB 3.0 把复制集中的成员数量从原来的12个提升到了50个,但是投票节点的数量仍然保持不变,还是7个。

 

       投票节点:投票节点 并不含有 复制集中的数据集副本,且也 无法 升职为主节点。投票节点的存在是为了使复制集中的节点数量为奇数,这样保证在进行投票的时候不会出现票数相同的情况。如果添加了一个节点后,总节点数为偶数,那么就需要相应的增加一个投票节点。

 

  • 最基本的复制集架构

Diagram of a 3 member replica set that consists of a primary and two secondaries. 一个主节点,两个从节点

 

         最基本的复制集架构是有3个节点的形式。这样在主节点不可用以后,从节点会进行投票选出一个节点成为主节点,继续工作。如下图所示:

 

Diagram of an election of a new primary. In a three member replica set with two secondaries, the primary becomes unreachable. The loss of a primary triggers an election where one of the secondaries becomes the new primary

重新投票选出主节点

 

         三个节点的复制集架构,还有另外一种形式:一个主节点,一个从节点,一个投票节点。如下图所示:

Diagram of a replica set that consists of a primary, a secondary, and an arbiter.

 一个主节点,一个从节点,一个投票节点

 

        在这种架构中,当主节点不可用时,只有从节点可以升为主节点,而投票节点是不可以成为主节点的。投票节点仅仅在选举中进行投票。如下图所示:

Diagram of an election of a new primary. In a three member replica set with a secondary and an arbiter, the primary becomes unreachable. The loss of a primary triggers an election where the secondary becomes new primary.

从节点无法升职为主节点

 

  • 其他概念

        从节点还有几种特殊的设置情况,不同的设置有不同的需求:

 

        优先级为0:设置 priority:0 ,那么该结点将不能成为主节点,但是其数据仍是与主节点保持一致的,而且应用程序也可以进行读操作。这样可以在某些特殊的情况下,保证其他特定节点优先成为主节点。

Diagram of a 3 member replica set distributed across two data centers. Replica set includes a priority 0 member.

 

        隐藏节点:隐藏节点与主节点的数据集一致,但是对于应用程序来说是不可见的。隐藏节点可以很好的与 复制集 中的其他节点隔离,并应对特殊的需求,比如进行报表或者数据备份。隐藏节点也应该是一个 不能升职为主节点 的 优先级为0的节点。

Diagram of a 5 member replica set with a hidden priority 0 member.

 

         延时节点延时节点也将从 复制集 中主节点复制数据,然而延时节点中的数据集将会比复制集中主节点的数据延后。举个例子,现在是09:52,如果延时节点延后了1小时,那么延时节点的数据集中将不会有08:52之后的操作

        由于延时节点的数据集是延时的,因此它可以帮助我们在人为误操作或是其他意外情况下恢复数据。举个例子,当应用升级失败,或是误操作删除了表和数据库时,我们可以通过延时节点进行数据恢复。

        Diagram of a 5 member replica set with a hidden delayed priority 0 member.

 

         oplog:全拼 oprations log,它保存有数据库的所有的操作的记录。在复制集中,主节点产生 oplog,然后从节点复制主节点的 oplog 进行相应的操作,这样达到保持数据集一致的要求。因此从节点的数据与主节点的数据相比是有延迟的。

 

 

分享到:
评论

相关推荐

    mongodb-linux-x86_64-3.0.6.tgz

    2. **副本集增强**:3.0.6版本加强了复制集的稳定性,提供了更可靠的故障转移和数据复制,确保服务的高可用性。 3. **分片集群**:MongoDB支持水平扩展,通过分片技术可以轻松地将数据分散到多个节点上,以处理更大...

    mongodb-linux-i686-3.0.5.tgz

    3. **复制集**: MongoDB的复制集功能提供数据冗余和故障转移,保证服务的高可用性。3.0.5版本中,复制集的选举过程和数据同步更加快速和稳定。 4. **查询优化**: MongoDB支持丰富的查询语法,包括索引、聚合框架等...

    mongodb-src-r3.0.6

    3. **自动复制**:MongoDB提供复制集(replica sets),可以创建数据的多个副本,以提高可用性和容错性。 4. **高效的查询**:MongoDB支持丰富的查询语法,包括字段筛选、正则表达式匹配、范围查询等,且支持索引,...

    mongodb-linux-x86_64-rhel62-3.0.0.gz

    此外,理解如何使用复制集实现高可用性和数据冗余也是至关重要的。 总之,MongoDB 3.0是MongoDB发展的一个重要里程碑,它提供了许多改进,增强了数据库的性能和安全性。正确安装和配置MongoDB 3.0,将有助于你充分...

    mongodb3.0Linux版本的tgz包

    在这个“mongodb3.0Linux版本的tgz包”中,我们主要讨论的是MongoDB 3.0.8在Linux操作系统上的部署和使用。 MongoDB 3.0是其发展中的一个重要里程碑,它引入了许多新特性,提高了性能和可扩展性。以下是一些关键...

    mongodb-linux-x86_64-amazon-3.0.15.tgz

    MongoDB的复制集功能允许你在多个节点间复制数据,提供高可用性和故障切换能力。设置复制集涉及配置每个节点,并指定一个主节点和若干个从节点。通过监控和自动故障转移,可以在主节点出现问题时自动切换到从节点,...

    mongodb-linux-x86-64-rhel70-6.0.2.tgz

    - **副本集**:为了提高可用性,可以配置副本集,实现数据的自动复制和故障切换。 - **分片**:当数据量过大时,可通过分片来水平扩展存储能力。 - **WiredTiger存储引擎**:从MongoDB 3.0开始,默认存储引擎是...

    mongodb-win32-x86_64-3.0.6.zip

    复制集是MongoDB实现高可用性和容错性的关键特性,通过多个数据副本确保了数据的安全性和服务的连续性。 在安全性方面,MongoDB 3.0提供了认证和授权的增强,支持多种身份验证机制,如SCRAM-SHA-1,提高了数据库的...

    mongodb-win32-x86_64

    3. **复制集**: 为了实现高可用性和故障切换,可以配置MongoDB的复制集。每个复制集包含多个成员,数据会在成员间同步。 4. **分片**: 对于大规模数据,可以使用分片技术,将数据分布在多个服务器上,以提高读写...

    mongodb-win32-x86_64-3.0.6-免安装.zip

    4. **复制集增强**:复制集的稳定性与故障恢复能力得到提升,增强了数据安全性。 5. **监控与诊断工具**:MongoDB 3.0增强了监控和诊断功能,如`mongostat`和`mongotop`,帮助管理员更好地了解数据库状态。 6. **...

    MongoDB.in.Action.2nd.Edition.2016.3.pdf

    - **复制集**:探讨复制集在实现高可用性方面的作用,以及如何配置复制集。 - **性能优化** - **索引管理**:如何合理创建和维护索引以提高查询效率。 - **缓存策略**:介绍MongoDB的缓存机制以及如何优化读写...

    mongodb-win32-x86_64-2.0.6.rar

    3. **复制集**:2.0.6版本中,MongoDB的复制集功能提供了数据冗余和故障转移,确保了服务的高可用性。 4. **分片**:用于在多个节点间分配数据,以处理大规模数据存储和查询。 5. **性能优化**:在2.0版本中,...

    mongodb-5.0.6

    4. **Replication**:MongoDB 提供强大的复制功能,通过副本集确保数据冗余和高可用性。 5. **Sharding**:用于水平扩展,通过将数据分散在多个物理机器上(称为分片)来处理大数据量。 6. ** WiredTiger**:...

    mongodb3.0.5.tgz

    MongoDB是一款开源、分布式、高...在实际应用中,你可能还需要考虑更多的细节,如配置复制集以实现高可用性,或者设置更复杂的权限控制等。了解并掌握这些知识点,将有助于你在使用MongoDB时更好地管理和保护你的数据。

    mongodb No-SQL 数据库

    这本书是根据CC BY-NC 3.0许可发布的,意味着可以自由地复制、分发、修改或展示这本书,但是必须按照许可条款,作者Karl Seguin应该被明确地认定为作者,并且不能用于商业目的。 书中提到,虽然技术的发展速度很快...

    mongodb win

    12. **复制集与分片**: 如果需要高可用性和水平扩展,可以学习如何配置复制集和分片集群。 通过以上步骤,你可以在Windows上成功安装和运行MongoDB 3.0.7,并对其进行基本的管理和操作。随着对MongoDB的深入理解和...

    mongodb3.0.4.tgz安装包

    其次,MongoDB 3.0.4支持Oplog(操作日志)复制集的优化,增强了数据复制和故障恢复的能力。Oplog是实现复制集的关键组件,它可以记录所有数据更改,确保在主节点故障时,从节点能够无缝接管并保持数据一致性。 ...

    mongodb3.0.1 Linux

    在可扩展性方面,MongoDB 3.0.1 改进了复制集的功能,增强了数据冗余和故障恢复能力。复制集允许数据在多个节点间同步,确保即使在主节点出现故障时,服务仍能继续运行。此外,它还支持读取偏好设置,允许应用程序...

    The Little MongoDB Book 中文版.pdf

    ### 《The Little MongoDB Book》知识点总结 #### 1. 关于版权与许可 - **许可类型**:本书采用Creative Commons ...对于希望深入了解MongoDB及其在NoSQL生态系统中的位置的读者来说,本书提供了一条清晰的学习路径。

Global site tag (gtag.js) - Google Analytics