mongodb5.0.5版本集群搭建

前言

MongoDB 有三种集群架构模式,分别为主从复制(Master-Slaver)、副本集(Replica Set)和分片(Sharding)模式。

Master-Slaver 是一种主从复制的模式,目前已经不推荐使用。从MongoDB 4.0版本开始,官方已经不再支持主从复制配置,转而推荐使用更先进的副本集(Replica Set)架构。副本集提供了自动故障转移、数据冗余和读写分离等高级功能,相比主从复制更加灵活和稳定。

Replica Set 模式取代了 Master-Slaver 模式,是一种互为主从的关系。Replica Set 将数据复制多份保存,不同服务器保存同一份数据,在出现故障时自动切换,实现故障转移,在实际生产中非常实用。

Sharding 模式适合处理大量数据,它将数据分开存储,不同服务器保存不同的数据,所有服务器数据的总和即为整个数据集。

本文以副本集搭建为例

开始搭建

mongodb服务安装我们先略过了,网上的教程一大把,直接开始讲配置

在主从节点的mongod.conf配置文件中,加入以下设置

复制代码
replication:
  replSetName: "rs0"
  oplogSizeMB: 5120 #限制操作日志(oplog)的大小为5G。类似mysql的binlog,这里限制大小即限制了mongodb保留的历史数据数量,需要根据数据量、数据入库速率、宕机允许时长、磁盘总空间等综合考量,默认限制不超过50G

rs0表示集群名字,同一集群的这项配置都要相同,根据项目自己起这个名字即可,后面初始化命令会用到

启动mongodb服务

复制代码
mongod -f mongod.conf

选其中任意一台作为master,在集群模式里叫做"primary"了,只有primary节点才可以写入数据,slave节点即集群模式叫做"secondary"只能读取数据。和master/slave方式不同,集群模式可以随时切换primary节点到任意secondary节点上,可以经由故障转移自动切换也可以手动命令切换

初始化集群

所有集群mongo服务启动后,登录到primary节点命令行

复制代码
use admin
rs.initiate({
   _id: "netops",
   members: [
      { _id: 0, host: "10.1.3.185:27017" },
      { _id: 1, host: "10.1.3.186:27017" },
      { _id: 1, host: "10.1.3.187:27017", arbiterOnly: true } // 如果是仲裁节点
   ]
})

MongoDB集群中的仲裁节点(Arbiter)是一种特殊类型的节点,它在副本集(Replica Set)架构中扮演着关键的角色。仲裁节点的主要功能集中在参与新主节点的选举过程中,它帮助维持投票的多数原则,确保集群能够迅速且确定性地选出新的主节点。而不涉及数据的存储或复制,换句话说仲裁节点不存储任何数据副本。

这样就搭建好了,是不是很简单?随后就能看到数据从主节点不断复制到从节点

*注意,mongodb集群的各个服务器,要保证数据一致性,以有数据的服务为primary,其他服务的库都置空,集群建起后,mongodb会自己拷贝数据的

一些命令

复制代码
查看集群状态
rs.status()

重新配置现有的副本集
作用:rs.reconfig 用于重新配置现有的副本集。当你需要修改副本集的配置,比如添加或移除副本集成员、改变成员优先级、修改选举超时等,就需要使用这个命令。这个操作允许你在不中断整个服务的情况下动态调整副本集的结构和设置。
使用选项:通常建议使用 {force : true} 选项来避免由于大多数成员不可达而导致的配置更新失败。但是,强制重新配置可能会导致数据不一致或复制问题,因此应当谨慎使用。
rs.reconfig(
  {
    "_id": "rs0",
    "members": [
      { _id: 0, host: "10.1.3.185:27017" },
      { _id: 1, host: "10.1.3.186:27017" }
    ]
  },
  { force: true }
)

获取MongoDB实例当前的运行状态和各种统计信息。此命令返回一个详细的文档,包含了关于服务器性能、状态、硬件使用情况、存储引擎、索引、复制集信息(如果适用)、网络、内存使用、操作计数等多个方面的数据。这个命令对于监控MongoDB实例的健康状况、性能调优和故障排查极为有用
db.serverStatus()
相关推荐
洛阳泰山9 小时前
Windows系统部署MongoDB数据库图文教程
数据库·windows·mongodb
yuanpan15 小时前
MongoDB与PostgreSQL两个数据库的特点详细对比
数据库·mongodb·postgresql
白露与泡影15 小时前
基于Mongodb的分布式文件存储实现
分布式·mongodb·wpf
孤的心了不冷16 小时前
【Linux】Linux安装并配置MongoDB
linux·运维·mongodb·容器
好吃的肘子1 天前
MongoDB 应用实战
大数据·开发语言·数据库·算法·mongodb·全文检索
独泪了无痕1 天前
MongoTemplate 基础使用帮助手册
spring boot·mongodb
好吃的肘子2 天前
MongoDB入门
数据库·mongodb
柳如烟@2 天前
在Rocky Linux 9.5上部署MongoDB 8.0.9:从安装到认证的完整指南
linux·运维·mongodb
好吃的肘子2 天前
MongoDB 高可用复制集架构
数据库·mongodb·架构
码上飞扬2 天前
MongoDB数据库深度解析:架构、特性与应用场景
数据库·mongodb·架构