Mongo DB分片
分片,指的就是把数据拆分,将其分散到不同机器上的过程。MongoDB支持自动分片,对应用而言,好像始终和一个单机的服务器交互一样。
分片和复制
复制是让多台服务器拥有相同的数据副本,而分片是每个分片都拥有整个数据集的一个子集,且相互是不同的数据,多个分片的数据合起来构成整个数据集。
配置服务器
配置服务器就是普通的mongod服务器,保存整个集群和分片的元数据:集群中有哪些分片,分片的是哪些集合,以及数据块的分布。它极其重要,必须启用日志功能。
在大型的集群中,建议配置3台配置服务器,就足够用了。启动配置服务器的方式:
1、先创建几个存放数据的文件夹,比如在前面的dbs下面创建confdb文件夹,然后在confdb下面创建confdb1,confdb2,confdb3文件夹;
同理在前面的logs下面创建conflogs文件夹
2、然后分别启动这三个配置服务器,使用—configsvr指明是配置服务器,如下:
./mongod --configsvr --dbpath ../dbs/confdb1 --logpath ../logs/conflogs/conflog1 --fork --port
3、--configsvr默认的端口为27019,默认的数据目录为/data/configdb,可以使用--dbpath 和--port自己定义。
启动mongos进程
./mongos --configdb localhost:,localhost:,localhost: --logpath ../logs/conflogs/mongoslog --fork
将副本集转换成为分片
4、如果没有副本集,按照前面讲的创建并初始化一个;如果有一个副本集,就打开相应的服务器,把副本集运行起来
5、连接到mongos,use admin 也就是切换到使用admin的数据库
6、把副本集转换成为分片,不用把所有副本集的成员都写出来,mongos会自动检查整个副本集
sh.addShard("myrepl/127.0.0.1:20001");
7、使用sh.status() 察看状态,
8、重复步骤,创建一个新的副本集,加入到分片中来。
数据分片
9、对数据库启用分片
sh.enableSharding(“数据库名”);
10、然后指定分片的集合,还有分片的键,如果对已经存在的集合进行分片,那么指定的这个
分片键上必须有索引;如果集合不存在,mongos会自动在分片键上创建索引。例如:
sh.shardCollection("rep1.users",{"userId":});
删除分片
通常来说,不应从集群中删除分片,即使加多了,也可以留在那儿,以后会用得上,如果非要删除分片的话,可以按照如下操作:
1、首先保证均衡器是打开的,因为删除分片的时候,均衡器会负责将待删除分片的数据迁移至其它分片
2、执行removeShard命令,示例如下:
use admin 最好切换到mongos的admin数据库再操作,然后:
db.runCommand({"removeShard":"myrep2"});
如需要查看删除情况,再次执行上一条命令,直到remaining的chunks为0。
3、所有块完成转移过后,如果仍有数据库将该分片作为主分片,需要在删除分片前将这
些数据库移除掉,通常会提示:“note” : “you need to drop or movePrimary these databases”,示例如下:
db.adminCommand({"movePrimary":"mydb2","to":"myrep1"});
4:然后再次执行removeShard命令,直到状态显示completed
最新文章
- JQuery 阻止js事件冒泡 阻止浏览器默认操作
- inotify+rsync目录实时同步
- 理解extern
- hadoop namenode -format Couldn&;#39;tload main class &;quot;-Djava.library.path=.home.hadoop.hadoop-2.5.2.lib&;quot;
- 从ConcurrentHashMap的演进看Java多线程核心技术 Java进阶(六)
- 牛客小白月赛12 I (tarjan求割边)
- html5 canvas 径向渐变2
- 线程池框架executor
- Websphere设置JVM时区解决程序、日志时间快8小时问题
- create session 参数介绍
- 学习ThinkPHP笔记
- 【连接查询】mySql多表连接查询与union与union all用法
- 笔记本wifi热点设置好后,手机连上但不能上网问题
- MySQL的binlog日志恢复(转)
- JAVA 中的IO流
- CSS3及JS简单实现选项卡效果(适配手机端和pc端)
- 【题解】Casting Spells LA 4975 UVa 1470 双倍回文 SDOI 2011 BZOJ 2342 Manacher
- [翻译]创建ASP.NET WebApi RESTful 服务(11)
- nginx 反向代理导致的session丢失的问题
- python pdb 基础调试
热门文章
- LeetCode 第 153 场周赛
- 分布式文件上传 spring boot + fastdfs + dropzone
- 工具类_JavaPOI_Office文件内容读取
- apache配置https重定向
- 转录调控 | Transcriptional Regulation | Regulon
- SQL优化 | Oracle 绑定变量
- Somatic hypermutation (or SHM) is a cellular mechanism by which the immune system adapts to the new foreign elements that confront it (e.g. microbes), as seen during class switching. Somatic hypermut
- NetHogs监控Linux的每个进程流量
- 使用Lock对象实现同步效果
- bat批处理 查找替换:批处理如何查找并替换文本里特定字符串中的部分内容