NoSQL学习——MongoDB
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的更多相关文章
- NOSQL学习笔记系列之MongoDB 一 基础
主题:MongoDB 学习资料参考网址: 1.http://www.w3cschool.cc/mongodb/mongodb-tutorial.html 2.http://www.icoolxue.c ...
- NoSQL数据库Mongodb副本集架构(Replica Set)高可用部署
NoSQL数据库Mongodb副本集架构(Replica Set)高可用部署 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. MongoDB 是一个基于分布式文件存储的数据库.由 C ...
- Linux系统安装NoSQL(MongoDB和Redis)步骤及问题解决办法
➠更多技术干货请戳:听云博客 如下是我工作中的记录,介绍的是linux系统下NoSQL:MongoDB和Redis的安装过程和遇到的问题以及解决办法: 需要的朋友可以按照如下步骤进行安装,可以快速安装 ...
- 【NoSql】MongoDb
[NoSql]MongoDb 一. 文档 1. 官网 2. C# Driver 3. C# 开发文档 二. 命令 1. --config "C:\mongodb\mongod.cfg&quo ...
- 【MongoDB】学习MongoDB推荐三本书
近期学习mongodb,感觉这三本书写得不错.非常大家分享一下:
- 孤荷凌寒自学python第六十六天学习mongoDB的基本操作并进行简单封装5
孤荷凌寒自学python第六十六天学习mongoDB的基本操作并进行简单封装5并学习权限设置 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第十二天. 今天继续学习mongo ...
- 孤荷凌寒自学python第六十五天学习mongoDB的基本操作并进行简单封装4
孤荷凌寒自学python第六十五天学习mongoDB的基本操作并进行简单封装4 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第十一天. 今天继续学习mongoDB的简单操作 ...
- 孤荷凌寒自学python第六十四天学习mongoDB的基本操作并进行简单封装3
孤荷凌寒自学python第六十四天学习mongoDB的基本操作并进行简单封装3 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第十天. 今天继续学习mongoDB的简单操作, ...
- 孤荷凌寒自学python第六十三天学习mongoDB的基本操作并进行简单封装2
孤荷凌寒自学python第六十三天学习mongoDB的基本操作并进行简单封装2 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第九天. 今天继续学习mongoDB的简单操作, ...
随机推荐
- 【原创】关于不同分支代码的Merge有了透彻的理解
多分支开发,Merge是一个绕不过的话题,不管是Git还是SVN,公司用的是SVN,之前对于SVN的Merge没有很好的研究,出了些状况,这个问题不解决,顺畅地进行多分支开发就是海市蜃楼,下定决心把这 ...
- 使用Spring缓存的简单Demo
使用Spring缓存的简单Demo 1. 首先创建Maven工程,在Pom中配置 <dependency> <groupId>org.springframework</g ...
- ajax-服务器响应
如果需要获得了来自服务器的响应,则使用XMLHttpRequest 对象的 responseText 或 responseXML 属性 responseText: 获得字符串形式的响应数据,当read ...
- ubuntu 常见问题
1.problem 1 用apt-get安装时,提示:E could not get lock /vaa/lib/dpkg/lock -open等 reasons :可能是由于上次使用apt-get ...
- RAID磁盘阵列笔记
磁盘阵列RAID是服务器维护的必备知识,以前不太关心服务器维护方面的知识.目前要负责维护机房里的几台服务器,所以要关注这方面的内容. 磁盘阵列是用多块独立磁盘组成,提供两个方面的作用:数据安全冗余 和 ...
- 源码阅读笔记 - 2 std::vector (2) 关于Allocator Aware Container特性
所有的STL容器,都保存一个或默认,或由用户提供的allocator的实例,用来提供对象内存分配和构造的方法(除了std::array),这样的容器,被称作Allocator Aware Contai ...
- 用Intellij打可执行jar包
1.添加maven-assembly-plugin和maven-dependency-plugin assembly:用于打可执行jar包 dependency: 导出依赖包 <plugin&g ...
- 从委托到Lambda
写下这篇文章的时候已经是工作三年,突然发现自己从始至终都没有学习过任何东西,突然想学点东西又不知道从何而写那只能一个个基础重新学习. 委托 什么是委托? 委托是一个类,它定义了方法的类型,使得可以将方 ...
- Hive On Spark环境搭建
Spark源码编译与环境搭建 Note that you must have a version of Spark which does not include the Hive jars; Spar ...
- Spring 之注解事务 @Transactional
众所周知的ACID属性: 原子性(atomicity).一致性(consistency).隔离性(isolation)以及持久性(durability).我们无法控制一致性.原子性以及持久性,但可以 ...