在CentOS上配置MongoDB復制集(Replica Set)可以提供高可用性和數據冗余。以下是一個基本的步驟指南,幫助你在CentOS上配置MongoDB復制集。
在每個節點上編輯MongoDB配置文件(通常是/etc/mongod.conf),添加或修改以下內容:
replication:
replSetName: "rs0" # 復制集名稱
在每個節點上啟動MongoDB服務:
sudo systemctl start mongod
sudo systemctl enable mongod
連接到任意一個MongoDB實例,并初始化復制集。假設你的MongoDB實例運行在localhost:27017:
mongo --host localhost --port 27017
在mongo shell中執行以下命令來初始化復制集:
rs.initiate(
{
_id: "rs0",
members: [
{ _id: 0, host: "node1:27017" },
{ _id: 1, host: "node2:27017" },
{ _id: 2, host: "node3:27017" }
]
}
)
將node1, node2, node3替換為你的實際節點主機名或IP地址。
在mongo shell中執行以下命令來驗證復制集的狀態:
rs.status()
你應該能看到復制集中所有成員的狀態信息。
你可以設置每個節點的優先級,以控制哪個節點成為主節點:
cfg = rs.conf()
cfg.members[0].priority = 2
cfg.members[1].priority = 1
cfg.members[2].priority = 1
rs.reconfig(cfg)
如果你希望復制集中的通信更加安全,可以啟用隱私模式:
rs.initiate(
{
_id: "rs0",
members: [
{ _id: 0, host: "node1:27017", priority: 2 },
{ _id: 1, host: "node2:27017", priority: 1 },
{ _id: 2, host: "node3:27017", priority: 1 }
],
settings: {
privacy: true
}
}
)
如果你啟用了認證,需要在初始化復制集時提供用戶名和密碼:
rs.initiate(
{
_id: "rs0",
members: [
{ _id: 0, host: "node1:27017", priority: 2, auth: { user: "admin", pwd: "password" } },
{ _id: 1, host: "node2:27017", priority: 1, auth: { user: "admin", pwd: "password" } },
{ _id: 2, host: "node3:27017", priority: 1, auth: { user: "admin", pwd: "password" } }
]
}
)
通過以上步驟,你可以在CentOS上配置一個基本的MongoDB復制集。根據你的需求,你可以進一步調整優先級、隱私模式和認證設置。確保在生產環境中使用適當的認證和加密措施來保護你的數據。