您的位置:首页 > 数据库 > Mongodb

mongDB分片

2016-09-01 14:47 155 查看

一、MongoDB分片介绍

1). 什么是分片?

  分片:是将数据进行拆分,将数据水平分散到不同的服务器上

user_id 数据库一线表里字段名



2).为什么要分片?

  架构上:读写均衡,去中心化

  结构上:12点节点(version<=2.6)

  硬件上:内存,硬盘容量限制

3).mongodb分片技术适用场景

 什么时候考虑分片

  硬盘,内存存在限制,或者faults使用比较多,读取性能下降

4).分片、副本级集群对比



二、搭建一个MongoDB分片集群

2-1.分片成员节点介绍并启动

  1).Shard节点:存储数据的节点(单个mongodb或者副本集)

  2).Config server: 存储元数据,为mongos服务,将数据路由到Shard

  3).Mongos: 接入前端请求,进行对应消息路由

为了方便用命令启动,也可以用配置文件

# 启动Shard 关键是mongod --shardsvr,或者mongod --shardsvr --rpelSet 副本集
changwen@ubuntu:~$ sudo /usr/local/mongoDB/bin/mongod  --shardsvr --logpath=/usr/local/mongoDB/logs/28004.log --logappend --dbpath=/usr/local/mongoDB/data/db/28004/ --fork --port 28004

# 启动Config server类似,启动时mongod --configsvr
changwen@ubuntu:~$ sudo /usr/local/mongoDB/bin/mongod  --configsvr --logpath=/usr/local/mongoDB/logs/28005.log --logappend --dbpath=/usr/local/mongoDB/data/db/28005/ --fork --port 28005

# 启动Mongos,monos --configdb<configdb server>
changwen@ubuntu:~$ sudo /usr/local/mongoDB/bin/mongos --port 28004 --logappend --logpath=/usr/local/mongoDB/logs/mongos.log --configdb 192.168.23.129:28005 --fork

2-2.添加分片

添加分片过程

  1).连接到mongos
  2).Add Shards

  3).Enable Sharding
  4).对一个集合进行分片

步骤二、Add Shards

  1).单个数据库实例 :

   {addShard:"<hostname><:port>",maxSize:<size>,name:"<shard_name>"}  

  2).副本集群:

    {addShard:"<replica_set>/<hostname><:port>",maxSize:<size>,name:"<shard_name>"}

  3).如果你的mongos和shard在同一台机器上,添加分片不能使用“localhost”,建议用ip

步骤四、对一个集合进行分片

  1).db.runCommand({shardollecction:"<namespace>",key:"<key>"})

  2).unique:"true/false" 启动对shard key的唯一性约束

  3).shard key(片键)选择
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mongodb 分片