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的简单操作, ...
 
随机推荐
- phpstorm 配置 babel 支持EcmaScript6
			
1.安装nodejs 2.npm install --save-dev babel-cli 3.npm install babel-preset-es2015 --save-dev 4.phpstor ...
 - Controller
			
http://www.cnblogs.com/artech/archive/2012/08/15/action-result-03.html
 - Golang里面使用protobuf(proto3)
			
参考文章:https://developers.google.com/protocol-buffers/docs/gotutorial 1.执行指令: go envgo get github.com/ ...
 - Android入门笔记(重制版)
			
Android项目的目录结构(Eclipse版) src:项目源代码文件夹 R.java:存放项目中所有资源文件的资源id,永远不要修改 Android.jar:Android的jar包,导入此包方可 ...
 - javascript标识符
			
标识符,就是指变量.函数.属性的名字,或者函数的参数. 规则 1.第一个字符必须是一个字母.下划线或是美元符号($) 2.其他字符可以是字母.下划线.美元符号或数字 3.不能是关键字和保留字 4.区分 ...
 - ArcEngine :The XY domain on the spatial reference is not set or invalid错误
			
在创建数据集的时候,提示The XY domain on the spatial reference is not set or invalid错误. 原因:未设置空间参考(ISpatialRefer ...
 - Svg path画线(不管是直线还是曲线)在一定情况下线条的宽度不一的情况(记录)
			
在项目中涉及到svg: 使用path划线实现图表功能. 记录在实现的过程中发现的问题:path在小像素的情况下画出的线条宽度不一样.这是为什么呢? 以下是我做的猜想: 可以看图 在宽度给的很足的时候没 ...
 - 【SFTP】使用Jsch实现Sftp文件下载-支持断点续传和进程监控
			
参考上篇文章: <[SFTP]使用Jsch实现Sftp文件下载-支持断点续传和进程监控>:http://www.cnblogs.com/ssslinppp/p/6248763.html ...
 - java基础-servlet-2:生命周期
			
1.加载(class load) 2.实例化 3.init() 4.doGet() 5.destroy 只有一个对象存在于服务端提供服务.再次访问,不会再起新对象.
 - jsgen 搭建
			
1,mongodb 2,redis http://www.cnblogs.com/lxx/archive/2013/06/04/3116985.html http://blog.csdn.net/w ...