温馨提示×

centos mongodb如何设置副本集

小樊
49
2026-10-11 18:21:07
栏目: 云计算

下面以 CentOS 7/8 为例,说明如何安装并配置 MongoDB 副本集(Replica Set)。


一、环境准备

假设有 3 台 CentOS 服务器(生产推荐奇数节点):

节点 IP 角色
node1 192.168.1.101 PRIMARY
node2 192.168.1.102 SECONDARY
node3 192.168.1.103 SECONDARY

如果是测试,也可以在单机用不同端口模拟。


二、安装 MongoDB(三台都执行)

1. 添加 MongoDB yum 源

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

2. 安装

yum install -y mongodb-org

3. 启动 MongoDB

systemctl enable mongod
systemctl start mongod

三、配置 MongoDB 副本集

1. 修改配置文件(三台相同)

编辑 /etc/mongod.conf

net:
  port: 27017
  bindIp: 0.0.0.0

replication:
  replSetName: rs0

replSetName 三台必须一致

重启:

systemctl restart mongod

四、初始化副本集(只需在 PRIMARY 执行)

连接到任意一台:

mongo

执行:

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" }
  ]
})

查看状态:

rs.status()

五、验证副本集

1. 主节点写入

use test
db.user.insert({name:"tom"})

2. 从节点读取

mongo --host 192.168.1.102
rs.slaveOk()   // 旧版本
// 或
rs.secondaryOk() // 新版本
db.user.find()

六、常见问题

1. 防火墙

firewall-cmd --add-port=27017/tcp --permanent
firewall-cmd --reload

2. 时间同步

yum install -y ntp
systemctl enable ntpd
systemctl start ntpd

3. 查看当前角色

rs.isMaster()

七、常见扩展

  • 增加节点:rs.add("ip:27017")
  • 移除节点:rs.remove("ip:27017")
  • 设置仲裁节点:rs.addArb("ip:27017")

如果你需要 单机多实例副本集 或 Docker 方式部署,也可以告诉我。

0 踩