MongoDB(四)——管理架构
前面介绍MongoDB基础,在这里,我们推荐两个网站,我们可以看看,评论是相当具体:http://www.w3cschool.cc/mongodb/mongodb-tutorial.html。http://www.yiibai.com/mongodb/mongodb_create_backup.html#。好这篇文章来看一下MongoDB的数据管理,架构搭建。好。先来看张图:
下边依照这张图进行一一介绍。
一,管理篇,当然主要是对数据库的管理,包含我们最关心的数据。和管理这些数据的用户。
不管非关系型还是关系型数据库。这一点都是很重要的。
1,数据的导入导出:对于MongoDB的数据导入导出,用到的还是bin下的命令mongoexport(导出),mongoimport(导入)。
mongoexport:默认导出的JSON格式的文件。
进入dos命令窗体,在d:\mongodb\bin的路径下,利用mongoexport命令,能够通过mongoexport -help进行帮助查询。语法:mongoexport -d mydatabase -c mycollection --port 端口 --cvs -f 要导出的列 -0 指定导出的路径名+文件名称
mongoimport:和上边的使用方法基本一样,能够导入JSON格式数据,也能够导出cvs数据格式。
mongoimport -h:指明数据库宿主机的IP -u:指明数据库的username -p:指明数据库的password -d:指明数据库的名字 -c:指明collection的名字 --type cvs --headerline(指名第一行是列名,无须要导入) --file要导入的文件
导入导出很easy的,熟练使用这两个命令就可以。
2,数据的备份和恢复:数据无价。随着当今大数据时代的到来,数据的是越来越加重要,保存好数据。就相当于保存了价值,所以数据库的备份和恢复工作也是很的重要,这里看一下Mongodb的备份和操作。
备份:也是bin下的命令mongodump,相对来说较简单:
參数说明:
-h:指明数据库宿主机的IP
-u:指明数据库的username
-p:指明数据库的password
-d:指明数据库的名字
-c:指明collection的名字
-o:指明到要导出的文件名称
-q:指明导出数据的过滤条件
恢复:bin下的命令mongorestore
參数说明:
-h:指明数据库宿主机的IP
-u:指明数据库的username
-p:指明数据库的password
-d:指明数据库的名字
-c:指明collection的名字
-o:指明到要备份的文件名称
-q:指明备份数据的过滤条件
3,用户管理,mongodb里边的用户管理,他有两类用户。一个是超级管理员,一个每一个数据库的数据库管理员。默认情况下是没有权限认证的。仅仅有启用了安全性认证后。数据库认证的用户才干够进行读写操作。
启动时指定 --auth即加入了权限认证。
1.加入并验证用户,当中这是给本数据test加入用户,第三个參数为readOnly,true或false,表示是否为仅仅读。
> use test
> db.addUser("zjx","tsjianxin")
> db.auth("zjx","tsjianxin")
2.查看已存在的用户
> db.system.users.find()
3.删除用户
> use dbname (admin or 51cv ,etc)
> db.system.users.remove({user:"haha"})
> db.system.users.find()
给admin加入的用户为超级管理员,能够管理其他数据库,可是每一个数据库的登录验证必须从自己管理的数据库进行验证,超级管理必须通过admin进行管理。然后切换来管理其他数据库。
二,架构篇,这里简单看一下分布式数据库的搭建,分为主从复制和副本集两个情况,简单来看一下。
1,Master-Slave(主从)复制:MongoDB支持在多个机器中通过异步复制达到故障转移和实现冗余。多机器中同一时刻仅仅有一台是用于写操作。也就是Master(主server),可是它能够把读操作分给其他的slave(从server)。这也就是主从,这样的情况,当主server宕掉以后,须要我们手动将一台从server改为主server,这也是这样的形式不好的地方。
首先,须要我们安装两台MongoDBserver(当然也能够通过一台server。在不同的端口上)。然后主server启动的命令:mongod --master --dbpa "存放数据库的路径" --logpath "存放日志的路径" --port 端口号 这样我们的主server就算完毕了。
从server启动命令: mongod --slave --source 主server的ip:主server的mongodb的端口号 --dbpa "存放数据库的路径" --logpath "存放日志的路径" --port 端口号 这样的我们主server的从server也就启动好了,当然我们能够创建多个从server。然后我们能够在主server进行增删改操作,看从server上的数据会随着主server的变化而变化,这样就达到了,mongodb的主从分布。
2,Replica Set(副本集)复制,这样的分布集群,主要添加了出现问题自己主动切换和自己主动修复成员节点。各个DB之间的数据全然一样。和主从最为显著的差别在于其没有固定的节点,它是整个集群选举出的一个主节点,当其共工作不正常时,其他节点强烈推荐使用。
部署步骤:a,分别为每一个mongoDBserver创建data存储路径和log存储路径
b,分别创建主从key文件用于标识集群的私钥。里边存上同样的私钥。改为仅仅读形式的。
c,每一个server进行启动:mongod --replSet rs1(副本集名字,同样就可以) --keyFile key的路径 --port 端口号 --dbpath 数据库存放路径 --logpath 日志路径
d,配置初始化Replica Sets,也就是将这个集合进行配置:登录随意一台:config_rs1={_id:"rs1",members:[{_id:0,host:"server1IP:端口",priority:1(优先级)}。{id:1,host:"server2IP:端口",priority:2(优先级)}]}
然后初始化配置:rs.initiate(config_rs1); Ok就可以
这样就弄好了,优先级数字越大。优先级越高。高的这一台将自己主动选为主server。能够进行增删改查。而其他的则是从server能够进行读。注意:rs.slaveOk();
好。最后举一个样例。来理解一下这两种架构。
主从复制好比小学班级,副本集复制好比大学班级。
每一个班级都有一个班长。就是masterserver。其他学生是slaveserver。通过班长能够对班级事宜进行增删改查,而通过学生仅仅能对班级事宜进行了解查询。小学的班长请假了,须要我们老师再来指定一个班长,学生没有意识去推荐,而大学班级,则会由学生自行推荐,无须老师的介入。
大,这会第一本,mongoDB在深入研究还有待大大,通过使用连续的深刻理解。不断熟悉,。连续蒸馏。
MongoDB(四)——管理架构的更多相关文章
- NoSQL数据库Mongodb副本集架构(Replica Set)高可用部署
NoSQL数据库Mongodb副本集架构(Replica Set)高可用部署 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. MongoDB 是一个基于分布式文件存储的数据库.由 C ...
- MongoDB基本管理命令
MongoDB是一个NoSQL数据库系统:一个数据库可以包含多个集合(Collection),每个集合对应于关系数据库中的表:而每个集合中 可以存储一组由列标识的记录,列是可以自由定义的,非常灵活,由 ...
- MongoDB集群架构及搭建
MongoDB分布式集群 MongDB分布式集群能够对数据进行备份,提高数据安全性,以及提高集群提高读写服务的能力和数据存储能力.主要通过副本集(replica)对数据进行备份,通过分片(shardi ...
- 最佳的MongoDB客户端管理工具
<最佳的MongoDB客户端管理工具> 作者:chszs,未经博主允许不得转载.经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs 一个好的MongoD ...
- 大型网站技术架构(四)--核心架构要素 开启mac上印象笔记的代码块 大型网站技术架构(三)--架构模式 JDK8 stream toMap() java.lang.IllegalStateException: Duplicate key异常解决(key重复)
大型网站技术架构(四)--核心架构要素 作者:13GitHub:https://github.com/ZHENFENG13版权声明:本文为原创文章,未经允许不得转载.此篇已收录至<大型网站技 ...
- NoSQL学习二:MongoDB基本管理命令
MongoDB命令学习 一.MongoDB命令帮助 在安装MongoDB后,启动服务器进程(mongod),可以通过在客户端命令mongo实现对MongoDB的管理和监控: 这是MongoDB最上层 ...
- MongoDB权限管理之用户名和密码的操作
MongoDB默认是不需要输入用户名和密码,客户就可以登录的.但是出于安全性的考虑,我们还是要为其设置用户名和密码.本文主要介绍的是MongoDB权限管理之用户名和密码的操作,希望能对您有所帮助. 本 ...
- linux驱动程序之电源管理之linux的电源管理架构(3)
设备电源管理 Copyright (c) 2010 Rafael J. Wysocki<rjw@sisk.pl>, Novell Inc. Copyright (c) 2010 Alan ...
- python学习笔记--Django入门四 管理站点--二
接上一节 python学习笔记--Django入门四 管理站点 设置字段可选 编辑Book模块在email字段上加上blank=True,指定email字段为可选,代码如下: class Autho ...
随机推荐
- bzoj4028
一眼分块题…… 分块,维护每个块的总的gcd和xor和 先思考我们应该怎么查询,考虑到gcd是一个神奇的东西,因为它最多变化logX次 于是我们从前往后扫描每个块,如果一个块内总的gcd是当前扫描的前 ...
- CodeForces Round #285 Div.2
C.Misha and Forest (图论 BFS) 比赛进行了一半才想起来有场CF没打,=_=|| 前两道题快速切掉,C题一直卡没什么好的思路 憋了几天,忍不住偷偷瞄了一下别人AC的代码,发现我题 ...
- Imageview使用记录
1. imageView清除背景 原文网址:http://blog.csdn.net/lzq1039602600/article/details/40393591 两种清除 imageView的背景 ...
- CSS3实现jquery的特效
实现 “慕课网” 的图片滑过缩放的效果 技术点:css3—— -webkit-transform:scale(1.2); .course-list-img .img_1:hover{ -webki ...
- Discuz!NT中的Redis架构设计
在之前的Discuz!NT缓存的架构方案中,曾说过Discuz!NT采用了两级缓存方式,即本地缓存+memcached方式.在近半年多的实际运行环境下,该方案经受住了检验.现在为了提供多样式的解决方案 ...
- NetCat简介与使用方法
精品学习网考试频道小编应广大考生的需要,特为参加考试的考生策划了“NetCat简介与使用方法”专题等有关资料,供考生参考! 在入侵中它是最经典的工具之一 ,NetCat被所有的网络安全爱好者和研究者称 ...
- JVM内存结构之一--总体介绍
Java 虚拟机在执行Java程序的时候会把它管理的内存区域划为几部分,这一节我们就来解析一下Java的内存区域. 有的人把JVM管理的内存简单地分为堆内存和栈内存,这样分未免有些太肤浅了. Java ...
- LIBSVM的使用方法
[原文:http://wenku.baidu.com/view/7e7b6b896529647d27285276.html] 目 录 1 Libsvm下载... 3 2 Libsvm3.0环境变量设 ...
- gSoap的 “error LNK2001: 无法解析的外部符号 _namespaces”解决方法
gSoap是C/C++开发webService服务第三方的公开类库. 出现上述错误是因为缺少必要的头文件导致的. 在用wsdl2h生成头文件的时候,一并生成了类似 xx.nsmap 的文件,这个文件实 ...
- tomcat Connector 连接器
连接器的核心功能,本文去除非核心功能,留下整个程序的框架,便于理解. 1.接受连接请求 2.创建request,和response. 3.调用容器对应的Invoke方法, 首先看类的依赖结构. 1.C ...