找回密码
 立即注册
首页 业界区 安全 MongoDB 7.0 副本集高可用部署

MongoDB 7.0 副本集高可用部署

睿哝 2026-1-22 01:05:02
适用场景:生产环境搭建高可用 MongoDB 副本集,确保数据冗余与自动故障转移
MongoDB 版本:7.0.28(社区版)
操作系统:CentOS 7.9
架构:1 主(Primary) + 2 从(Secondary),共 3 个数据承载节点(P-S-S)
文件系统:XFS(推荐 XFS)
一、为什么需要副本集?

MongoDB 副本集(Replica Set)是实现 高可用性 和 数据冗余 的核心机制:

  • 自动故障转移:主节点宕机后,从节点自动选举新主,服务不中断;
  • 数据多副本:每个从节点保存完整数据副本,防止单点数据丢失;
  • 读写分离(可选):从节点可承担部分读请求,提升系统吞吐。
    1.png

 推荐配置:3 个数据节点(P-S-S),主节点负责所有写入操作,从节点则从主节点复制数据,提供读操作的负载均衡,两个从节点都可以在选举中成为主节点。
二、环境准备

1. 服务器信息

主机名IP 地址角色mongo-node110.0.0.10Primarymongo-node210.0.0.11Secondarymongo-node310.0.0.12Secondary
所有操作需在 三台主机上分别执行(除非特别说明)。
2. 系统初始化(所有节点)
  1. # 配置 yum 源
  2. wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.huaweicloud.com/repository/conf/CentOS-7-anon.repo
  3. yum clean all && yum makecache
  4. # 安装基础工具
  5. yum install -y telnet bind-utils net-tools vim-enhanced lrzsz unzip gcc gcc-c++ ntpdate vim sysstat nmap
  6. # 时间同步
  7. ntpdate -s ntp1.aliyun.com
  8. # 关闭 SELinux
  9. setenforce 0
  10. sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
  11. # 关闭防火墙与 postfix
  12. systemctl stop firewalld && systemctl disable firewalld
  13. systemctl stop postfix && systemctl disable postfix
  14. # 设置主机名(每台不同)
  15. hostnamectl set-hostname mongo-node1  # node2 改为 mongo-node2,以此类推
  16. # 配置 hosts
  17. cat >> 'EOF' << /etc/hosts
  18. 10.0.0.10    mongo-node1
  19. 10.0.0.11    mongo-node2
  20. 10.0.0.12      mongo-node3
  21. EOF
复制代码
四、安装 MongoDB 7.0

# 安装依赖
yum install -y libcurl openssl xz-libs
# 下载并解压 MongoDB
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-7.0.28.tgz
tar -xzf mongodb-linux-x86_64-rhel70-7.0.28.tgz -C /app/
mv /app/mongodb-linux-x86_64-rhel70-7.0.28 /app/mongodb
chown -R mongodb:mongodb /app/mongodb

# 配置环境变量
cat >> /etc/profile > /app/data/mongodb/conf/mongod.conf > /etc/systemd/system/mongodb.service

相关推荐

您需要登录后才可以回帖 登录 | 立即注册