数据库

 首页 > 数据库 > MongoDB > MongoDB数据库集群分片技术介绍

MongoDB数据库集群分片技术介绍

分享到:
【字体:
导读:
         摘要:一、分片分片就是对数据库中的数据进行拆分保存在不同机器上;分片包括手动分片和自动分片;MongoDB则支持自动分片;二、mongosMongoDB需要路由进程mongos,mongos知道所有数据的存放位置,应用连接mongos发送请求.mongos对应用隐藏分片细节,将请求转发到相...

MongoDB数据库集群分片技术介绍

一、分片

分片就是对数据库中的数据进行拆分保存在不同机器上;

分片包括手动分片和自动分片;

MongoDB则支持自动分片;

二、mongos

MongoDB需要路由进程mongos,mongos知道所有数据的存放位置,应用连接mongos发送请求.mongos对应用隐藏分片细节,将请求转发到相应数据库机器;

三、片键

1.片键是作为数据拆分的依据,MongoDB依据片键将数据拆分;

根据机器的数量的添加和删除,MongoDB会重新平衡数据,使的其流量比较均衡;

2.片键种类

片键包括递增片键和随机片键;

像"timestamp"就属于递增片键,特点是数据写入将集中在一台服务器、而数据的查询速度非常快;

片键的选择将影响对数据查询的操作

四、建立分片

分片包括三个组成部分,分别是:片、mongos、配置服务器;

片:集合数据容器

mongos:路由器进程

配置服务器:存储集群配置信息

1.启动配置服务器

mkdir -p ~/dbs/config
./mongod --dbpath ~/dbs/config --port 20000

2.启动配置服务器

./mongos --port 3000 --configdb localhost:20000

3.创建分片

mkdir -p ~/dbs/db1
./mongod --dbpath ~/dbs/shard1 --port 10000

4.添加片

连接mongos

./mongo localhost:30000/admin

通过addshard命令添加片(allowLocal允许配置在本地)

db.runCommand({addshard:"localhost:10000",allowLocal:true})
{
     "added":"localhost:10000",
     "ok":true
}

5.切分数据库will的test集合

首先开启will数据库的分片功能

db.runCommand({"enablesharding":"will"})

再对集合分片(以_id为基准)

db.runCommand({"shardcollection":"will.test","key":{"_id":1}})

五、保证集群的健壮性

1.多配置服务器

方法:重复配置服务器创建步骤;

     启动mongos时 ./mongos --configdb localhost:20001,localhost:20002

2.多mongos进程

方法:多启动

3.数据的容错性

方法:创建数据副本

六、管理分片

1.查看片

2.查看在片上的数据库列表信息

结果中:

_id:数据库名

partitioned:是否启用分片

primary:数据库大本营

3.块信息查看

MongoDB数据库集群分片技术介绍
分享到:
MongoDB数据库的Auto-Sharding使用教程
MongoDB数据库的Auto-Sharding使用教程 MongoDB是10gen团队开发的一款面向文档的NoSQL数据库。最近一年多以来,MongoDB被越来越多的大型网站应用到生产环境中,比较著名的有Foursquare, bit.ly, SourceForge, Boxed等。MongoDB提供了Auto-Sharding功能,使用者通过简单的配置就可以很方便地构建一个分布式MongoDB集群。 ...
MongoDB利用rs实现ha和备份
MongoDB利用rs实现ha和备份 mongodb最简单的部署方式,是单节点部署。国庆前找了台8核,48G RAM的server,在100+并发的压力下跑了一个星期,也没有发现数据丢失和server负载过大的情况 但是单节点部署还是有一些问题,第一是无法做HA,如果该mongod down掉,或者部署的server down掉,应用就无法工作;第二是不利于备份...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……