MongoDB分片集群详解与部署
以下是一个MongoDB分片集群的简化版部署指南,包括配置分片、配置复制组和启动路由进程。
# 1. 配置分片
# 在 shard1 上操作
mongod --shardsvr --dbpath /data/db1 --port 27018
# 在 shard2 上操作
mongod --shardsvr --dbpath /data/db2 --port 27019
# 2. 配置复制组
# 在 shard1 的复制组上操作
mongod --shardsvr --dbpath /data/db1_rs1 --port 27018 --replSet shard1_rs
mongod --shardsvr --dbpath /data/db2_rs1 --port 27019 --replSet shard2_rs
# 初始化复制组
mongo --port 27018
> rs.initiate({_id: "shard1_rs", members: [{_id: 0, host: "localhost:27018"}]})
> rs.add("localhost:27019")
# 3. 配置配置服务器
mongod --configsvr --dbpath /data/config --port 27017
# 4. 配置复制组
mongod --configsvr --dbpath /data/config_rs1 --port 27017 --replSet config_rs
mongod --configsvr --dbpath /data/config_rs2 --port 27017 --replSet config_rs
# 初始化复制组
mongo --port 27017
> rs.initiate({_id: "config_rs", members: [{_id: 0, host: "localhost:27017"}]})
> rs.add("localhost:27017")
# 5. 配置路由服务器
mongos --configdb localhost:27017 --port 27017
# 6. 将分片和路由添加到集群
mongo --port 27017
> sh.addShard("shard1_rs/localhost:27018")
> sh.addShard("shard2_rs/localhost:27019")
# 7. 配置数据库分片
> db.runCommand({enableSharding: "mydb"})
# 8. 分片集合
> sh.shardCollection("mydb.mycollection", {"myfield": 1})
这个例子展示了如何配置分片、复制和路由,以及如何将分片添加到集群并对数据库进行分片。这是一个简化的流程,实际部署时需要考虑安全性、性能和高可用性等因素。
评论已关闭