mongodb 学习笔记 09 -- shard分片
概述
shard 分片 就是 把不同的数据分在不同的server
模型
当中:
用户对mongodb的操作都是向mongs请求的
configsvr 用于保存,某条数据保存在哪个shard的上
怎样使用分片
先启动2个节点作为shard
mongd --dbpath ~/db/mongo1/databse --logpath ~/db/mongo1/log/mongo.log --port 27017 --fork --smallfiles
mongd --dbpath ~/db/mongo2/databse --logpath ~/db/mongo2/log/mongo.log --port 27018 --fork --smallfiles
启动 configsvr。就是比前面的多加了 –configsvr
mongd --dbpath ~/db/mongo3/databse --logpath ~/db/mongo3/log/mongo.log --port 27019 --fork --smallfiles --configsvr
启动mongos,注意–configdb 指定configsvr
mongos --logpath ~/db/mongo4/log/mongs.log --port 27020 --configdb 127.0.0.1:27020 --fork
连到mongos
mongo --port 27020
把前面执行的2个节点,加入进来
sh.addShard("127.0.0.1:27017")
sh.addShard("127.0.0.1:27018")
查看状态
sh.status()
定义分片规则:比方 先声明test库能够分片,然后定义根据my表的my_id来分片
sh.enableSharding('test')
sh.shardCollection('test.my',{'my_id':1})
分片原理
n篇文档,形成一个“chunk”,先放到某个shard上,当这片shard的上的chunk数。比其他shard上的chunk数差别大时,就移动chunk到还有一个shard上。
改动chunk的大小:比方改动到4m
默认某个chunk的大小是64m
use config
db.setting.save({_id:'chunksize',value:4m})
手动预先分片
前面的分片方法中,根据chunk数来分片,这样会带来影响IO的问题。
能够手动预制分片。比如定义my_id 0~1000 放在shard1中,1001~2000 放在shard2中,2001~3000 中放在shard3中
sh.enableSharding('test')
sh.shardCollection('test.my',{'my_id':1})
sh.splitAt('my',{my_id:1000})
sh.splitAt('my',{my_id:2000})
sh.splitAt('my',{my_id:3000})
mongodb 学习笔记 09 -- shard分片的更多相关文章
- MongoDB学习笔记九:分片
分片(sharding)是指将数据拆分,将其分散存在不同的机器上的过程.有事也用分区(partitioning)来表示这个概念.将数据分散到不同的机器上,不需要功能强大的大型计算机既可以存储更多的数据 ...
- MongoDB学习笔记(六)--复制集+sharding分片 && 总结
复制集+sharding分片 背景 主机 IP 服务及端口 Server A ...
- MongoDB学习笔记(五)--复制集 && sharding分片
主从复制 主从节点开启 主节 ...
- mongoDB 学习笔记纯干货(mongoose、增删改查、聚合、索引、连接、备份与恢复、监控等等)
最后更新时间:2017-07-13 11:10:49 原始文章链接:http://www.lovebxm.com/2017/07/13/mongodb_primer/ MongoDB - 简介 官网: ...
- MongoDB学习笔记(四)--索引 && 性能优化
索引 基础索引 ...
- MongoDB学习笔记(1):MongoDB的安装和说明
MongoDB学习笔记(1):MongoDB的安装和说明 快速开始 下载地址 官网下载: https://www.mongodb.com/download-center?jmp=nav#communi ...
- MongoDB学习笔记:MongoDB 数据库的命名、设计规范
MongoDB学习笔记:MongoDB 数据库的命名.设计规范 第一部分,我们先说命名规范. 文档 设计约束 UTF-8 字符 不能包含 \0 字符(空字符),这个字符标识建的结尾 . 和 $ ...
- MongoDB学习笔记:快速入门
MongoDB学习笔记:快速入门 一.MongoDB 简介 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统.在高负载的情况下,添加更多的节点,可以保证服务器性能.M ...
- MongoDB学习笔记系列
回到占占推荐博客索引 该来的总会来的,Ef,Redis,MVC甚至Sqlserver都有了自己的系列,MongoDB没有理由不去整理一下,这个系列都是平时在项目开发时总结出来的,希望可以为各位一些帮助 ...
随机推荐
- xcode 升级插件失效问题
摘要 Xcode 升级到7之后VVDocumenter-Xcode,OMColorSense,KSImageNamed等一系列的插件失效的解决办法,以及不小心误点了 Skipbundle 的解决办法 ...
- IP,TCP,UDP Checksum校验
IP数据报的校验: IP数据报只需要对数据头进行校验,步骤如下: 将接收到的数据的checksum字段设置为0 把需要校验的字段的所有位划分为16位(2字节)的字 把所有16位的字相加,如果遇到进位, ...
- 转:我们是否应该把后端构建为API
原文来自于:http://www.infoq.com/cn/news/2015/07/api-or-not 不久前,在StackExchange网站上,一位名为SLC的用户提起他正在设计一个ASP.N ...
- NCPC 2012 Cookie Selection
题目要求每次输出中间的那个数,如果数据很大肯定扛不住: 所以用两个优先队列来维护: 这样的话中间的那个数反正会在两个队列的任何一个的头部: 时间复杂度肯定比较小: 代码: #include <c ...
- linux解压cpio.gz类型文件
1. gunzip XXX.cpio.gz –> 得到 XXX.cpio 文件 2. cpio -idmv <XXX.cpio –> 得到 XXX 文件夹
- CSS六大选择器(注释css表里不能加注释!!)
@charset "utf-8"; /* CSS Document */ <!--标签控制器--> body{ background-color:#F00} <! ...
- Unity3D-基本导航(NavMesh)功能实现
1: 打开场景 2:打开Navgation窗口 菜单中: Window --> Navgation, 在Inspector旁边会出现导航界面 这个Objcet的面板是对应当前选择的物体的,旁边的 ...
- Android模拟器——Genymotion
还在用Android原生模拟器?向你推荐一款全方位把Android原生模拟器秒成渣渣的神器:Genymotion! 需要理由? 性能卓越作为历史上最快的Android模拟器(没有之一),秒级开机关机速 ...
- 英语之路 zt
各位为英语而郁闷的兄弟姐妹们: 自从考完GRE和TOEFL以后,心有所感,本想写点心得,但是因为太懒没写成.今日风雨如晦,心中又有所感,于是一舒笔墨,写下我学英语的方法.俺知道有很多兄弟姐妹们和曾经的 ...
- [App]Xamarin学习资料收集
在博客园其实有很多朋友都在介绍Xamarin的使用方法,下面是比较活跃的一些: http://www.cnblogs.com/yaozhenfa/