以下是在Debian上配置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
在每个节点上编辑/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
不同节点可设置不同端口,从节点需确保能访问主节点。
在每个节点上执行:
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)