mongodb 分片 windows
时间: 2025-01-08 14:45:16 浏览: 56
### 设置 MongoDB 分片集群
#### 准备工作
为了确保分片集群能够正常运行,在开始之前需确认已安装并配置好多个MongoDB实例。对于Windows环境而言,可以通过命令`net start MongoDB27021 net start MongoDB27022 net start MongoDB27023 net start MongoDB27031 net start MongoDB27032 net start MongoDB27033`来启动所需的服务[^1]。
#### 创建配置服务器副本集
由于在MongoDB 3版本之后,配置服务器必须作为副本集的一部分来部署,因此需要先建立一个三节点的配置服务器副本集。这一步骤至关重要,因为后续所有的元数据都将保存在此处[^5]。
```shell
mongod --configsvr --replSet configReplSet --dbpath C:\data\configdb --port 27019 --logpath "C:\Program Files\MongoDB\Server\<version>\Log\ConfigSvr.log" --install --serviceName "MongoDBConfig"
```
完成上述操作后,利用`rs.initiate()`初始化该副本集,并验证其状态。
#### 启动Shard节点
接下来分别启动各个shard成员,这里假设每个shard由三个replica组成:
```shell
mongod --shardsvr --replSet shard0 --dbpath C:\data\db\shard0\a --port 27018 --logpath "C:\Program Files\MongoDB\Server\<version>\Log\Shard0A.log" --install --serviceName "MongoDBShard0a"
mongod --shardsvr --replSet shard0 --dbpath C:\data\db\shard0\b --port 27019 --logpath "C:\Program Files\MongoDB\Server\<version>\Log\Shard0B.log" --install --serviceName "MongoDBShard0b"
mongod --shardsvr --replSet shard0 --dbpath C:\data\db\shard0\c --port 27020 --logpath "C:\Program Files\MongoDB\Server\<version>\Log\Shard0C.log" --install --serviceName "MongoDBShard0c"
```
重复以上步骤为其他shard创建相应的服务。
#### 初始化路由进程(Mongos)
最后一步是设置mongos路由器,它负责协调客户端请求与实际的数据分布情况之间的交互:
```shell
mongos --configdb configReplSet/localhost:27019,localhost:27020,localhost:27021 --logpath "C:\Program Files\MongoDB\Server\<version>\Log\Mongos.log" --install --serviceName "MongoDBMongos"
```
启动mongos服务并通过命令行连接至mongos端口(默认27017),执行如下指令添加各shard以及定义合适的分片策略[^4]:
```javascript
// 添加 shards 到 mongos 路由器中
sh.addShard("shard0/mongodb-shard0-a.example.net:27018,mongodb-shard0-b.example.net:27019,mongodb-shard0-c.example.net:27020")
// 对指定集合启用分片功能
sh.enableSharding("testDatabase")
// 设定用于分片的关键字段(即片键)
sh.shardCollection("testDatabase.testCollection", {"_id": 1})
```
至此,已经完成了基于Windows平台下的MongoDB分片集群的基础构建[^2]。
阅读全文
相关推荐



















