下面以 CentOS 7/8 为例,说明如何配置 MongoDB 副本集(Replica Set)。假设你有 3 台服务器(或同一台机器不同端口也行,仅用于测试)。
| 节点 | IP | 端口 |
|---|---|---|
| node1 | 192.168.1.101 | 27017 |
| node2 | 192.168.1.102 | 27017 |
| node3 | 192.168.1.103 | 27017 |
生产环境建议 奇数节点(3 / 5)
cat > /etc/yum.repos.d/mongodb-org.repo <<EOF
[mongodb-org]
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
yum install -y mongodb-org
启动 MongoDB:
systemctl enable mongod
systemctl start mongod
编辑 /etc/mongod.conf
net:
port: 27017
bindIp: 0.0.0.0
replication:
replSetName: rs0
bindIp生产环境建议写成具体 IP
重启:
systemctl restart mongod
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()
use test
db.user.insert({name:"tom"})
rs.secondaryOk()
db.user.find()
rs.isMaster()
rs.add("192.168.1.104:27017")
rs.remove("192.168.1.104:27017")
rs.conf()
firewall-cmd --add-port=27017/tcp --permanent
firewall-cmd --reload
rs.addArb("192.168.1.104:27017")
如果你需要:
可以告诉我,我给你对应方案。