以下是在CentOS上部署MongoDB分片的策略,基于搜索結果整理關鍵步驟及要點:
安裝MongoDB
通過官方YUM源或手動安裝包部署,確保所有節點安裝版本一致。
sudo yum install -y mongodb-org
配置網絡與權限
/data/configdb
、/data/shard1
等),避免使用默認路徑。--configsvr
參數和副本集名稱:mongod --configsvr --replSet configReplSet --dbpath /data/configdb --port 27019
rs.initiate({
_id: "configReplSet",
configsvr: true,
members: [
{ _id: 0, host: "cfg1.example.com:27019" },
{ _id: 1, host: "cfg2.example.com:27019" },
{ _id: 2, host: "cfg3.example.com:27019" }
]
})
--shardsvr
參數和副本集名稱:mongod --shardsvr --replSet shard1ReplSet --dbpath /data/shard1 --port 27018
rs.initiate({
_id: "shard1ReplSet",
members: [
{ _id: 0, host: "shard1a.example.com:27018" },
{ _id: 1, host: "shard1b.example.com:27018" },
{ _id: 2, host: "shard1c.example.com:27018" }
]
})
mongos --configdb configReplSet/cfg1.example.com:27019,cfg2.example.com:27019,cfg3.example.com:27019 --port 27017
添加分片到集群
連接到Mongos,通過sh.addShard()
添加分片(需指定分片副本集名稱和成員):
sh.addShard("shard1ReplSet/shard1a.example.com:27018,shard1b.example.com:27018,shard1c.example.com:27018")
啟用分片
sh.enableSharding("yourDatabase")
_id
或自定義字段):sh.shardCollection("yourDatabase.yourCollection", { "shardKey": 1 })
驗證集群狀態
通過sh.status()
查看分片集群狀態,確認分片、副本集和路由信息正常。
mongostat
、mongotop
或MongoDB Atlas監控集群性能。mongodump
工具實現。以上步驟參考自,可根據實際環境調整節點數量和配置參數。