在CentOS上搭建MongoDB復制集(Replica Set)可以提供數據冗余和高可用性。以下是詳細的步驟:
首先,確保你的CentOS系統已經安裝了MongoDB。如果沒有安裝,可以使用以下命令進行安裝:
sudo yum install -y mongodb-org
編輯MongoDB配置文件 /etc/mongod.conf
,確保以下配置項正確設置:
# MongoDB Configuration File
storage:
dbPath: /var/lib/mongo
journal:
enabled: true
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
net:
port: 27017
bindIp: 0.0.0.0 # 綁定所有IP地址
replication:
replSetName: rs0 # 復制集名稱
啟動MongoDB服務并設置開機自啟:
sudo systemctl start mongod
sudo systemctl enable mongod
連接到MongoDB實例并初始化復制集:
mongo --host <hostname> --port 27017
在Mongo shell中執行以下命令:
rs.initiate(
{
_id: "rs0",
members: [
{ _id: 0, host: "<hostname>:27017" },
{ _id: 1, host: "<hostname>:27018" },
{ _id: 2, host: "<hostname>:27019" }
]
}
)
將 <hostname>
替換為你的主機名或IP地址,并確保每個節點的端口號不同。
在Mongo shell中執行以下命令來驗證復制集的狀態:
rs.status()
你應該看到復制集的成員列表及其狀態。
你可以根據需要添加更多的副本集成員或重新配置現有的成員。例如,添加一個新的副本集成員:
rs.add("<hostname>:27020")
或者移除一個副本集成員:
rs.remove("<hostname>:27018")
你可以使用MongoDB的監控工具來監控復制集的狀態和性能。例如,使用 mongostat
和 mongotop
工具:
sudo yum install -y mongodb-org-shell
mongostat
mongotop
確保你的防火墻允許MongoDB的端口(默認是27017)通信:
sudo firewall-cmd --zone=public --add-port=27017/tcp --permanent
sudo firewall-cmd --reload
如果你的系統啟用了SELinux,可能需要配置SELinux以允許MongoDB的網絡通信:
sudo setsebool -P mongod_can_network on
完成以上步驟后,你就成功地在CentOS上搭建了一個MongoDB復制集。