配置CentOS MongoDB的復制集涉及幾個步驟,包括設置MongoDB實例、配置復制集參數以及啟動復制集。以下是一個基本的指南:
首先,確保你已經在CentOS上安裝了MongoDB。你可以使用以下命令來安裝MongoDB:
sudo yum install -y mongodb-org
安裝完成后,啟動MongoDB服務并設置開機自啟動:
sudo systemctl start mongod
sudo systemctl enable mongod
為了創建復制集,你需要至少三個MongoDB實例。每個實例可以運行在不同的服務器上,或者在同一個服務器上使用不同的端口。以下是一個示例配置文件 /etc/mongod.conf:
storage:
dbPath: /var/lib/mongo
journal:
enabled: true
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
net:
port: 27017
bindIp: 127.0.0.1,your_server_ip
storage:
dbPath: /var/lib/mongo
journal:
enabled: true
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
net:
port: 27018
bindIp: 127.0.0.1,your_server_ip
storage:
dbPath: /var/lib/mongo
journal:
enabled: true
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
net:
port: 27019
bindIp: 127.0.0.1,your_server_ip
使用配置文件啟動每個MongoDB實例:
sudo mongod --config /etc/mongod.conf
連接到其中一個MongoDB實例并初始化復制集。假設你連接到第一個實例(端口27017):
mongo --port 27017
在mongo shell中執行以下命令來初始化復制集:
rs.initiate(
{
_id: "rs0",
members: [
{ _id: 0, host: "your_server_ip:27017" },
{ _id: 1, host: "your_server_ip:27018" },
{ _id: 2, host: "your_server_ip:27019" }
]
}
)
在mongo shell中執行以下命令來驗證復制集的狀態:
rs.status()
你應該看到所有成員的狀態都是SECONDARY或PRIMARY,并且復制集已經成功初始化。
你可以配置每個成員的優先級,以控制哪個成員成為Primary。例如,設置第一個實例的優先級為2,第二個和第三個實例的優先級為1:
cfg = rs.conf()
cfg.members[0].priority = 2
cfg.members[1].priority = 1
cfg.members[2].priority = 1
rs.reconfig(cfg)
你可以配置隱藏節點和延遲節點來滿足特定的需求。例如,創建一個延遲3600秒的延遲節點:
cfg = rs.conf()
cfg.members.push(
{
_id: 3,
host: "your_server_ip:27020",
priority: 0,
hidden: true,
slaveDelay: 3600
}
)
rs.reconfig(cfg)
通過以上步驟,你應該能夠在CentOS上成功配置MongoDB的復制集。