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的简单操作, ...
随机推荐
- 面向amd64的XXX与与项目的目标平台“x86”不兼容
打开IIS服务器,选择应用程序池,设置中,有一个打开32位程序,选择FALSE,如果开启,在64位下就会出错.一般关闭
- golang开发环境(2016.9.16)
一.windows下安装 1.下载go1.7.3.windows-amd64.msi,建议默认安装到‘C:\Go\’ 2.环境变量 变量 值 说明 Path C:\Go\bin 安装程序默认会设置,如 ...
- 推荐的Android ORM框架
1. OrmLite OrmLite 不是 Android 平台专用的ORM框架,它是Java ORM.支持JDBC连接,Spring以及Android平台.语法中广泛使用了注解(Annotation ...
- Hadoop Pipeline详解[摘抄]
最近使用公司内部的一个框架写map reduce发现没有封装hadoop streaming这些东西,查了下pipeline相关的东西 Hadoop Pipeline详解 20. Aug / had ...
- jquery之实例应用
Query是一个兼容多浏览器的javascript库,核心理念是write less,do more(写得更少,做得更多),对javascript进行了封装,是的更加便捷的开发,并且在兼容性方面十分优 ...
- 初转java随感(一)程序=数据结构+算法
大学刚学编程的时候,有一句很经典的话程序=数据结构+算法 今天有了进一步认识. 场景: 1.当前局面 (1)有现成的封装好的分页组件 返回结果是page.类型为:Page.包括 page 分页信息,d ...
- Java Junit单元测试
使用Junit进行单元测试,首先引入Junit的jar,配置如下. @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(&quo ...
- oracle基础教程(8)oracle修改字符集
oracle基础教程(8)oracle修改字符集 1.用dba连接数据库 -->sqlplus / as sysdba 2.查看字符集 -->SELECT parameter, value ...
- java sdk与jdk区别
SDK是Software Development Kit的缩写,中文意思是"软件开发工具包".这是一个覆盖面相当广泛的名词,可以这么说:辅助开发某一类软件的相关文档.范例和工具的集 ...
- 安装Oracle报错,全部为未知!
安装Oracle一开始就报错:需要将以下日志文件发送给管理员,<未知><未知><未知>. 这种问题需要对oracle的setup.exe设置 兼容性.具体如下图: