mongDB分片

来源:互联网 发布:淘宝限时促销关键词 编辑:程序博客网 时间:2024/05/20 05:55

一、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 --configsvrchangwen@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(片键)选择











0 0
原创粉丝点击