复制集+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. Initializing the FallBack certificate failed . TDSSNIClient initialization failed

    安装SQL后服务不能启动,报错: 2014-03-24 14:33:10.06 spid13s     Error: 17190, Severity: 16, State: 1.2014-03-24 ...

  2. 模型构建<3>:交叉验证

    交叉验证是模型比较选择的一种常用方法,本文对此进行总结梳理. 1.交叉验证的基本思想 交叉验证(cross validation)的基本思想就是重复地利用同一份数据. 2.交叉验证的作用 1)通过划分 ...

  3. [BZOJ5291][BJOI2018]链上二次求和(线段树)

    感觉自己做的麻烦了,但常数似乎不算差.(只是Luogu最慢的点不到2s本地要跑10+s) 感觉我的想法是最自然的,但不明白为什么网上似乎找不到这种做法.(不过当然所有的做法都是分类大讨论,而我的方法手 ...

  4. [BZOJ5125]小Q的书架(决策单调性+分治DP+树状数组)

    显然有决策单调性,但由于逆序对不容易计算,考虑分治DP. solve(k,x,y,l,r)表示当前需要选k段,待更新的位置为[l,r],这些位置的可能决策点区间为[x,y].暴力计算出(l+r)/2的 ...

  5. Codeforces.714D.Searching Rectangles(交互 二分)

    题目链接 \(Description\) 在一个\(n*n\)的二维平面中有两个不相交的整点矩形,每次可以询问两个矩形有几个完全在你给出的一个矩形中.200次询问内确定两个矩形坐标. \(Soluti ...

  6. Java并发(十九):final实现原理

    final在Java中是一个保留的关键字,可以声明成员变量.方法.类以及本地变量. 一旦你将引用声明作final,你将不能改变这个引用了,编译器会检查代码,如果你试图将变量再次初始化的话,编译器会报编 ...

  7. Spring Batch 批处理框架介绍

    前言 在大型的企业应用中,或多或少都会存在大量的任务需要处理,如邮件批量通知所有将要过期的会员,日终更新订单信息等.而在批量处理任务的过程中,又需要注意很多细节,如任务异常.性能瓶颈等等.那么,使用一 ...

  8. 基于直接最小二乘的椭圆拟合(Direct Least Squares Fitting of Ellipses)

    算法思想: 算法通过最小化约束条件4ac-b^2 = 1,最小化距离误差.利用最小二乘法进行求解,首先引入拉格朗日乘子算法获得等式组,然后求解等式组得到最优的拟合椭圆. 算法的优点: a.椭圆的特异性 ...

  9. 最小生成树-普利姆算法lazy实现

    算法描述 lazy普利姆算法的步骤: 1.从源点s出发,遍历它的邻接表s.Adj,将所有邻接的边(crossing edges)加入优先队列Q: 2.从Q出队最轻边,将此边加入MST. 3.考察此边的 ...

  10. oracle备份恢复学习

    备份和恢复是常遇到的操作,逻辑备份和物理备份.物理备份又分为冷备份和热备份. 一.逻辑备份,恢复 是指使用exp命令,简单易行,不影响正常的数据库操作.exp   用户名/密码   file=/hom ...