MongoDB架构——sharding分片
来源:互联网 发布:c语言在线编译运行 编辑:程序博客网 时间:2024/05/24 16:14
这是一种将海量数据水平扩展的数据库集群系统,数据分表存储在sharding各个节点上,用户通过简单的配置可以完成一个分布式MongoDB集群。MongoDB的数据分块称为chunk,每个chunk都是Collection中一段连续的数据记录,最大尺寸200MB,超出则生成新的数据块。
一.MongoDB中的自动分片
分片就是将集合分成多个小块。在分片前需要运行一个路由进程,名为mongos。这个进程知道知道数据具体的存放分片所以需要连接mongos来发送请求
二.片键
设置分片时,需要从集合中选择一个键,作为拆分数据的依据,称为片键。
三.建立分片
建立一个片,需要以下3种角色:
- 1.Shard Server
是存储实际数据的分片,每个Shard可以是一个MongoDB实例,也可以是一组复制集。建议是复制集,这样可以很好实现auto-failover
- 2.Config Server
存储所有Shard节点的配置信息、每个Chunk的Shard Key范围、Chunk在各个Shard的分布情况、该集群中所有DB和集合的sharding配置信息
- 3.mongos
客户端接入Shard的一个前端路由,mongos回去访问Config Servers需要到哪个Shard上操作,然后再连接Shard,最后返回给客户端。
1.启动Config Server配置服务器
首先要启动配置服务器和mongos。其中配置服务器必须先启动
2.启动mongos路由
3.启动Shard Server服务器
启动片(Shard Server),是普通的实例
4.配置Sharding
使用shell登录到mongos,添加shard节点,并打开test数据库和personalinfo集合的分片功能:
代码说明:
db.runCommand({addshard:”localhost:20000”}):添加片
db.runCommand({enablesharding:”test”}):设置分片储存的数据库
db.runCommand({shardcollection:”test.personlinfo”,key:{_id:1}}):设置分片的集合名称,必须制定Shard Key,系统会自动创建索引
5.验证Sharding工作
按命令出现上图则表示分片处理成功。
四.管理维护Sharding
1.列出所有Shard Server:
注意一定要在admin下查看才可以
2.查看Sharding信息
printShardingStatus可以查看Sharing的详细信息
3.判断是否是Sharding
>db.runCommand({isdbgird:1})
不再赘述
4.对现有集合进行Sharding
对未分片的test.users进行分片处理:
>use admin>db.runCommand({shardcollection:"test.users",key:{_id:1}})
5.新增Shard Server
启动一个新的Shard Server进程:
>mongod --shardsvr --port=20002 --dbpath=..... --logpath=.... --directoryperdb//将新启动的Shard Server加入到集群:>mongo admin --port=40000>db.runCommand({addshard:"localhost:20002"})//可用printShardingStatus()查看
6.移除Shard Server
>db.runCommand({"removeshard":"localhost:20002"})
**小结:
对于写入负载比较大时,片键至关重要,键值变化较大的健作为片键为好**
- MongoDB架构——sharding分片
- mongodb—分片(sharding)
- MongoDB架构——复制集+sharding分片体
- 30分钟学MongoDB系列——分布式架构分片(Sharding)篇
- Nosql Mongodb之旅(27)—MongoDB Sharding分片
- mongodb的sharding(分片)
- MongoDB---Sharding分片
- MongoDB Sharding 分片技术
- MongoDB之Sharding 分片
- Mongodb Sharding 分片
- MongoDB Sharding分片管理
- MongoDB Sharding 分片技术
- mongodb-sharding 分片
- MongoDB 分片(Sharding)
- Mongodb Replica Sets + Sharding 分片集群架构部署
- MongoDB分片实战(二):Sharding
- mongodb sharding cluster(分片集群)
- MongoDB 自动分片 auto sharding
- 第五次作业:开源项目“网页正文提取”的理解
- 进程退出后,malloc分配的资源会被系统回收
- 如何优化软件发布延迟问题?
- Oracle变量定义的三种方式(define,variable,declare)学习笔记
- POJ 2823 Sliding Window(单调队列)
- MongoDB架构——sharding分片
- Linux中more的用法详解
- 一张图看懂surface框架
- ajax核心技术---XMLHttpRequset对象的使用
- EditText不自动弹出软键盘
- OpenCV之十一 形态学图像处理(二):开运算、闭运算、形态学梯度、顶帽、黑帽合辑
- uva573 The Snail
- 2015再谈游戏同步
- uva846 Steps