1.什么是分片:相似服务器中代理模式;python
经过不一样的机器保存副本用于保证数据的不会由于单点损失而丢失,
主要用于应对数据丢失,机器损坏带来的风险;同时能够提升读取能力,用户的读取服务器和写入服务器在不一样的地方,并且不一样服务器为不一样的用户提供服务,提升整个系统的负载。
3.分片的结构 数据库
4.什么是chunk:数据在shard中存储的单位
主要有两个用途:服务器
splitting:当chunk大小超过配置的chunk size,mongoDB的后台进程会把它切割成更小的chunk; 可是这个操做十分消耗IO资源spa
balancing:主要负责chunk的迁移,从而均衡各个shard server的负载;3d
log代理
mongod --port 3000 --shardsvr --replSet rs-a --dbpath "E:\SQL\MongoDB\shard\data\rs-a-0" --logpath "E:\SQL\MongoDB\shard\log\rs-a-0.log"
mongod --port 3001 --shardsvr --replSet rs-a --dbpath "E:\SQL\MongoDB\shard\data\rs-a-1" --logpath "E:\SQL\MongoDB\shard\log\rs-a-1.log"
mongod --port 3002 --shardsvr --replSet rs-a --dbpath "E:\SQL\MongoDB\shard\data\rs-a-2" --logpath "E:\SQL\MongoDB\shard\log\rs-a-2.log"
复制代码
mongo --port 3000
rs.initiate()
rs.isMaster()
rs.status()
添加其余为slave
rs.add("localhost:3001")
rs.add("localhost:3002")
带有分片的复制集便创建完成,使用rs.status()查看信息
复制代码
(5)配置config server复制集(MongoDB版本3.4以上必须为复制集,即mongos 要求config server是复制集而且在前面加上复制集的名称,此处配置包含2个实例的复制集)同建立复制集rs-conf:日志
mongod --port 27019 --configsvr --replSet rs-conf --dbpath "E:\SQL\MongoDB\shard\data\config0" --logpath "E:\SQL\MongoDB\shard\log\config0.log"
mongod --port 27020 --configsvr --replSet rs-conf --dbpath "E:\SQL\MongoDB\shard\data\config1" --logpath "E:\SQL\MongoDB\shard\log\config1.log"
复制代码
mongo --port 27019
rs.initiate()
rs.isMaster()
rs.status()
添加其余为slave
rs.add("localhost:27020")
使用rs.status()查看信息
复制代码
mongos --configdb rs-conf/localhost:27019,localhost:27020 --logpath "E:\SQL\MongoDB\shard\log\mongos.log" --port 27010
复制代码
mongo --port 27010
mongos> sh.addShard("rs-a/localhost:3000,localhost:3001,localhost:3002")
mongos> sh.status()
为数据库添加sharding abled
mongos> sh.enableSharding("testSharding")
复制代码
问题:在启动mongos路由服务的时候,碰到一开就自动关闭,而后打印日志:code