温馨提示×

MongoDB在Debian上的复制如何配置

小樊
32
2025-11-25 11:05:47
栏目: 云计算

在Debian上配置MongoDB的复制(Replication)涉及设置一个主节点(Primary)和一个或多个从节点(Secondary)。以下是详细的步骤:

1. 安装MongoDB

首先,确保你已经在所有节点上安装了MongoDB。你可以使用以下命令来安装:

sudo apt update
sudo apt install -y mongodb

2. 配置主节点

在主节点上,编辑MongoDB配置文件(通常位于 /etc/mongod.conf),确保以下配置:

net:
  port: 27017

storage:
  dbPath: /var/lib/mongodb

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

replication:
  replSetName: rs0

3. 启动主节点

启动MongoDB服务:

sudo systemctl start mongod

4. 配置从节点

在每个从节点上,编辑MongoDB配置文件(通常位于 /etc/mongod.conf),确保以下配置:

net:
  port: 27017

storage:
  dbPath: /var/lib/mongodb

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

replication:
  replSetName: rs0

5. 初始化复制集

连接到主节点并初始化复制集。你可以使用 mongo shell 来完成这个操作:

mongo --host <主节点IP> --port 27017

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

rs.initiate({
  _id: "rs0",
  members: [
    { _id: 0, host: "<主节点IP>:27017" },
    { _id: 1, host: "<从节点1IP>:27017" },
    { _id: 2, host: "<从节点2IP>:27017" }
  ]
})

6. 验证复制集状态

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

rs.status()

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

7. 配置从节点为只读

默认情况下,从节点是只读的。如果你需要从节点支持写操作,可以修改从节点的配置文件,添加以下选项:

security:
  authorization: enabled

然后重启MongoDB服务:

sudo systemctl restart mongod

并在 mongo shell 中创建一个管理员用户:

use admin
db.createUser({
  user: "admin",
  pwd: "your_password",
  roles: ["root"]
})

然后重新连接到复制集并验证权限:

mongo -u admin -p your_password --authenticationDatabase admin

8. 监控和维护

定期监控复制集的状态,并确保所有节点正常运行。你可以使用以下命令来查看复制集的状态:

rs.status()

通过以上步骤,你应该能够在Debian上成功配置MongoDB的复制。

0