MongoDB集群搭建:CentOS上完整部署指南 (2026)

引言

MongoDB作为流行的NoSQL数据库,在生产环境中通常需要搭建集群来保证高可用性和数据冗余。本文将详细介绍如何在CentOS系统上搭建MongoDB集群(Replica Set),帮助您构建稳定可靠的数据库架构。

什么是MongoDB集群

MongoDB集群主要通过Replica Set(副本集)实现。副本集是一组维护相同数据集的MongoDB实例,其中包含一个主节点(Primary)和多个从节点(Secondary)。当主节点故障时,从节点会自动选举新的主节点,确保服务不中断。

准备工作

在开始搭建之前,请确保满足以下条件:

  • 操作系统:CentOS 7.x 或更高版本
  • MongoDB版本:建议使用5.0或更高版本
  • 服务器数量:至少3台服务器(用于组建高可用集群)
  • 网络:服务器之间网络互通,防火墙已开放相应端口
  • 权限:具有root或sudo权限的用户

详细安装步骤

1. 配置MongoDB仓库

在每台服务器上执行以下命令,创建MongoDB yum仓库:

cat > /etc/yum.repos.d/mongodb-org-5.0.repo << EOF
[mongodb-org-5.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/\$releasever/mongodb-org/5.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-5.0.asc
EOF

2. 安装MongoDB

在每台服务器上安装MongoDB:

sudo yum install -y mongodb-org

安装完成后,不要立即启动MongoDB服务。

3. 配置MongoDB实例

编辑配置文件 /etc/mongod.conf,关键配置项如下:

# 网络配置
net:
  port: 27017
  bindIp: 0.0.0.0  # 允许远程访问

# 复制集配置
replication:
  replSetName: "rs0"  # 副本集名称

# 安全配置(可选)
security:
  authorization: enabled
  keyFile: /opt/mongodb/keyfile  # 用于内部认证

4. 启动MongoDB服务

在每台服务器上启动MongoDB:

sudo systemctl start mongod
sudo systemctl enable mongod

5. 初始化副本集

连接到任意一台服务器的MongoDB:

mongo --host <服务器IP> --port 27017

在MongoDB shell中执行初始化命令:

rs.initiate({
  _id: "rs0",
  members: [
    { _id: 0, host: "192.168.1.101:27017" },
    { _id: 1, host: "192.168.1.102:27017" },
    { _id: 2, host: "192.168.1.103:27017" }
  ]
})

6. 验证集群状态

使用以下命令检查副本集状态:

rs.status()

正常情况下,应该看到一个主节点(stateStr: “PRIMARY”)和两个从节点(stateStr: “SECONDARY”)。

常见问题及解决方案

问题1:节点无法加入集群

原因:防火墙未开放27017端口,或SELinux阻止了连接。

解决

# 开放端口
sudo firewall-cmd --permanent --add-port=27017/tcp
sudo firewall-cmd --reload

# 临时关闭SELinux
sudo setenforce 0

问题2:选举失败

原因:节点数量不足或网络分区。

解决:确保至少3个节点在线,检查网络连接。

问题3:数据不同步

原因:从节点落后主节点太多。

解决

// 在从节点上执行
db.getMongo().setSecondaryOk()

性能优化建议

  1. 使用SSD存储:SSD能显著提升MongoDB的读写性能
  2. 合理配置内存:确保WiredTiger缓存大小不超过物理内存的50%
  3. 监控工具:使用MongoDB Cloud Manager或Prometheus + Grafana监控集群状态
  4. 定期备份:使用mongodump定期备份数据

安全配置

生产环境务必启用安全认证:

  1. 创建管理员用户
  2. 配置keyFile用于节点间认证
  3. 启用TLS/SSL加密传输
  4. 限制网络访问(配置防火墙规则)

总结

在CentOS上搭建MongoDB集群并不复杂,关键在于正确配置副本集和确保节点间的网络通信。通过本文的步骤,您可以快速搭建一个高可用的MongoDB集群。记得在生产环境中启用安全认证,并定期监控集群状态。

如有问题,欢迎在评论区留言讨论!


本文更新于2026年,适用于CentOS 7/8和MongoDB 5.0+版本

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注