mongo 副本集rs 理解和使用小结
转载请注明出处:
在MongoDB中,rs(通常指的是“replica set”的缩写)是复制集(Replica Set)的标识符或在使用时的一种常见前缀,尤其是在命令行工具和脚本中引用复制集时。复制集是MongoDB用来实现数据冗余和高可用性的一个核心组件。
复制集(Replica Set)的作用:
数据冗余:复制集在多个服务器上维护相同数据的多个副本,以防止单点故障导致的数据丢失。
高可用性:通过自动故障转移(Failover)机制,当主节点(Primary)不可用时,复制集中的从节点(Secondary)之一会被选举为新的主节点,从而保持服务的连续性。
读扩展:客户端可以将读操作分发到从节点上,从而减轻主节点的压力,提高整体读性能。
如何使用复制集:
1. 初始化复制集
在MongoDB中,你可以通过rs.initiate()命令在mongo shell中初始化一个新的复制集。假设你已经在三台不同的服务器上运行了MongoDB实例,并希望将它们配置为一个复制集。
# 登录到其中一个MongoDB实例的mongo shell
mongo # 切换到admin数据库(或任何你希望用于复制集配置的数据库)
use admin # 初始化复制集
rs.initiate({
_id: "rs0",
members: [
{ _id: 0, host: "mongodb-host1:27017" },
{ _id: 1, host: "mongodb-host2:27017" },
{ _id: 2, host: "mongodb-host3:27017" }
]
})
在这里,_id是复制集的名称(这里使用了rs0作为示例),members数组列出了复制集中的所有成员及其主机名和端口。
2. 添加副本集成员
要添加新的成员到现有的副本集中,可以使用以下命令:
rs.add("newNode.example.com:27017")
3. 删除副本集成员
要从副本集中删除一个成员,可以使用以下命令:
rs.remove("nodeToRemove.example.com:27017")
4. 监控复制集状态
使用rs.status()命令可以获取复制集的当前状态,包括每个成员的状态、复制延迟等信息。
use admin
rs.status()
5. 读写操作
默认情况下,MongoDB的客户端会连接到复制集中的主节点进行写操作,并可以配置为从从节点读取数据以减轻主节点的负载。这通常通过连接字符串中的读偏好(Read Preference)设置来实现。
# 使用mongo shell连接到复制集(自动连接到主节点)
mongo mongodb://mongodb-host1:27017,mongodb-host2:27017,mongodb-host3:27017/yourdatabase?replicaSet=rs0 # 在你的应用程序中,你可能需要设置读偏好来从从节点读取数据
# 这取决于你使用的MongoDB驱动程序或客户端库
6. 故障转移和恢复
如果主节点发生故障,复制集中的其他成员将检测到这一点,并启动故障转移过程。其中一个从节点将被选举为新的主节点,并且应用程序的连接(如果配置了自动重连)将自动切换到新的主节点。
mongo 副本集rs 理解和使用小结的更多相关文章
- mongo 副本集
副本集配置文件 dbpath=/hwdata/mongodb/datalogpath=/hwdata/mongodb/logs/master.logpidfilepath=/hwdata/mongod ...
- mongo副本集设置主库权重,永远为主
mongo副本集设置主库权重,即使主库宕机了再重启也还是主库. cfg = rs.conf() ------->(查看序列)cfg.members[0].priority = 1 (设置 ...
- Mongo副本集搭建
解压mongodb-linux-x86_64-rhel70-3.2.0.tgz 将解压后的bin路径添加到系统环境变量,保证mongo.mongod等命令可用 创建副本集目录mongo/27017.2 ...
- Mongo--03 mongo副本集、备份与恢复
目录 一.mongo副本集配置 二.查看副本集状态 三.副本集权重调整 四.创建节点 五.仲裁节点 六.mongo备份与恢复 七.准备测试数据 一.mongo副本集配置 1.创建节点目录和数据目录 # ...
- 我们的一个已投产项目的高可用数据库实战 - mongo 副本集的搭建具体过程
我们的 mongo 副本集有三台 mongo 服务器:一台主库两台从库. 主库进行写操作,两台从库进行读操作(至于某次读操作到底路由给了哪台,仲裁决定).实现了读写分离.这还不止,假设主库宕掉,还能实 ...
- mongo副本集搭建及服务器复用方案
比较常见的mongodb副本集搭建是有:常规节点.数据副本.仲裁节点组成,也就是需要三台服务器组建.常规节点即数据的主存储节点,数据副本是主存储节点的从属节点,它定期去主节点获取更新日志来更新自己.仲 ...
- Mongo副本集的配置以及php node.js连接使用副本集
最近弄了下mongodb的副本集, 首先说下没有认证情况的副本集,相对比较简单,因为环境有限,我在同一台服务器上做了模拟. --rest参数是打开web监控页面,比如我们这里监听37017端口,则打开 ...
- mongo 副本集+分片 配置
服务器规划如下: 副本集名称|服务器IP 192.168.56.111 192.168.56.112 192.168.56.113 shard1 3201 3201 3201 shard2 3202 ...
- mongodb副本集配置
需要用到mongodb的时候单个实例肯定是不行的,挂了怎么办,那然后呢,跟mysql一样搞主从备份吗,是可以的mongodb这么弄,不过官网已经不推荐了这么干了,推荐使用副本集的模式,然后数据再大一点 ...
- Mongodb主从复制/ 副本集/分片集群介绍
前面的文章介绍了Mongodb的安装使用,在 MongoDB 中,有两种数据冗余方式,一种 是 Master-Slave 模式(主从复制),一种是 Replica Sets 模式(副本集). Mong ...
随机推荐
- [oeasy]python0082_[趣味拓展]控制序列_清屏_控制输出位置_2J
光标位置 回忆上次内容 上次了解了键盘演化的过程 ESC 从 组合键 到 独立按键 添加图片注释,不超过 140 字(可选) ESC的作用 是 进入 控制序列 配置 控制信息 控制信息 ...
- IPFS 解决国内 docker mirror 封锁
IPFS 解决国内 docker mirror 封锁 内容仅用于研究,帮助开发者学习技术知识,以建设祖国 IPFS 技术是当前 Web3 的主要基建设施,提供去中心化存储,以及 libp2p 的去中心 ...
- java面试一日一题:讲下ThreadLocal
问题:请讲下ThreadLocal 分析:首先要了解ThreadLocal的基本原理:其次要理解ThreadLocal发生内存泄漏的原因:最后ThreadLocal是如何做到线程隔离的 回答要点: 主 ...
- Jmeter让线程循环变量值不重复
我们定义用户参数时为了保证某个参数值不重复会设置为随机变量 1.使用[用户定义的变量]组件,传入随机值如"HELLO${__Random(100,200,)}_${__counter(FAL ...
- 【Tycoon City New York】城市梦想家: 纽约 作弊键说明
这游戏是自带快捷键作弊功能的 [Ctrl] + [Alt] + A 加10,000人口 [Ctrl] + [Alt] + C 加$1,000,000资金 [Ctrl] + [Alt] + B 加100 ...
- 【H5】03 文本内容处理
摘自: https://developer.mozilla.org/zh-CN/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals ...
- 【Spring】01 快速入门
Spring快速入门 空Maven项目创建 声明工程名称,完成 删除SRC目录,创建01 HelloSpring模块 导入依赖 Maven坐标: <!-- https://mvnreposito ...
- 绝对要收藏!!! JavaEE开发常用注解
目录 前言 1.Mybatis常用注解 2.SpringMVC常用注解 3.Spring常用注解 1. IoC注解 2. DI注解 3. 事务注解 4.SpringBoot常用注解 5.Lombok注 ...
- 智能工业化的关键一环:sim2real的仿真环境设计
智能工业化,不论是智能机器人技术还是数字孪生技术,都不可避免的要使用的一个技术就是仿真环境技术. 在智能工业化还停留在学术阶段的时候,大家都可以使用一些开源的免费的仿真环境做research,但是到了 ...
- hibernate validation,spring validation自定义参数校验
1.背景 在实际开发中,我们除了会使用常用的参数判断,如字符串不为空,最大值,最小值等 我们还可以自定义参数校验规则 2.实际生产问题 实际生产中同步订单的时候, 假设我们要求订单状态值只能是 -1, ...