mongo 副本集rs 理解和使用小结

转载请注明出处:

在MongoDB中,rs(通常指的是"replica set"的缩写)是复制集(Replica Set)的标识符或在使用时的一种常见前缀,尤其是在命令行工具和脚本中引用复制集时。复制集是MongoDB用来实现数据冗余和高可用性的一个核心组件。

复制集(Replica Set)的作用:

  1. 数据冗余:复制集在多个服务器上维护相同数据的多个副本,以防止单点故障导致的数据丢失。

  2. 高可用性:通过自动故障转移(Failover)机制,当主节点(Primary)不可用时,复制集中的从节点(Secondary)之一会被选举为新的主节点,从而保持服务的连续性。

  3. 读扩展:客户端可以将读操作分发到从节点上,从而减轻主节点的压力,提高整体读性能。

如何使用复制集:

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. 故障转移和恢复

如果主节点发生故障,复制集中的其他成员将检测到这一点,并启动故障转移过程。其中一个从节点将被选举为新的主节点,并且应用程序的连接(如果配置了自动重连)将自动切换到新的主节点。

相关推荐
茁壮成长的露露11 小时前
PMM监控MongoDB
数据库·mongodb
cookqq12 小时前
基于Spring AI+本地大模型+MongoDB实现私密化与记忆能力-企业级免费大模型应用
人工智能·mongodb·spring
eWidget16 小时前
从MongoDB到金仓数据库:一场零中断的国产化迁移实践
数据库·mongodb·kingbase·数据库平替用金仓·金仓数据库
Yolanda9417 小时前
【IDEA】IDEA连接MongoDB数据库
数据库·mongodb·idea使用
一个天蝎座 白勺 程序猿2 天前
金仓数据库KingbaseES无缝替代MongoDB,实现核心业务系统平稳迁移
数据库·mongodb·架构·时序数据库·kingbasees
心态还需努力呀2 天前
不止于 MongoDB 替代:金仓数据库多模一体的技术实践与性能实测
数据库·mongodb
正在走向自律2 天前
KingbaseES数据库MongoDB兼容模式实战:协议级兼容实现业务平滑迁移
数据库·mongodb·国产数据库·kingbasees·电科金仓
倔强的石头1063 天前
多模融合重塑文档数据库:金仓数据库 MongoDB 兼容版的技术实践
数据库·mongodb·kingbase
Gary董4 天前
redis 和 mongoDB 的优劣
数据库·redis·mongodb
数据知道5 天前
一文掌握 MongoDB 详细安装与配置(Windows / Linux / macOS 全平台)
linux·数据库·windows·mongodb·macos