以下是在Linux上搭建MongoDB集群的兩種常見方式(副本集和分片集群)的步驟要點:
apt
/yum
)安裝,或從官網下載二進制包解壓。/etc/mongod.conf
,關鍵參數:storage:
dbPath: /data/mongodb/db # 數據目錄
journal:
enabled: true
systemLog:
path: /var/log/mongodb/mongod.log
logAppend: true
net:
bindIp: 0.0.0.0 # 允許所有IP訪問(生產環境需限制)
port: 27017 # 端口(每個節點需唯一)
replication:
replSetName: "rs0" # 副本集名稱(所有節點一致)
sudo systemctl start mongod
sudo systemctl enable mongod
mongo --host <節點IP> --port 27017
rs.initiate({
_id: "rs0",
members: [
{ _id: 0, host: "節點1:27017" },
{ _id: 1, host: "節點2:27017" },
{ _id: 2, host: "節點3:27017" }
]
})
rs.status() // 查看主從節點狀態
rs.add("新節點IP:27017")
配置服務器(副本集):
mongod.conf
,指定replSetName: configRs
和sharding.clusterRole: configsvr
。mongod -f config-1.conf # 重復3個節點
rs.initiate({ _id: "configRs", members: [...] })
分片服務器(副本集):
replSetName: shardXRs
(如shard1Rs
)和sharding.clusterRole: shardsvr
。Mongos路由:
mongos.conf
,指定configDB: configRs/節點1:27019,節點2:27019,節點3:27019
。mongos -f mongos.conf
mongo --host <mongos-IP> --port 27017
sh.addShard("shard1Rs/節點4:27001,節點5:27001,節點6:27001")
sh.enableSharding("mydb")
sh.shardCollection("mydb.users", { "_id": "hashed" }) // 按ID哈希分片
sh.status()
security.authorization: enabled
)和密鑰文件(keyFile
)。mongostat
、mongotop
等工具監控集群狀態,定期備份數據。詳細步驟可參考官方文檔:MongoDB副本集文檔、分片集群文檔。