温馨提示×

ubuntu mongodb如何集群

小樊
35
2026-10-28 19:10:05
栏目: 云计算

在 Ubuntu 上部署 MongoDB 集群,通常有三种常见方式:

  1. 副本集(Replica Set) —— 高可用(最常用)
  2. 分片集群(Sharded Cluster) —— 大数据水平扩展
  3. 单机多实例模拟集群(学习/测试)

下面我按最实用的副本集方案给你讲,最后再补充分片集群思路。


一、环境准备(Ubuntu)

假设你有 3 台 Ubuntu 服务器(或一台机器开 3 个端口也行):

节点 IP
node1 192.168.1.101
node2 192.168.1.102
node3 192.168.1.103

MongoDB 版本建议:6.x / 7.x


二、安装 MongoDB(所有节点)

sudo apt update
sudo apt install -y mongodb-org

或官方源方式(推荐):

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/ubuntu $(lsb_release -cs)/mongodb-org/7.0 multiverse" | \
sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list

sudo apt update
sudo apt install -y mongodb-org

三、配置副本集(核心)

1️⃣ 修改配置文件

编辑(所有节点):

sudo vim /etc/mongod.conf

关键配置:

net:
  port: 27017
  bindIp: 0.0.0.0

replication:
  replSetName: rs0

bindIp 生产环境建议绑定具体 IP

重启:

sudo systemctl restart mongod
sudo systemctl enable mongod

2️⃣ 初始化副本集(只在主节点执行)

登录 mongo:

mongosh

执行:

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()

四、验证集群

rs.isMaster()

写入测试:

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

在其他节点:

rs.secondaryOk()
db.user.find()

五、分片集群(简略说明)

如果你需要 真正的大数据集群:

组件

  • Config Server(配置服务器) ×3
  • Mongos(路由) ×1~2
  • Shard(分片) = 多个副本集

架构

App → Mongos → Config → Shard1 / Shard2

启动顺序

  1. Config Server(副本集)
  2. Shard(副本集)
  3. Mongos
  4. sh.addShard()

如果你需要,我可以给你一套完整分片集群配置示例。


六、常见坑

❌ 防火墙没开 27017
✅ ufw allow 27017

❌ 副本集名称不一致
✅ rs0 必须一样

❌ 用 localhost 初始化
✅ 用 IP


七、你可以告诉我

  • ✅ 是 测试 还是 生产
  • ✅ 几台机器
  • ✅ 是否要 分片
  • ✅ Ubuntu 版本 & MongoDB 版本

我可以直接给你 可复制的配置文件 + 命令。

0 踩