温馨提示×

Debian MongoDB复制集配置详解

小樊
42
2025-08-16 08:07:23
栏目: 云计算

以下是在Debian上配置MongoDB复制集的详细步骤:

安装MongoDB

更新系统,添加MongoDB官方APT仓库并安装:

sudo apt update
sudo apt upgrade
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/debian bullseye/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
sudo apt update
sudo apt install -y mongodb-org

配置MongoDB

在每个节点上编辑/etc/mongod.conf,设置复制集名称等参数,例如:

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

不同节点可设置不同端口,从节点需确保能访问主节点。

重启MongoDB服务

在每个节点上执行:

sudo systemctl restart mongod
sudo systemctl enable mongod

初始化复制集

连接到主节点的MongoDB实例,执行初始化命令:

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

验证复制集状态

在Mongo shell中执行:

rs.status()

查看节点状态,正常应显示主节点和从节点。

可选配置

可通过修改复制集配置来设置节点优先级、隐藏节点等,例如设置主节点优先级为2:

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

0