睿哝
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)是实现 高可用性 和 数据冗余 的核心机制:
- 自动故障转移:主节点宕机后,从节点自动选举新主,服务不中断;
- 数据多副本:每个从节点保存完整数据副本,防止单点数据丢失;
- 读写分离(可选):从节点可承担部分读请求,提升系统吞吐。
推荐配置:3 个数据节点(P-S-S),主节点负责所有写入操作,从节点则从主节点复制数据,提供读操作的负载均衡,两个从节点都可以在选举中成为主节点。
二、环境准备
1. 服务器信息
主机名IP 地址角色mongo-node110.0.0.10Primarymongo-node210.0.0.11Secondarymongo-node310.0.0.12Secondary所有操作需在 三台主机上分别执行(除非特别说明)。
2. 系统初始化(所有节点)
- # 配置 yum 源
- wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.huaweicloud.com/repository/conf/CentOS-7-anon.repo
- yum clean all && yum makecache
- # 安装基础工具
- yum install -y telnet bind-utils net-tools vim-enhanced lrzsz unzip gcc gcc-c++ ntpdate vim sysstat nmap
- # 时间同步
- ntpdate -s ntp1.aliyun.com
- # 关闭 SELinux
- setenforce 0
- sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
- # 关闭防火墙与 postfix
- systemctl stop firewalld && systemctl disable firewalld
- systemctl stop postfix && systemctl disable postfix
- # 设置主机名(每台不同)
- hostnamectl set-hostname mongo-node1 # node2 改为 mongo-node2,以此类推
- # 配置 hosts
- cat >> 'EOF' << /etc/hosts
- 10.0.0.10 mongo-node1
- 10.0.0.11 mongo-node2
- 10.0.0.12 mongo-node3
- 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 |
|
|
|
|
|
相关推荐
|
|
|