mongodb分片(七)

1.插入负载技术分片架构图


2.片键的概念和用处
看下面这个普通的集合和分片后的结果


3.什么时候用到分片呢?
3.1机器的磁盘空间不足
3.2单个的mongoDB服务器已经不能满足大量的插入操作
3.3想通过把大数据放到内存中来提高性能
4.分片步骤
4.1创建一个配置服务器
4.2创建路由服务器,并且连接配置服务器
路由器是调用mongos命令
4.3添加2个分片数据库
8081和8082
4.5利用路由为集群添加分片(允许本地访问)
db.runCommand({addshard:"127.0.0.1:8081",allowLocal:true})
db.runCommand({addshard:"127.0.0.1:8081",allowLocal:true})
切记之前不能使用任何数据库语句


4.6打开数据分片功能,为数据库foobar打开分片功能
db.runCommand({"enablesharding":"foobar"})


4.7对集合进行分片
db.runCommand({"shardcollection":"foobar.bar","key":{"_id":1}})


4.8利用大数据量进行测试 (800000条)


5.查看配置库对于分片服务器的配置存储
db.printShardingStatus()
6.查看集群对bar的自动分片机制配置信息
mongos> db.shards.find()
{ "_id" : "shard0000", "host" : "127.0.0.1:8081" }
{ "_id" : "shard0001", "host" : "127.0.0.1:8082" }
7.保险起见的配置服务器集群


8.分片与副本集一起使用

 

function add(){
 var i = 0;
 for(;i<200000;i++){
   db.bar.insert({"age":i+10,"name":"jim"})
 }
}

function add2(){
 var i = 0;
 for(;i<200000;i++){
   db.bar.insert({"age":12,"name":"tom"+i})
 }
}

function add3(){
 var i = 0;
 for(;i<200000;i++){
   db.bar.insert({"age":12,"name":"lili"+i})
 }
}

//查看状态
db.printShardingStatus()

mongod --config 分片数据库_01.conf

dbpath = D:\sortware\mongod\03\8081
port = 8081
bind_ip = 127.0.0.1

mongo 127.0.0.1:8081/admin

mongod --config 分片数据库_02.conf

dbpath = D:\sortware\mongod\03\8082
port = 8082
bind_ip = 127.0.0.1

mongo 127.0.0.1:8082/admin

mongos --port 1000 --configdb 127.0.0.1:2000

mongo 127.0.0.1:1000/admin

mongod --config 配置服务器.conf

dbpath = D:\sortware\mongod\03\config
port = 2000
bind_ip = 127.0.0.1

mongod --config 分片数据库_01.conf

dbpath = D:\software\MongoDBDATA\08\0801
port = 8081
bind_ip = 127.0.0.1

mongo 127.0.0.1:8081/admin

mongod --config 分片数据库_02.conf

dbpath = D:\software\MongoDBDATA\08\8082
port = 8082
bind_ip = 127.0.0.1

mongo 127.0.0.1:8082/admin

mongos --port 1000 --configdb 127.0.0.1:2000

mongo 127.0.0.1:1000/admin

mongod --config 配置服务器.conf

dbpath = D:\software\MongoDBDATA\08\config
port = 2000
bind_ip = 127.0.0.1

posted @ 2017-09-17 17:13  ecollab  阅读(253)  评论(0编辑  收藏  举报