mongodb伪分布式
时间: 2024-12-27 16:28:38 浏览: 5
### 配置 MongoDB 伪分布式集群
#### 创建必要的文件夹和配置文件
为了构建一个伪分布式的MongoDB环境,首先需要创建用于存储数据库文件、日志和其他必要资源的文件夹。对于每一个节点——无论是作为分片(shard)的一部分还是作为一个配置服务器(config server),都需要有独立的数据路径。
```bash
mkdir -p /data/shard1/db /data/shard1/logs \
/data/shard2/db /data/shard2/logs \
/data/configdb/db /data/configdb/logs
```
上述命令会为两个分片及一个配置服务器分别准备相应的目录结构[^3]。
#### 启动分片集成员
针对每个分片实例,在不同的端口上运行`mongod`服务,并通过参数指明其角色:
```bash
mongod --shardsvr --port 27018 --dbpath /data/shard1/db --logpath /data/shard1/logs/shard1.log --port 27019 --dbpath /data/shard2/db --logpath /data/shard2/logs/shard2.log --fork --smallfiles &
```
这里使用了`--shardsvr`选项来表明这些实例属于分片架构中的部分;而`--fork`则让它们以后台模式执行[^4]。
#### 设置配置服务器
配置服务器负责保存有关整个集群元数据的信息。同样地,也需要单独启动这个组件:
```bash
mongod --configsvr --replSet configReplSet --port 27020 --dbpath /data/configdb/db --logpath /data/configdb/logs/configserver.log --fork &
```
注意这里的`--configsvr`标志表示这是一个配置服务器实例,同时加入了副本集设置以增强可靠性[^5]。
#### 初始化副本集并添加分片
一旦所有的基础组件都已经成功启动之后,则可以通过连接到任意一台机器上的`mongo shell`来进行初始化操作:
```javascript
// 连接到第一个分片
mongo --host localhost --port 27018
rs.initiate()
// 对于第二个分片也做同样的事情...
mongo --host localhost --port 27019
rs.initiate()
```
接着向其中一个分片发起请求加入新的分片至集群中:
```javascript
// 使用默认端口连接到任一mongos路由器
use admin;
sh.addShard("localhost:27018");
sh.addShard("localhost:27019");
```
最后一步是确保至少有一个活动的状态良好的配置服务器存在以便完成注册过程[^1]。
#### 启动路由节点 (mongos)
为了让应用程序能够访问由多个分片组成的大型集合体,还需要部署一个或更多个`mongos`进程充当查询协调者:
```bash
mongos --configdb configReplSet/localhost:27020 --logpath /var/log/mongodb/mongos.log --fork &
```
此命令设置了指向之前提到过的配置服务器地址列表,并开启了日志记录功能。
---
阅读全文