在Debian上搭建MongoDB集群涉及多個步驟,包括安裝MongoDB、配置副本集(Replica Set)以及設置高可用性。以下是一個基本的指南:
sudo apt update && sudo apt upgrade -y
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
echo "deb [ archamd64,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
sudo systemctl start mongod
sudo systemctl enable mongod
mongo --eval 'db.runCommand({ connectionStatus: 1 })'
啟動MongoDB實例:
mongod --port 27017 --dbpath /data/db1 --replSet myReplicaSet
mongod --port 27018 --dbpath /data/db2 --replSet myReplicaSet
初始化副本集: 連接到主節點(Primary):
mongo --port 27017
在mongo shell中執行以下命令初始化副本集:
rs.initiate(
{
_id: "myReplicaSet",
members: [
{ _id: 0, host: "192.168.1.100:27017" },
{ _id: 1, host: "192.168.1.101:27017" },
{ _id: 2, host: "192.168.1.102:27017" }
]
}
)
驗證副本集狀態:
rs.status()
啟用復制集仲裁者(可選): 如果需要仲裁者,可以啟動一個仲裁節點:
mongod --port 27019 --dbpath /data/db3 --replSet myReplicaSet --arbiterOnly
配置優先級: 在主節點上設置優先級,以確保在主節點故障時能夠自動選舉新的主節點:
cfg = rs.conf()
cfg.members[0].priority = 2
rs.reconfig(cfg)
啟用自動故障轉移: 確保副本集成員支持自動故障轉移,這通常在副本集初始化時已經默認啟用。
監控和管理:
使用MongoDB的監控工具,如mongostat
和mongotop
,來監控集群的健康狀況和性能。