MongoDB作为一款文档数据库,支持分片存储,scale-out,集群自动切换,下面将粗略的配置步骤总结如下:

几个重要概念:

数据库:集合——记录——游标(查询时标记序号)

sharding分片:启动shard server; 启动config server;启动route process;配置shard cluster,将指定的集合分片存储;每个shard由多个chunk组成,将多个shard server添加给指定数据库的某个集合用来做分片。提高扩展性,以及负载均衡

replica sets:指定数据保存目录;log目录;主从key文件(每个sets里的所有实例,key file 中的内容必须一致);启动实例(如果用分片,可以不用启动实例);配置初始化replica sets(主要是服务器ip,端口); 分别针对单个shard server设置sets

下面以两台物理服务器为基础

1、规划

1)server A

shard1_1:10000

shard2_1:10001

monngod config1:20000

mongs1:30000

2)server B

shard1_2:10000

shard2_2:10001

monngod config1:20000

mongs1:30000

2、创建数据目录

1)server A

mkdir -p /data/shard1_1

mkdir -p /data/shard2_1

mkdir -p /data/config

1)server B

mkdir -p /data/shard1_2

mkdir -p /data/shard2_2

mkdir -p /data/config

3、配置Replica Sets   (主从)

1)在各个物理服务器上配置shard1,shard2所需要的配置参数,日志文件

2)初始化Replica Sets

3)配置config server

4、配置Router Process (前端路由)

1)/Apps/mongo/bin/mongos --congigdb

--chunkSize 1

--logpath /data/mongos.log --logappend --fork

5、配置Shard Cluster

连接到其中一台物理机的30000配置端口,并切换到admin数据库做配置

1)addshard  添加shard节点

2)enablesharding “数据库名称”    设置分片存储的数据库

3)shardcollection “数据库名称.集合名称”, key:{_id:1}   设置分片的集合名称,且必须指定shard key, 系统会自动创建索引

6、验证sharding正常工作

1)切换到指定数据库

2)添加记录

3)查看分片情况

遗留问题:

1)数据文件的目录,最终的存储空间从哪里来?   对接那种存储引擎?  (底层存储提供Lun还是文件共享? )

  答案:

2)chunk,shard,sets之间的关系:

  答案: 每个chunk默认为200MB大小,可以在启动route process时指定大小;

      每个shard可以由多个chunk组成

      Mongo官方推荐一个shard为一组Replica Sets,这样可以实现每个Shard内部的aoto-failover

3)

NoSQL学习——MongoDB的更多相关文章

  1. NOSQL学习笔记系列之MongoDB 一 基础

    主题:MongoDB 学习资料参考网址: 1.http://www.w3cschool.cc/mongodb/mongodb-tutorial.html 2.http://www.icoolxue.c ...

  2. NoSQL数据库Mongodb副本集架构(Replica Set)高可用部署

    NoSQL数据库Mongodb副本集架构(Replica Set)高可用部署 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. MongoDB 是一个基于分布式文件存储的数据库.由 C ...

  3. Linux系统安装NoSQL(MongoDB和Redis)步骤及问题解决办法

    ➠更多技术干货请戳:听云博客 如下是我工作中的记录,介绍的是linux系统下NoSQL:MongoDB和Redis的安装过程和遇到的问题以及解决办法: 需要的朋友可以按照如下步骤进行安装,可以快速安装 ...

  4. 【NoSql】MongoDb

    [NoSql]MongoDb 一. 文档 1. 官网 2. C# Driver 3. C# 开发文档 二. 命令 1. --config "C:\mongodb\mongod.cfg&quo ...

  5. 【MongoDB】学习MongoDB推荐三本书

    近期学习mongodb,感觉这三本书写得不错.非常大家分享一下:

  6. 孤荷凌寒自学python第六十六天学习mongoDB的基本操作并进行简单封装5

    孤荷凌寒自学python第六十六天学习mongoDB的基本操作并进行简单封装5并学习权限设置 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第十二天. 今天继续学习mongo ...

  7. 孤荷凌寒自学python第六十五天学习mongoDB的基本操作并进行简单封装4

    孤荷凌寒自学python第六十五天学习mongoDB的基本操作并进行简单封装4 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第十一天. 今天继续学习mongoDB的简单操作 ...

  8. 孤荷凌寒自学python第六十四天学习mongoDB的基本操作并进行简单封装3

    孤荷凌寒自学python第六十四天学习mongoDB的基本操作并进行简单封装3 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第十天. 今天继续学习mongoDB的简单操作, ...

  9. 孤荷凌寒自学python第六十三天学习mongoDB的基本操作并进行简单封装2

    孤荷凌寒自学python第六十三天学习mongoDB的基本操作并进行简单封装2 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第九天. 今天继续学习mongoDB的简单操作, ...

随机推荐

  1. .NET的ExcelOperate

    using System; using System.Web; using Excel = Microsoft.Office.Interop.Excel; namespace Comm { /// & ...

  2. [PHP] - PDO事务操作

    PHP使用PDO事务操作数据库. 参考文章: http://php.ncong.com/mysql/pdo/pdo_shiwu.html 上代码: <!doctype html> < ...

  3. Mybatis原理分析之二:框架整体设计

    1.引言 本文主要讲解Mybatis的整体程序设计,理清楚框架的主要脉络.后面文章我们再详细讲解各个组件. 2.整体设计 2.1 总体流程 (1)加载配置并初始化       触发条件:加载配置文件 ...

  4. pc wap 判断浏览器ua属性

    var ua = navigator.userAgent.toLowerCase(); var Android = String(ua.match(/android/i)) == "andr ...

  5. 给破坏性的Rake任务加把锁 | Rails

    抄自这里 直接贴代码 # lib/tasks/skip_prod.rake desc 'Raises exception if used in production' task skip_prod: ...

  6. Google Tensorflow 源码编译(三):tensorflow<v0.5.0>

    这几天终于把tensorflow安装上了,中间遇到过不少的问题,这里记录下来.供大家想源码安装的参考. 安装环境:POWER8处理器,Docker容器Ubuntu14.04镜像. Build Tens ...

  7. 使用PowerDesigner把oom设计图导出jpg格式的图片

    1: 按住Shift键点击鼠标选择要导出的对象,必须先选择. 2: 选择Edit—>Export Image 到出你需要的格式,如下图

  8. JVM GC算法 CMS 详解(转)

    前言 CMS,全称Concurrent Low Pause Collector,是jdk1.4后期版本开始引入的新gc算法,在jdk5和jdk6中得到了进一步改进,它的主要适合场景是对响应时间的重要性 ...

  9. Oracle 11g服务器安装详细步骤

    原出处:http://jingyan.baidu.com/article/363872eccfb9266e4aa16f5d.html 方法/步骤   1 大家可以根据自己的操作系统是多少位(32位或6 ...

  10. 图片Exif 信息中Orientation的理解和对此的处理

    这个问题是在用七牛上传图片后获取宽高时发现的,一张图片,用图片浏览器打开始终是竖图,但是查看属性或者用七牛获取宽高,却发现宽大于高,也就是在属性中这是个横图.这样导致客户端用该宽高来展示图片会出现问题 ...