• 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<=100000;i++) db.user.inser({_id:i,school:"CDUT",name:"yyd"})
    
    
    >
    db.user.stats()
    • 查片
    >db.shards.find()
    • 查数据库
    >db.databases.find()
    • 查块
    >db.chunks.find()
    • 获得集合概要
    >db.printShardingStatus()

    总结                                                                                           

    index         index

    其实上学期就接触了一些NoSQL的一些知识,只是在这个寒假才开始学习。但是也是碰巧,上学期一直没有在图书馆借到仅有的两门MongoDB的书,但是考完试的第二天书就被还到图书馆了,所以果断借了。

    后面我还写PHP操作MongoDB。

    联想到其他数据库,mysql,对于关系数据表而言,mongodb是提供了一个更快速的视图view;而对于PHP程序而言,mongodb可以作为一个持久化的数组来使用,并且这个持久化的数组还可以支持排序、条件、限制等功能。将mongodb代替mysql的部分功能,主要一个思考点就是:把mongodb当作mysql的一个view(视图),view是将表数据整合成业务数据的关键。比如说对原始数据进行报表,那么就要先把原始数据统计后生成view,在对view进行查询和报表。从这个意义上,mongodb提供了一个更快速,更使用的view。

    MongoDB学习笔记(五)--复制集 && sharding分片传送门 http://www.cnblogs.com/yydcdut/p/3564470.html

    转载请注明出处:http://www.cnblogs.com/yydcdut/p/3566489.html

  • 相关阅读:
    while和do while习题
    Flexigrid折行显示问题
    【Cocos2d-x游戏引擎开发笔记(25)】XML解析
    ruby简单的基本 6
    原因好消息: PSP游戏自己主动算法设计(两)
    《约会专家》拖车【约会宝典】总结
    C++在stack的deque实现
    hdu 4869
    SQL Server 2008杀数据库连接
    BestCoder-Round#33
  • 原文地址:https://www.cnblogs.com/yydcdut/p/3566489.html
Copyright © 2020-2023  润新知