在CentOS上配置MongoDB分片集群涉及多個步驟,包括設置配置服務器、分片服務器和路由服務器(mongos)。以下是一個基本的指南:
確保你已經安裝了MongoDB,并且所有節點都可以通過網絡互相通信。
配置服務器存儲集群的元數據。
啟動配置服務器:
mongod --configsvr --replSet <configReplSetName> --dbpath /data/configdb --port 27019
其中,<configReplSetName>
是你配置服務器的副本集名稱。
初始化配置服務器副本集: 連接到其中一個配置服務器:
mongo --port 27019
在mongo shell中執行:
rs.initiate(
{
_id: "<configReplSetName>",
configsvr: true,
members: [
{ _id: 0, host: "config1.example.com:27019" },
{ _id: 1, host: "config2.example.com:27019" },
{ _id: 2, host: "config3.example.com:27019" }
]
}
)
分片服務器存儲實際的數據。
啟動分片服務器:
mongod --shardsvr --replSet <shardReplSetName> --dbpath /data/db --port 27018
其中,<shardReplSetName>
是你分片服務器的副本集名稱。
初始化分片服務器副本集: 連接到其中一個分片服務器:
mongo --port 27018
在mongo shell中執行:
rs.initiate(
{
_id: "<shardReplSetName>",
members: [
{ _id: 0, host: "shard1.example.com:27018" },
{ _id: 1, host: "shard2.example.com:27018" },
{ _id: 2, host: "shard3.example.com:27018" }
]
}
)
路由服務器是應用程序和分片集群之間的接口。
mongos --configdb <configReplSetName>/<configServer1>:27019,<configServer2>:27019,<configServer3>:27019 --port 27017
其中,<configReplSetName>
是配置服務器的副本集名稱,<configServer1>
, <configServer2>
, <configServer3>
是配置服務器的主機名或IP地址。連接到mongos并添加分片:
mongo --port 27017
在mongo shell中執行:
sh.addShard("<shardReplSetName>/<shardServer1>:27018,<shardServer2>:27018,<shardServer3>:27018")
連接到mongos并啟用數據庫和集合的分片:
sh.enableSharding("<databaseName>")
sh.shardCollection("<databaseName>.<collectionName>", { <shardKey>: 1 })
其中,<databaseName>
是數據庫名稱,<collectionName>
是集合名稱,<shardKey>
是用于分片的鍵。
連接到mongos并檢查集群狀態:
sh.status()
以上步驟涵蓋了在CentOS上配置MongoDB分片集群的基本過程。根據實際需求,你可能需要調整配置,例如增加更多的分片、配置副本集等。確保在生產環境中進行充分的測試和監控。