复制集+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()

总结                                                                                           

        

其实上学期就接触了一些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

MongoDB学习笔记(六)--复制集+sharding分片 && 总结的更多相关文章

  1. MongoDB学习笔记(五)--复制集 && sharding分片

    主从复制                                                                                       主从节点开启 主节 ...

  2. MongoDB学习笔记六:进阶指南

    [数据库命令]『命令的工作原理』MongoDB中的命令其实是作为一种特殊类型的查询来实现的,这些查询针对$cmd集合来执行.runCommand仅仅是接受命令文档,执行等价查询,因此,> db. ...

  3. MongoDB学习笔记六—查询下

    查询内嵌文档 数据准备 > db.blog.find().pretty() { "_id" : ObjectId("585694e4c5b0525a48a441b5 ...

  4. MongoDB学习笔记(六) MongoDB索引用法和效率分析

    MongoDB中的索引其实类似于关系型数据库,都是为了提高查询和排序的效率的,并且实现原理也基本一致.由于集合中的键(字段)可以是普通数据类型,也可以是子文档.MongoDB可以在各种类型的键上创建索 ...

  5. MongoDB学习笔记(四)--索引 && 性能优化

    索引                                                                                             基础索引 ...

  6. MongoDB学习笔记(转)

    MongoDB学习笔记(一) MongoDB介绍及安装MongoDB学习笔记(二) 通过samus驱动实现基本数据操作MongoDB学习笔记(三) 在MVC模式下通过Jqgrid表格操作MongoDB ...

  7. 【opencv学习笔记六】图像的ROI区域选择与复制

    图像的数据量还是比较大的,对整张图片进行处理会影响我们的处理效率,因此常常只对图像中我们需要的部分进行处理,也就是感兴趣区域ROI.今天我们来看一下如何设置图像的感兴趣区域ROI.以及对ROI区域图像 ...

  8. MongoDB学习笔记:快速入门

    MongoDB学习笔记:快速入门   一.MongoDB 简介 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统.在高负载的情况下,添加更多的节点,可以保证服务器性能.M ...

  9. mongoDB 学习笔记纯干货(mongoose、增删改查、聚合、索引、连接、备份与恢复、监控等等)

    最后更新时间:2017-07-13 11:10:49 原始文章链接:http://www.lovebxm.com/2017/07/13/mongodb_primer/ MongoDB - 简介 官网: ...

随机推荐

  1. 【SQL】184. Department Highest Salary

    The Employee table holds all employees. Every employee has an Id, a salary, and there is also a colu ...

  2. Swift2.0语言教程之类的方法

    Swift2.0语言教程之类的方法 Swift2.0语言的方法 方法其实就是函数,只不过它被定义在了类中.在Swift中,根据被使用的方式不同,方法分为了实例方法和类型方法两种.这两种方法的定义也和O ...

  3. s3c2440地址分配

    mini2440的地址怎么分配.mini2440处理器的地址怎么分配. S3C2440处理器可以使用的物理地址空间可以达到4GB,其中前1GB的地址为连接外设的地址空间.>1G的地址空间 分配给 ...

  4. anaconda安装tensorflow后pip安装jieba出错的问题

    安装jieba出错,参考https://www.cnblogs.com/minsons/p/7872647.html TypeError: parse() got an unexpected keyw ...

  5. 「JSOI2018」战争

    「JSOI2018」战争 解题思路 我们需要每次求给一个凸包加上一个向量后是否与另外一个凸包相交,也就是说是否存在 \[ b\in B,(b+w)\in A \] 这里 \(A, B\) 表示凸包内部 ...

  6. 【BZOJ】2730: [HNOI2012]矿场搭建【Tarjan找割点】【分联通块割点个数】

    2730: [HNOI2012]矿场搭建 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 3230  Solved: 1540[Submit][Stat ...

  7. BZOJ 3876: [Ahoi2014]支线剧情 带下界的费用流

    3876: [Ahoi2014]支线剧情 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=3876 Description [故事背景] 宅 ...

  8. 【转】Spring中事务与aop的先后顺序问题

    [原文链接] http://my.oschina.net/HuifengWang/blog/304188 [正文] Spring中的事务是通过aop来实现的,当我们自己写aop拦截的时候,会遇到跟sp ...

  9. lamp经典安装

    一.网络方面的知识 2 ①-网络常见的命令 2 ②-网卡相关 2 ③-防火墙相关 2 ④-selinux相关 3 二.上传amp源代码包 5 三.linux下软件安装-vsftpd安装 6 ①-rpm ...

  10. Windows Server 2016 Essentials试用

    下载地址: Windows Server 2016 Essentials (x64) SHA-1:        6E1D1880873157ADCEF3D74363308A95DC89103D ed ...