温馨提示×

centos mongodb如何设副本集

小樊
39
2026-10-08 18:47:50
栏目: 云计算

下面以 CentOS 7/8 为例,说明 MongoDB 副本集(Replica Set) 的搭建步骤。假设你有 3 台服务器(生产推荐奇数节点)。


一、环境准备

1. 服务器规划

假设三台机器:

主机名 IP 角色
mongo1 192.168.1.11 primary/secondary
mongo2 192.168.1.12 secondary
mongo3 192.168.1.13 secondary

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


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

1. 配置 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

三、配置 MongoDB 副本集

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

编辑 /etc/mongod.conf

systemLog:
  destination: file
  path: /var/log/mongodb/mongod.log
  logAppend: true

storage:
  dbPath: /var/lib/mongo
  journal:
    enabled: true

net:
  bindIp: 0.0.0.0
  port: 27017

replication:
  replSetName: rs0

replSetName 三台必须一致

2. 启动 MongoDB

systemctl enable mongod
systemctl start mongod

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

1. 连接 mongo

mongo

2. 初始化

rs.initiate({
  _id: "rs0",
  members: [
    { _id: 0, host: "192.168.1.11:27017" },
    { _id: 1, host: "192.168.1.12:27017" },
    { _id: 2, host: "192.168.1.13:27017" }
  ]
})

3. 查看状态

rs.status()

看到 PRIMARY 和 SECONDARY 即成功。


五、常见操作

添加节点

rs.add("192.168.1.14:27017")

移除节点

rs.remove("192.168.1.14:27017")

设置优先级(让某节点优先成为主)

cfg = rs.conf()
cfg.members[0].priority = 2
rs.reconfig(cfg)

六、防火墙(CentOS)

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

七、验证副本同步

主节点:

use test
db.test.insert({a:1})

从节点:

rs.slaveOk()
use test
db.test.find()

八、单机多实例(测试用,可选)

如果你只有一台 CentOS,可以用:

  • 27017 / 27018 / 27019 三个端口
  • 不同 dbPath 和配置文件

需要我给你 单机多实例副本集示例 或 带鉴权的副本集配置 吗?

0 踩