mongodb sharding基本概念
mongodb sharding基本概念这里先介绍sharding的架构和几个基本概念术语。shard server :shard server可以使一个mongod实例,也可以是replica set。config sever:为了将指定collection存储在多个shard中,那么就需要个key来进行分割,config server存储各个节点的配置信息。shard key的范围,以及分布情况。route process:由此介入客户端,通过询问config server,确定到那个shard上面查询,在连接相应的shard操作,不保存数据和配置信息。由于资源限制,在一台机子上做一下实验Shard Server 1:30000Shard Server 2:30001Config Server :40000Route Process:50000步骤:启动shard server 1和2[mongo@172_16_3_216 mongo]$ mkdir -p /mongo/shard/data0[mongo@172_16_3_216 mongo]$ mkdir -p /mongo/shard/data1[mongo@172_16_3_216 mongo]$ touch shard.log[mongo@172_16_3_216 mongo]$ mongod --shardsvr --port 30000 --dbpath /mongo/shard/data0 --fork --logpath shard.log --directoryperdb[mongo@172_16_3_216 mongo]$ touch shard1.log[mongo@172_16_3_216 mongo]$ mongod --shardsvr --port 30001 --dbpath /mongo/shard/data1 --fork --logpath shard1.log --directoryperdb启动config server[mongo@172_16_3_216 mongo]$ mkdir -p /mongo/shard/config[mongo@172_16_3_216 mongo]$ touch config.log[mongo@172_16_3_216 mongo]$ mongod --configsvr --port 40000 --dbpath /mongo/shard/config --fork --logpath config.log --directoryperdb启动route process[mongo@172_16_3_216 mongo]$ touch route.log[mongo@172_16_3_216 mongo]$ mongos --port 50000 --configdb localhost:40000 --fork --logpath route.log --chunkSize 2初始化shardingmongo admin --port 50000MongoDB shell version: 1.8.4connecting to: 127.0.0.1:50000/admin> db.runCommand({addshard:"localhost:30000"}) ----添加shard1{ "shardAdded" : "shard0000", "ok" : 1 }> db.runCommand({addshard:"localhost:30001"}) -----添加shard2{ "shardAdded" : "shard0001", "ok" : 1 }> db.runCommand({enablesharding:"test"}) ---对数据库test分片{ "ok" : 1 }> db.runCommand({shardcollection:"test.tb1",key:{_id:1}}) ---对数据库test中tb1按_id作为key{ "collectionsharded" : "test.tb1", "ok" : 1 }验证sharding> for (var i=1;i<=50000;i++) db.tb1.insert({age:i,name:"hank",addr:"HangZhou"})> db.tb1.stats(){"sharded" : true,"ns" : "test.tb1","count" : 50000,"size" : 3600016,"avgObjSize" : 72.00032,"storageSize" : 13975552,"nindexes" : 1,"nchunks" : 4,"shards" : {"shard0000" : {"ns" : "test.tb1","count" : 17888,"size" : 1287944,"avgObjSize" : 72.00044722719142,"storageSize" : 2793472,"numExtents" : 5,"nindexes" : 1,"lastExtentSize" : 2097152,"paddingFactor" : 1,"flags" : 1,"totalIndexSize" : 753664,"indexSizes" : {"_id_" : 753664},"ok" : 1},"shard0001" : {"ns" : "test.tb1","count" : 32112,"size" : 2312072,"avgObjSize" : 72.00024912805182,"storageSize" : 11182080,"numExtents" : 6,"nindexes" : 1,"lastExtentSize" : 8388608,"paddingFactor" : 1,"flags" : 1,"totalIndexSize" : 1343488,"indexSizes" : {"_id_" : 1343488},"ok" : 1}},"ok" : 1}查看sharding信息:> db.runCommand({listshards:1}){"shards" : [{&nb上一个:Sqlite数据库的加密
下一个:查找数据库中所有有自增列的用户表
- 更多DB2疑问解答:
- sql语句 从DB2移动到其他数据库
- DB2 character类型更新报错
- db2 怎么查看执行的sql语句需要多少系统临时表空间?
- db2数据库的table表里,一money字段中的数据显示为:56000,00 本人想要用sql语句将它修改为56,000,000
- DB2导出表结构,能不能只导出指定的表结构。求大神指教,给出命令哈
- DB2数据库,增加数据表空间容量需要重启数据库吗?
- cognos连接db2,为什么启动不了服务啊, 连接Oracle可以启动服务。。
- PostgreSQL对比DB2
- db2如何查看编写好的存储过程?
- db2数值截取
- 谁知道关于DB2怎么看系统日志,归档日志的位置。并且怎么修改日志呢?
- db2怎样重组表结构?
- 求一本【牛新庄的DB2运维教程】?
- db2 的 SECADM权限 是干什么的
- DB2怎么删除表空间所以数据