在Debian上配置MongoDB復制(Replication)涉及設置一個主節點(Primary)和一個或多個從節點(Secondary)。以下是詳細的步驟指南:
首先,確保你已經在所有節點上安裝了MongoDB。你可以使用以下命令來安裝:
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 # 允許所有IP訪問,生產環境中應限制為特定IP
replication:
replSetName: rs0 # 復制集名稱
重啟MongoDB服務以應用更改:
sudo systemctl restart mongod
連接到主節點并初始化復制集:
mongo --host <主節點IP> --port 27017
在Mongo shell中執行以下命令:
rs.initiate(
{
_id: "rs0",
members: [
{ _id: 0, host: "<主節點IP>:27017" }
]
}
)
連接到主節點并添加從節點:
rs.add("<從節點IP>:27017")
在Mongo shell中執行以下命令來驗證復制集的狀態:
rs.status()
你應該看到所有節點都列在復制集中,并且有一個節點被標記為 PRIMARY
,其他節點被標記為 SECONDARY
。
確保從節點的配置文件 /etc/mongod.conf
中有以下設置:
replication:
replSetName: rs0 # 復制集名稱
重啟從節點的MongoDB服務:
sudo systemctl restart mongod
你可以配置節點的優先級來控制哪個節點成為主節點。編輯節點的配置文件 /etc/mongod.conf
:
replication:
replSetName: rs0
priority: 2 # 默認值為1,數值越高優先級越高
重啟MongoDB服務:
sudo systemctl restart mongod
如果你需要隱藏某些節點,可以在初始化復制集時設置 hidden
屬性:
rs.initiate(
{
_id: "rs0",
members: [
{ _id: 0, host: "<主節點IP>:27017", priority: 2 },
{ _id: 1, host: "<從節點IP>:27017", priority: 1, hidden: true }
]
}
)
你可以使用MongoDB的監控工具來監控復制集的狀態和性能。例如,使用 mongostat
和 mongotop
工具:
sudo apt install -y mongodb-clients
mongostat
mongotop
通過以上步驟,你應該能夠在Debian上成功配置MongoDB復制集。