温馨提示×

Ubuntu下MongoDB复制集如何搭建

小樊
35
2025-12-24 15:07:49
栏目: 云计算

在Ubuntu下搭建MongoDB复制集(Replica Set)可以提供数据冗余和高可用性。以下是详细的步骤:

1. 安装MongoDB

首先,确保你已经在Ubuntu上安装了MongoDB。如果还没有安装,可以使用以下命令:

sudo apt update
sudo apt install -y mongodb-org

2. 配置MongoDB

编辑MongoDB配置文件 /etc/mongod.conf,添加复制集配置。假设我们有三个节点,分别命名为 rs0/primary, rs0/secondary1, rs0/secondary2

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

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

net:
  port: 27017
  bindIp: 0.0.0.0

replication:
  replSetName: rs0

3. 重启MongoDB服务

保存配置文件并重启MongoDB服务:

sudo systemctl restart mongod

4. 初始化复制集

连接到MongoDB shell:

mongo --host <primary_ip> --port 27017

在MongoDB shell中初始化复制集:

rs.initiate(
  {
    _id: "rs0",
    members: [
      { _id: 0, host: "<primary_ip>:27017" },
      { _id: 1, host: "<secondary1_ip>:27017" },
      { _id: 2, host: "<secondary2_ip>:27017" }
    ]
  }
)

<primary_ip>, <secondary1_ip>, <secondary2_ip> 替换为实际的IP地址。

5. 验证复制集状态

在MongoDB shell中运行以下命令来验证复制集的状态:

rs.status()

你应该能看到复制集的成员及其状态。

6. 添加更多节点(可选)

如果你需要添加更多的节点,可以使用以下命令:

rs.add("<new_node_ip>:27017")

<new_node_ip> 替换为新节点的IP地址。

7. 故障转移测试(可选)

为了测试故障转移,可以手动停止主节点,观察复制集是否能够自动选举新的主节点:

sudo systemctl stop mongod

然后在MongoDB shell中再次运行 rs.status(),你应该能看到新的主节点。

8. 配置防火墙(可选)

确保你的防火墙允许MongoDB的端口(默认是27017)通信:

sudo ufw allow 27017

总结

通过以上步骤,你可以在Ubuntu上成功搭建一个MongoDB复制集。复制集提供了数据冗余和高可用性,是生产环境中常用的数据库架构之一。

0