MongoDB 分片

1.建立分片

建立分片有两步:启动实际的服务器,然后决定怎么切分数据。

分片一般会有3个组成部分:

片:就是保存子集合数据的容器。片可是单个的mongod服务器,也可以是副本集。所以即便一片内有多台服务器,也只能有一个主服务器,其他的服务器保存相同的数据。

mongos:就是MongoDB各版本中都配的路由器进程。它路由所有请求,然后将结果聚合。它本身并不存储数据或者配置信息(但会缓存配置服务器的信息)。

配置服务器:配置服务器存储了集群的配置信息:数据和片的对应关系。monogs不永久存放数据,所以需要个地方存放分片配置。它会从配置服务器获取同步数据。

1.1启动服务器

mongod --dbpath F:\mongodb\dbs\config --port 20000

1.2建立mongos进程

mongos --port 30000 --configdb localhost:20000

1.3添加片

片就是普通的mongod实例或者副本集

mongod.exe --dbpath F:\mongodb\dbs\shard1 --port 10000

连接刚才启动的mongos为集群添加一个片。

mongo localhost:30000/admin

> db.runCommand({"addshard":"localhost:10000",allowLocal:true})
{ "shardAdded" : "shard0000", "ok" : 1 }

2.切分数据

MongoDB不会将存储的每一条数据都直接发布,得先在数据库和集合的级别将分片功能打开。

> db.runCommand({"enablesharding":"foo"})
{ "ok" : 1 }
开启foo的分片功能.

> db.runCommand({"shardcollection":"foo.bar","key":{"_id":1}})
{ "collectionsharded" : "foo.bar", "ok" : 1 }

开启集合上的分片功能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值