【赵渝强老师】MongoDB复制集中的成员

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
云数据库 Tair(兼容Redis),内存型 2GB
简介: MongoDB复制集通常由一个主库和两个从库组成,可选添加仲裁者。主库负责所有写操作并记录Oplog日志,从库异步同步主库的Oplog日志并应用操作。仲裁者不存储数据,主要用于保证复制集中成员数量为奇数,参与选举投票。视频讲解详见B站链接。

b073.png

MongoDB的复制集中主要包括三个成员,即:主库、从库和仲裁者。一般情况下,MongoDB复制集集群中是一个主库和两个从库。数据库管理员也可以在复制集中添加一个MongoDB的实例,作为复制集的仲裁者。但仲裁者不是必须的。视频讲解如下:


  • 主库

   

在一个MongoDB复制集中,只能存在一个主库用于接收所有写操作请求。MongoDB应用写操作到数据文件中并记录操作的Oplog日志。从库复制主库上的Oplog日志并应用操作到从库中。MongoDB复制集中所有成员都能接收读操作请求。当主库出现了不可用的情况,MongoDB复制集会触发了选举,会从剩下的从库中选择一个新主库。


  • 从库

   

MongoDB复制集中的从库采用了异步方式从主库上同步Oplog日志信息,并应用日志中操作到从库的数据集中。MongoDB复制集环境中可以存在多个从库。尽管客户端不能往从库上写入数据,但是可以从从库上读取数据。在往MongoDB复制集中添加从库时,可以为从库设置不同的优先级别。当主库出现问题的时候,优先级别越高的从库将会被优先选举会主库。

提示:优先级为0的从库不能被选举为主库。

   

在某些情景下,在选举过程中可能有某个瞬间存在多个主库的情况,例如当网络出现问题时。当这种情况出现时,MongoDB复制集会将其中一个主库降级为从库,而对于客户端应用程序来说会察觉到主库降级所造成的数据过期以进行回滚操作。当前从库出现问题的时候,MongoDB复制集还可以对客户端应用程序隐藏从库,从而使得客户端无法访问该从库。


  • 仲裁者

   

MongoDB复制集中的仲裁者不存储任何数据集合,并且不能被选举成为主库。仲裁者不是必须的,它的存在可以保证MongoDB复制集中成员的个数为奇数,因为它总有一个投票权。作为仲裁者的节点对服务器硬件要求不高,仲裁者还可以用于接收复制集中其他成员发送的心跳检测信息。


相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
7天前
|
存储 NoSQL MongoDB
【赵渝强老师】MongoDB的MMAPv1存储引擎
在MongoDB 3.2版本之前,默认使用MMAPv1存储引擎。MMAPv1包括Database、Namespace、数据文件、Extent和Record等组件。每个Database由名称空间文件和数据文件组成,数据文件按编号递增,大小从64MB到2GB。每个数据文件被划分为多个Extent,每个Extent包含多个Record,对应MongoDB中的文档。通过一个示例展示了如何配置和使用MMAPv1存储引擎。
|
7天前
|
存储 NoSQL 关系型数据库
【赵渝强老师】MongoDB的存储结构
MongoDB 是一个可移植的 NoSQL 数据库,支持跨平台运行。其逻辑存储结构包括数据库、集合和文档,而物理存储结构则由命名空间文件、数据文件和日志文件组成。视频讲解和示意图进一步解释了这些概念。
|
7天前
|
存储 缓存 NoSQL
【赵渝强老师】MongoDB的WiredTiger存储引擎
MongoDB WiredTiger存储引擎自3.2版本起成为默认选择,提供文档级别的并发控制、检查点、数据压缩和本地加密等功能。本文详细介绍了WiredTiger的并发控制机制、预写日志与检查点、内存使用、数据压缩及磁盘空间回收等特性。
|
7天前
|
存储 NoSQL MongoDB
【赵渝强老师】MongoDB的In-Memory存储引擎
MongoDB的In-Memory存储引擎将数据存储在内存中,显著减少查询延迟,提高性能。该引擎不会将数据持久化到硬盘,仅在内存中存储,因此重启后数据会丢失。本文通过创建目录、配置文件、启动服务、插入数据和查询等步骤,详细演示了如何使用In-Memory存储引擎。
|
7天前
|
存储 NoSQL MongoDB
【赵渝强老师】MongoDB的存储引擎
存储引擎是MongoDB的核心组件,负责管理数据在硬盘和内存中的存储方式。从3.2版本起,MongoDB支持WiredTiger、MMAPv1和In-Memory三种存储引擎。WiredTiger为默认引擎,提供文档级并发控制和数据压缩;MMAPv1在3.2版本前为默认引擎,4.x版本后不再支持;In-Memory引擎将数据存储在内存中,减少查询延迟。
|
7天前
|
存储 NoSQL MongoDB
【赵渝强老师】MongoDB复制集的体系架构
MongoDB的复制集是一种集群技术,由一个Primary节点和多个Secondary节点组成,实现数据的高可用性。Primary节点处理写入请求,Secondary节点同步数据。当Primary节点故障时,Secondary节点可通过选举成为新的Primary节点。视频讲解和示意图详见正文。
|
7天前
|
存储 NoSQL JavaScript
【赵渝强老师】MongoDB的客户端工具
MongoDB 是一个基于分布式文件存储的 NoSQL 数据库,提供了命令行客户端工具 mongoshell 和图形化工具 MongoDB Compass。mongoshell 可以进行数据查询和管理操作,而 MongoDB Compass 则支持可视化查询、聚合和数据分析。本文介绍了如何使用 mongoshell 连接 MongoDB 服务器、创建数据库和集合、插入数据以及配置命令提示符。同时,还展示了 MongoDB Compass 的主界面及其功能。
|
7天前
|
存储 NoSQL 网络协议
【赵渝强老师】MongoDB的安装与访问
本文介绍了在Linux系统上安装和部署MongoDB的详细步骤,包括安装依赖包、解压安装包、配置环境变量、创建数据目录及启动服务等。文中还提供了相关命令示例和注意事项,帮助用户顺利完成MongoDB的安装与配置。

相关产品

  • 云数据库 MongoDB 版