前面介绍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(四)——管理架构的更多相关文章

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

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

  2. MongoDB基本管理命令

    MongoDB是一个NoSQL数据库系统:一个数据库可以包含多个集合(Collection),每个集合对应于关系数据库中的表:而每个集合中 可以存储一组由列标识的记录,列是可以自由定义的,非常灵活,由 ...

  3. MongoDB集群架构及搭建

    MongoDB分布式集群 MongDB分布式集群能够对数据进行备份,提高数据安全性,以及提高集群提高读写服务的能力和数据存储能力.主要通过副本集(replica)对数据进行备份,通过分片(shardi ...

  4. 最佳的MongoDB客户端管理工具

    <最佳的MongoDB客户端管理工具> 作者:chszs,未经博主允许不得转载.经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs 一个好的MongoD ...

  5. 大型网站技术架构(四)--核心架构要素 开启mac上印象笔记的代码块 大型网站技术架构(三)--架构模式 JDK8 stream toMap() java.lang.IllegalStateException: Duplicate key异常解决(key重复)

    大型网站技术架构(四)--核心架构要素   作者:13GitHub:https://github.com/ZHENFENG13版权声明:本文为原创文章,未经允许不得转载.此篇已收录至<大型网站技 ...

  6. NoSQL学习二:MongoDB基本管理命令

    MongoDB命令学习  一.MongoDB命令帮助 在安装MongoDB后,启动服务器进程(mongod),可以通过在客户端命令mongo实现对MongoDB的管理和监控: 这是MongoDB最上层 ...

  7. MongoDB权限管理之用户名和密码的操作

    MongoDB默认是不需要输入用户名和密码,客户就可以登录的.但是出于安全性的考虑,我们还是要为其设置用户名和密码.本文主要介绍的是MongoDB权限管理之用户名和密码的操作,希望能对您有所帮助. 本 ...

  8. linux驱动程序之电源管理之linux的电源管理架构(3)

    设备电源管理 Copyright (c) 2010 Rafael J. Wysocki<rjw@sisk.pl>, Novell Inc. Copyright (c) 2010 Alan ...

  9. python学习笔记--Django入门四 管理站点--二

    接上一节  python学习笔记--Django入门四 管理站点 设置字段可选 编辑Book模块在email字段上加上blank=True,指定email字段为可选,代码如下: class Autho ...

随机推荐

  1. 【MySql存储过程】DATE_ADD用法

    定义和用法 DATE_ADD() 函数向日期添加指定的时间间隔. 语法 DATE_ADD(date,INTERVAL expr type) date 参数是合法的日期表达式.expr 参数是您希望添加 ...

  2. php网页显示正方形图片缩略图

    需求是这样的:原始图片的大小是不定的,类似800*600.1000*756,现有一个页面要以正方形(60*60)显示这些图片,注意:图片只能在内存处理,不能缩小后保存到本地磁盘. 解决办法: html ...

  3. vmware 虚拟机 mount :no medium found解决方法

    使用vmware时,在虚拟机设置里,设置CD/DVD为系统镜像,挂载时,有时会有找不到介质或者no medium found之类的提示.根本原因是iso镜像并没有加载到虚拟机系统内.解决办法: 首先确 ...

  4. 如何卸载eclipse中的ADT

    卸载ADT的方法,方法如下: 1.选择 Help > Install New Software: 2.在"Details" 面板中, 点击"What is alre ...

  5. 《深入Java虚拟机学习笔记》- 第12章 整数运算

    Java虚拟机提供几种进行整数算术运算的操作码,他们执行基于int和long类型的运算.当byte.short和char类型值参与算术运算时,首先会将它们转换为int类型.这些操作码都不会抛出异常,溢 ...

  6. delphi 数据导出到word

    procedure TFrmWeekAnalysisQry.BtnExportToExcelClick(Sender: TObject);var wordApp,WordDoc,WrdSelectio ...

  7. e2e 自动化集成测试 架构 实例 WebStorm Node.js Mocha WebDriverIO Selenium Step by step (二) 图片验证码的识别

    上一篇文章讲了“e2e 自动化集成测试 架构 京东 商品搜索 实例 WebStorm Node.js Mocha WebDriverIO Selenium Step by step 一 京东 商品搜索 ...

  8. Leetcode OJ : Compare Version Numbers Python solution

    Total Accepted: 12400 Total Submissions: 83230     Compare two version numbers version1 and version2 ...

  9. codeforce 603B - Moodular Arithmetic

    题意:给出方程 f(kx%p)=kf(x)%p ,f:A->B,不同的映射函数f有几种,其中f,A,B值域为{0,1,2..p-1},p为素数(除了2),k为小于p的一个常数. 思路:明显是求循 ...

  10. InetAddress

    InetAddress对域名进行解析是使用本地机器配置或者网络命名服务(如域名系统(Domain Name System,DNS)和网络信息服务(Network Information Service ...