1.分片规划
集群 ip: 全为127.0.0.1
分片: shard 1 端口:20001 shard2:20002 shard3:20003
版本原因 3.4版本及以上配置服务器必须为2个以上
这里选用低版本(只需要一个配置服务器)
配置服务器:mongod 端口 :30000 ip:127.0.0.1
路径:d:\mongodb\mongodata
路由服务器:mongos 端口:40000 ip:127.0.0.1
分片服务器:
shard1:端口:20001 IP:127.0.0.1 路径:d:\mongodb\data\shard1
shard1:端口:20002 IP:127.0.0.1 路径:d:\mongodb\data\shard2
shard1:端口:20003 IP:127.0.0.1 路径:d:\mongodb\data\shard3
都在d盘啊:先进去 d:\mongodb
2.开启配置服务器: 进入bin
mongod --dbpath=D:\mongodb\mongodata --port 30000 --bind_ip=127.0.0.1
3.开启路由服务器: 进入bin
mongos --port 40000 --bind_ip=127.0.0.1 --configdb 127.0.0.1:30000
4.启动mongod分片服务器 进入bin
mongod --dbpath d:\mongodb\data\shard1 --port 20001 --bind_ip=127.0.0.1
mongod --dbpath d:\mongodb\data\shard2 --port 20002 --bind_ip=127.0.0.1
mongod --dbpath d:\mongodb\data\shard3 --port 20003 --bind_ip=127.0.0.1
5.服务器配置: 进入bin
mongo 127.0.0.1:40000/admin
db
show collections
db.runCommand({addshard:"127.0.0.1:20001",allowLocal:true})
ok 1
db.runCommand({addshard:"127.0.0.1:20002",allowLocal:true})
ok 1
db.runCommand({addshard:"127.0.0.1:20003",allowLocal:true})
ok 1
6.查看整个集群分片机制
在路由服务器中执行:
show dbs
use config
show collections
db.shards.find()
用户:cmd
7.设置片键:
分片已经集群了,但是mongos路由服务器未设置片键
在mongodb中设置片键要做两步
a.开数据分片功能,为数据库test打开分片功能
db.runCommand({"enablesharding":"test"})
b.对集合进行分片
db.runCommand({"shardcollection":"test.student","key":{"_id":1}})
8.测试,观察结果
mongo 127.0.0.1:40000/admin
use test
a.插入10w行数据
for(var i=0;i<=100000;i++){
db.student.insert({"name":"zhangsan"+i,age:i})
}
b.分别在不同的库中,观察分片的集合的内容
进入bin
mongo 127.0.0.1:20001
mongo 127.0.0.1:20002
mongo 127.0.0.1:20003
db.student.find().count()
db.student.status()
c.查看配置库对于分片服务器的配置存储
在路由服务器中执行
db.printShardingStatus()
1.开启配置服务器:
mongod --dbpath=D:\mongodb\mongodata --port 30000 --bind_ip=127.0.0.1
2.开启路由服务器: mongos --port 40000 --bind_ip=127.0.0.1 --configdb 127.0.0.1:30000
(必须指定配置服务器)
3.服务器配置:mongo 127.0.0.1:40000/admin
4.开启 shard1 20001
5.开启 shard1 20002
6.开启 shard1 20003
7.添加分片
8.设置片键 插入10000条数据
9.查看分片状态:
10.查看各分片student信息:
20001端口
20002端口
20003端口:
11.查看配置库对于分片服务器的配置存储