hcwzwx 发表于 2015-7-8 10:20:27

MongoDB学习笔记(六)--复制集+sharding分片 && 总结

  复制集+sharding分片                                                               


[*]背景







主机



IP



服务及端口




Server A
192.168.50.1
shard1_1:27017
shard2_1:27018
config:20000
mongos:30000


Server B
192.168.51.1
shard1_2:27017
shard2_2:27018
config:20000
mongos:30000




[*]创建数据目录及配置复制集
  在Server A上启动shard1所用到的服务节点1



./mongod --shardsvr --replSet shard1 --port 27017 --dbpath /data/shard1_1 --logpath /data/shard1_1/shaed1_1.log --logappend --fork
  在Server B上启动shard1所用到的服务节点2



./mongod --shardsvr --replSet shard1 --port 27017 --dbpath /data/shard1_2 --logpath /data/shard1_2/shaed1_2.log --logappend --fork
  初始化



./mongo --port 27017
>config={_id:"shard1",members:[
...{_id:0,host:"192.168.1.50:27017"},
...{_id:1,host:"192.168.1.51:27017"}]
...}

>re.initiate(config)
  在Server A上启动shard2所用到的服务节点1



./mongod --shardsvr --replSet shard2 --port 27018 --dbpath /data/shard2_1 --logpath /data/shard2_1/shaed2_1.log --logappend --fork
  在Server B上启动shard2所用到的服务节点2



./mongod --shardsvr --replSet shard2 --port 27018 --dbpath /data/shard2_2 --logpath /data/shard2_2/shaed2_2.log --logappend --fork
  初始化



./mongo --port 27018
>config={_id:"shard2",members:[
...{_id:0,host:"192.168.1.50:27018"},
...{_id:1,host:"192.168.1.51:27018"}]
...}
...
>re.initiate(config)

[*]配置Config Server
  在Server A上启动Config Server服务



./mongod --configsvr--port 20000 --dbpath /data/config --logpath /data/config/config.log --logappend --fork
  在Server B上启动Config Server服务



./mongod --configsvr--port 20000 --dbpath /data/config --logpath /data/config/config.log --logappend --fork

[*]配置mongos
  在Server A上启动mongos服务



./mongos --configdb 192.168.50.1:20000,192.168.51.1:20000 --port 30000 --chunkSize 1 --logpath /data/mongos.log --logappend --fork
  在Server B上启动mongos服务



./mongos --configdb 192.168.50.1:20000,192.168.51.1:20000 --port 30000 --chunkSize 1 --logpath /data/mongos.log --logappend --fork

[*]配置Shard Cluster



./mongo --port 30000
>use admin
>
db.runCommand({addshard:"shard1/192.168.50.1:27017,192.168.51.1:27017"
})
>
db.runCommand({addshard:"shard2/192.168.1.50:27018,192.168.51.1:27018"})

[*]验证Sharding正常工作



./mongo --port 30000
>for(var i=1;i
db.user.stats()

[*]查片



>db.shards.find()

[*]查数据库



>db.databases.find()

[*]查块



>db.chunks.find()

[*]获得集合概要



>db.printShardingStatus()
  总结                                                                                          
         
  其实上学期就接触了一些NoSQL的一些知识,只是在这个寒假才开始学习。但是也是碰巧,上学期一直没有在图书馆借到仅有的两门MongoDB的书,但是考完试的第二天书就被还到图书馆了,所以果断借了。
  后面我还写PHP操作MongoDB。
  联想到其他数据库,mysql,对于关系数据表而言,mongodb是提供了一个更快速的视图view;而对于PHP程序而言,mongodb可以作为一个持久化的数组来使用,并且这个持久化的数组还可以支持排序、条件、限制等功能。将mongodb代替mysql的部分功能,主要一个思考点就是:把mongodb当作mysql的一个view(视图),view是将表数据整合成业务数据的关键。比如说对原始数据进行报表,那么就要先把原始数据统计后生成view,在对view进行查询和报表。从这个意义上,mongodb提供了一个更快速,更使用的view。
  
  
  《MongoDB学习笔记(五)--复制集 && sharding分片》 传送门 http://www.iyunv.com/yydcdut/p/3564470.html
  转载请注明出处:http://www.iyunv.com/yydcdut/p/3566489.html
页: [1]
查看完整版本: MongoDB学习笔记(六)--复制集+sharding分片 && 总结