在 Debian 上部署 MongoDB 集群,通常指 副本集(Replica Set) 或 分片集群(Sharded Cluster)。大多数生产环境先用 副本集,需要横向扩展再上 分片。
下面我按 最常见场景 给你讲:
sudo apt update
sudo apt install -y gnupg curl
curl -fsSL https://pgp.mongodb.com/server-7.0.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg --dearmor
echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] \
https://repo.mongodb.org/apt/debian bookworm/mongodb-org/7.0 main" | \
sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list
sudo apt update
sudo apt install -y mongodb-org
编辑 /etc/mongod.conf
storage:
dbPath: /var/lib/mongodb
net:
bindIp: 0.0.0.0
port: 27017
replication:
replSetName: rs0
⚠️ 生产环境 bindIp 不要写 0.0.0.0,写具体 IP
重启:
sudo systemctl restart mongod
mongo
rs.initiate({
_id: "rs0",
members: [
{ _id: 0, host: "192.168.1.10:27017" },
{ _id: 1, host: "192.168.1.11:27017" },
{ _id: 2, host: "192.168.1.12:27017" }
]
})
查看状态:
rs.status()
✅ 副本集完成
sharding:
clusterRole: configsvr
replication:
replSetName: cfgrs
初始化:
rs.initiate({
_id: "cfgrs",
configsvr: true,
members: [...]
})
sharding:
clusterRole: shardsvr
replication:
replSetName: shard1
sharding:
configDB: cfgrs/192.168.1.20:27019,192.168.1.21:27019,192.168.1.22:27019
启动:
mongos --config /etc/mongos.conf
sh.addShard("shard1/192.168.1.30:27018,192.168.1.31:27018")
rs.status()
rs.add("ip:27017")
rs.remove("ip:27017")
sh.status()
sh.enableSharding("db")
sh.shardCollection("db.col", { _id: "hashed" })
| 场景 | 推荐 |
|---|---|
| 高可用 | 副本集(3节点) |
| 大数据量 | 分片 + 副本集 |
| 测试 | 单机 + 副本集 |
如果你愿意,可以告诉我:
我可以直接给你 一套可复制的配置文件 + 命令。