MongoDB 分片

 分片 sharding

  分片是指将数据拆分,将起分散到不同服务器的过程.,将数据分散到不同的服务器上,可以存储更多的数据,处理更大的负载

  MongoDB分片机制允许你创建一个包含许多服务器(分片)的集群,将子数据分散在集群中.每个分片维护着一个数据集合的子集,相比单服务器和副本集,分片具备更好的处理能力.整个集群对于应用服务器来说像是只有一台单机的服务器.为了实现这样操作,我们需要在分片前先执行mongos 进行一次路由操作.整个路由服务器维护这一个"内容列表",指明了每个分片包含的数据,应用服务器请求数据时,路由服务器根据请求内容将请求内容转发到相应的分片,分片收到相应将请求的数据发送给路由服务器,返回给应用程序.

  分片的用途

1.增加可用RAM

2.增加可用的磁盘空间

3.增加服务器的负载能力

1.配置服务器

配置服务器是普通的mongod服务器,它保存集群的配置信息:1.集群中有那些分片2.分片有那些集合3.数据块的分布


mongod --configsvr --dbpath="服务器路径" --port 端口号
不论是开启还是创建配置服务器都要执行如下操作,然后再启动mongos进程供应用程序链接
例如:
mongod --configsvr --dbpath="C:\mock mongodb sever\server1" --port 27030

mongod --configsvr --dbpath="C:\mock mongodb sever\server2" --port 27031

mongod --configsvr --dbpath="C:\mock mongodb sever\server3" --port 27031

如下图:

MongoDB 分片_第1张图片


MongoDB 分片_第2张图片


MongoDB 分片_第3张图片

2.mongos进程

3个配置服务器运行之后,启动mongos 配置服务器地址,这样可用通过mongos 访问集群了

mongos --configdb serviceAddress1:port1(默认:27019),serviceAddress2:port2,serviceAddress3:port3

mongos --port 27019 --configdb 127.0.0.1:27030,127.0.0.1:27031,127.0.0.1:27032

MongoDB 分片_第4张图片

配置好服务器后.

mongo 127.0.0.1:27017

MongoDB 分片_第5张图片


创建完成之后,
将副本集作为分片添加到集群

sh.addShard("replicationTest/127.0.0.1:1111,127.0.0.1:2222,127.0.0.1:3333,127.0.0.1:4444")

MongoDB 分片_第6张图片


3.数据分片

 MongoDB不会自动对数据进行拆分,必须明确告诉数据库和集合.

 数据库启用分片 
 
sh.enableSharding("test")
对数据启用分片之后,对集合启用分片
sh.shardCollection("test.userInfo",{"username":1})
片键要建立索引



你可能感兴趣的:(MongoDB,mongodb,分片)