温馨提示×

MongoDB在Ubuntu上的复制集配置

小樊
46
2025-11-09 03:45:45
栏目: 云计算

在Ubuntu上配置MongoDB复制集涉及几个步骤。以下是一个基本的指南,帮助你设置一个MongoDB复制集。

前提条件

  1. MongoDB安装:确保你已经在所有节点上安装了MongoDB。
  2. 防火墙配置:确保所有节点之间的网络通信是开放的。

步骤

1. 启动MongoDB实例

在每个节点上启动MongoDB实例。你可以使用以下命令:

sudo service mongod start

2. 配置MongoDB

编辑每个节点的MongoDB配置文件(通常是/etc/mongod.conf),添加或修改以下内容:

主节点(Primary)

replication:
  replSetName: "rs0"
net:
  port: 27017

从节点(Secondary)

replication:
  replSetName: "rs0"
net:
  port: 27018  # 可以不同,但必须唯一

3. 初始化复制集

连接到主节点并初始化复制集。使用mongo shell连接到主节点:

mongo --port 27017

mongo shell中,运行以下命令来初始化复制集:

rs.initiate({
   _id: "rs0",
   members: [
      { _id: 0, host: "primary_ip:27017" },
      { _id: 1, host: "secondary_ip:27018" },
      { _id: 2, host: "tertiary_ip:27019" }  // 可选,添加更多节点
   ]
})

4. 验证复制集状态

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

rs.status()

你应该看到所有节点的状态都是SECONDARYPRIMARY

5. 配置优先级(可选)

你可以配置节点的优先级,以控制哪个节点成为主节点。例如,设置主节点的优先级为2,从节点的优先级为1:

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

6. 配置隐藏节点(可选)

如果你需要一个隐藏节点,可以这样配置:

cfg = rs.conf()
cfg.members[2].hidden = true
cfg.members[2].priority = 0  // 隐藏节点不能成为主节点
rs.reconfig(cfg)

注意事项

  • 确保所有节点的时间同步。
  • 确保所有节点的MongoDB版本一致。
  • 在生产环境中,建议使用SSL/TLS加密节点之间的通信。

通过以上步骤,你应该能够在Ubuntu上成功配置一个MongoDB复制集。

0