MongoDB学习之二----模拟shard集群搭建
来源:互联网 发布:时时彩平台源码一条龙 编辑:程序博客网 时间:2024/06/07 18:01
一.相关概念
MongoDB如何存放大数据文件?
MongoDB对超过一定的大小(默认是64M)的大数据文件切割成数据块(chunks),然后在切片集群(shards)中间自动均衡,使得数据尽量实现均匀分布.
MongoDB如何保证数据安全?
MongoDB中每个shard其实就是一个replica Set(默认是3个replica,每一个replica可以理解为一台机器),这样shard里面存储的每个chunk都会存放在不同的机器上,能最大程度上防止因为意外造成的数据丢失.
下图就是一个典型的MongDB的shard集群配置.
二.模拟集群搭建
1.搭建replica Set
a.在MongoDB的bin目录下,建立db11,db12,db13,db21,db22,db23几个文件夹,创建名称分别为rs0和rs1两个replica Set,并启动mongod如下:
mongod --dbpath db11(db12/d13) --port 10001(10002/10003) --replSet rs0
mongod --dbpath db21(db22/d23) --port 20001(20002/20003) --replSet rs1
b.replica Set初始化(以rs0为例)
通过mongo连接:mongo localhost:10001
cfg = {_id:"rs0",members:[{_id:1,host:"192.168.0.86:10001"}]}
rs.initiate(cfg)
rs.add("192.168.0.86:10002") rs.add("192.168.0.86:10003")
c.通过rs.conf()查看replica set信息
2.启动configServer
mongod --configsvr --dbpath config --port 30001
3.搭建shard集群
a.启动mongos:mongos --configdb 192.168.0.86:30001 --chunkSize 32(chunk的size) --port 28017
b.连接mongos:mongo 192.168.0.86:28017/admin
c.将rs0和rs1分别作为shard添加至集群:
db.runCommand({addShard:"rs0/192.168.0.86:10001,192.168.0.86:10002,192.168.0.86:10003"})
d.通过db.runCommand({listShards:1})查看集群情况
e.插入数据
use test
for(i=0;i<1000000;i++){db.tb1.save({"user_id":i,"number":Math.random()*100000})}
通过db.stats查看,发现此时数据大小超过32M,但是并未切割
f.启动分片
分片之前必须选定一个字段作为key,此处选择number作为key.
db.tb1.ensureIndex({"number":1})
use admin
db.runCommand({enableSharding:"test"})
db.runCommand({shardCollection:"test.tb1",key:{"number":1}})
通过db.printShardingStatus()可以发现chunk的均衡情况,如下图所示:
过几分钟,再次执行db.printShardingStatus()可以发现chunk均衡完毕,如下图所示:
- MongoDB学习之二----模拟shard集群搭建
- MongoDB学习之旅二十八:MongoDB 新增Shard Server
- mongodb之shard集群 balance操作管理
- MongoDB shard集群部署
- 搭建高可用mongodb shard 集群以及多节点备份
- [mongodb]shard cluster(分片集群)搭建实录
- MongoDB 3.4 高可用集群搭建(三)shard 分片
- MongoDB 3.4 高可用集群搭建(三)shard 分片
- MongoDB 3.4 高可用集群搭建(三)shard 分片
- MongoDB学习之旅二十九:MongoDB 移除Shard Server
- MongoDB 分片 (二) Shard
- MongoDB之集群安装部署与shard操作
- mongodb分配集群 shard key
- mongodb集群(Shard+Replica Sets)
- 如何搭建mongodb分片 shard
- MongoDB之Shard初步认识
- MongoDB之Shard初步认识
- 【MongoDB】配置shard集群 完整教程
- proxool详细配置
- 九方互联极品服务器管理员,硬说是我们自己放上去的不符合规定的文件
- 关闭防火墙
- 转载:数据库的相关书籍
- 集群存储系统IO路径入口与出口的阀门控制
- MongoDB学习之二----模拟shard集群搭建
- 判断一个年份是不是闰年
- 求助:myeclipse和输入法冲突的问题
- 【转】让 InnoDB 的全表扫描快 10 倍
- JPasswordField getPassword
- Ural1024 Permutations
- 内核格式化(将格式化信息写入string对象)788
- C/C++ 内存布局详解(经典)
- C语言堆栈入门——堆和栈的区别