zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    nodejs生成UID(唯一标识符)——node-uuid模块
    python 3.6 关于python的介绍
    Hdu-3333 Turning Tree (离线树状数组/线段树)
    HDU-3333 Turing Tree 分块求区间不同数和
    Hello,World.
    IntelliJ IDEA 自动化工具安装并添加自动化测试框架
    git&sourcetree安装及在IntelliIJ下拉取项目基础使用
    3.jquery在js文件中获取选择器对象
    2.jquery在js中写标准的ajax请求
    操作系统简介
  • 原文地址:https://www.cnblogs.com/yydcdut/p/3566489.html
Copyright © 2011-2022 走看看