在Ubuntu上搭建MongoDB集群涉及多個步驟,包括安裝MongoDB、配置復制集、分片服務器、配置服務器和路由服務器(mongos)。以下是一個詳細的部署方案:
首先,在所有節點上安裝MongoDB??梢允褂靡韵旅睿?/p>
sudo apt update
sudo apt install -y mongodb-org
在每個節點上編輯MongoDB配置文件(通常是 /etc/mongod.conf
),添加或修改以下內容:
net:
port: 27017
bindIp: 0.0.0.0
replication:
replSetName: rs0
啟動MongoDB服務:
sudo systemctl start mongod
在每個節點上重啟MongoDB服務以應用配置更改:
sudo systemctl restart mongod
連接到任意一個MongoDB實例并初始化復制集:
mongo --host <node_ip> --port 27017
在Mongo shell中執行以下命令:
rs.initiate({
_id: "rs0",
members: [
{ _id: 0, host: "<node1_ip>:27017" },
{ _id: 1, host: "<node2_ip>:27017" },
{ _id: 2, host: "<node3_ip>:27017" }
]
})
驗證復制集狀態:
rs.status()
在每個分片服務器上安裝MongoDB并初始化副本集:
mongo --host shard-server1:27017
rs.initiate({
_id: "rs0",
members: [
{ _id: 0, host: "shard-server1:27017" },
{ _id: 1, host: "shard-server2:27017" },
{ _id: 2, host: "shard-server3:27017" }
]
})
配置分片服務器:
mongo --host mongos:27017
sh.enableSharding("database")
sh.shardCollection("database.collection", { "field" : 1 })
在每個配置服務器上安裝MongoDB并初始化副本集:
mongo --host config-server1:27017
rs.initiate({
_id: "cfgReplSet",
configsvr: true,
members: [
{ _id: 0, host: "config-server1:27017" },
{ _id: 1, host: "config-server2:27017" },
{ _id: 2, host: "config-server3:27017" }
]
})
在每個mongos實例上安裝MongoDB:
sudo apt update
sudo apt install -y mongodb-org
配置mongos:
mongo --host mongos:27017
sh.addShard("shard-server1:port,shard-server2:port,shard-server3:port")
sh.addConfigServer("config-server1:port,config-server2:port,config-server3:port")
sh.enableSharding("database")
檢查分片狀態:
mongo --host mongos:27017 sh.status()
檢查配置服務器狀態:
mongo --host mongos:27017 sh.status("configsvr")
使用MongoDB的監控工具(如MongoDB Atlas、MongoDB Compass等)來監控集群的健康狀態。定期檢查和維護分片服務器、配置服務器和路由服務器。
以上步驟提供了一個基本的MongoDB集群搭建流程,具體配置可能會根據實際需求和環境有所不同。建議參考MongoDB官方文檔進行詳細配置。