`
dawuafang
  • 浏览: 1104866 次
文章分类
社区版块
存档分类
最新评论

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:指明数据库的用户名 -p:指明数据库的密码 -d:指明数据库的名字 -c:指明collection的名字 --type cvs --headerline(指名第一行是列名,无需要导入) --file要导入的文件

导入导出很简单的,熟练使用这两个命令即可。

2,数据的备份和恢复:数据无价,随着当今大数据时代的到来,数据的是越来越加重要,保存好数据,就相当于保存了价值,所以数据库的备份和恢复工作也是非常的重要,这里看一下Mongodb的备份和操作。

备份:也是bin下的命令mongodump,相对来说较简单:

参数说明:

-h:指明数据库宿主机的IP

-u:指明数据库的用户名

-p:指明数据库的密码

-d:指明数据库的名字

-c:指明collection的名字

-o:指明到要导出的文件名

-q:指明导出数据的过滤条件

恢复:bin下的命令mongorestore

参数说明:

-h:指明数据库宿主机的IP

-u:指明数据库的用户名

-p:指明数据库的密码

-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(主服务器),但是它可以把读操作分给其他的slave(从服务器)。这也就是主从,这种情况,当主服务器宕掉以后,需要我们手动将一台从服务器改为主服务器,这也是这种形式不好的地方。

首先,需要我们安装两台MongoDB服务器(当然也可以通过一台服务器,在不同的端口上)。然后主服务器启动的命令:mongod --master --dbpa "存放数据库的路径" --logpath "存放日志的路径" --port 端口号 这样我们的主服务器就算完成了。 从服务器启动命令: mongod --slave --source 主服务器的ip:主服务器的mongodb的端口号 --dbpa "存放数据库的路径" --logpath "存放日志的路径" --port 端口号 这样的我们主服务器的从服务器也就启动好了,当然我们可以创建多个从服务器。然后我们可以在主服务器进行增删改操作,看从服务器上的数据会随着主服务器的变化而变化,这样就达到了,mongodb的主从分布。

2,Replica Set(副本集)复制,这种分布集群,主要增加了出现故障自动切换和自动修复成员节点,各个DB之间的数据完全一样。和主从最为显著的区别在于其没有固定的节点,它是整个集群选举出的一个主节点,当其共工作不正常时,其它节点强烈推荐使用。

部署步骤:a,分别为每个mongoDB服务器创建data存储路径和log存储路径

b,分别创建主从key文件用于标识集群的私钥,里边存上相同的私钥,改为只读形式的。

c,每个服务器进行启动:mongod --replSet rs1(副本集名字,相同即可) --keyFile key的路径 --port 端口号 --dbpath 数据库存放路径 --logpath 日志路径

d,配置初始化Replica Sets,也就是将这个集合进行配置:登录任意一台:config_rs1={_id:"rs1",members:[{_id:0,host:"服务器1IP:端口",priority:1(优先级)},{id:1,host:"服务器2IP:端口",priority:2(优先级)}]}

然后初始化配置:rs.initiate(config_rs1); Ok即可

这样就弄好了,优先级数字越大,优先级越高,高的这一台将自动选为主服务器,可以进行增删改查,而其它的则是从服务器可以进行读,注意:rs.slaveOk();

好,最后举一个例子,来理解一下这两种架构。主从复制好比小学班级,副本集复制好比大学班级。每个班级都有一个班长,就是master服务器,其它学生是slave服务器。通过班长可以对班级事宜进行增删改查,而通过学生只能对班级事宜进行了解查询。小学的班长请假了,需要我们老师再来指定一个班长,学生没有意识去推荐,而大学班级,则会由学生自行推荐,无须老师的介入。

好,这篇就先到这,mongoDB的学习还有待大大的深入,通过使用不断理解深刻,不断熟悉,不断升华。

分享到:
评论

相关推荐

    30分钟学MongoDB系列——分布式架构复制集(Replica Sets)

    1.分篇章进行学习,内容控制30分钟内 2.1个月疗程,不要放弃治疗哦 3.图文并茂,有问题请发到邮箱

    30分钟学MongoDB系列——分布式架构分片(Sharding)

    1.分篇章进行学习,内容控制30分钟内 2.1个月疗程,不要放弃治疗哦 3.图文并茂,有问题请发到邮箱

    30分钟学MongoDB系列——分布式架构(ReplicaSets+Sharding混合架构)篇

    1.分篇章进行学习,内容控制30分钟内 2.1个月疗程,不要放弃治疗哦 3.图文并茂,有问题请发到邮箱

    30分钟学MongoDB系列——Mongo分布式架构篇(简介)

    1.分篇章进行学习,内容控制30分钟内 2.1个月疗程,不要放弃治疗哦 3.图文并茂,有问题请发到邮箱

    搭建高可用mongodb集群(四)——分片

    而MongoDB主打的就是海量数据架构,他不能解决海量数据怎么行!“分片”就用这个来解决这个问题。传统数据库怎么做海量数据读写?其实一句话概括:分而治之。上图看看就清楚了,如下TaoBao岳旭强提到的架构图:上图...

    数据结构算法

    快速入门 MongoDB(8)8天学通MongoDB——第八天 驱动实践 8天学通MongoDB——第七天 运维技术 8天学通MongoDB——第六天 分片技术 8天学通MongoDB——第五天 主从复制 8天学通MongoDB——第四天 索引操作 8天学通...

    App后台开发运维和架构实践

    第1 章 App 后台入门 .. 16 第2 章 App 后台基础技术 . 35 第3 章 App 后台核心技术 ....第8 章 MongoDB——App 后台新兴的数据库 .. 185 第9 章 App 后台架构剖析 .. 208 第10 章 App 后台架构的演进 255

    搭建高可用mongodb集群(二)——副本集

    在上一篇文章《搭建高可用MongoDB集群(一)——配置MongoDB》提到了几个问题还没有解决。1.主节点挂了能否自动切换连接?目前需要手工切换。2.主节点的读写压力过大如何解决?3.从节点每个上面的数据都是对数据库...

    MongoDB-Manual-zh:MongoDB 中文 手册 | 中文文档 | MongoDB 手册 翻译

    它可以从单服务器部署扩展到大型、复杂的多数据中心架构。利用内存计算的优势,MongoDB 能够提供高性能的数据读写操作。 MongoDB 的本地复制和自动故障转移功能使您的应用程序具有企业级的可靠性和操作灵活性。 本...

    Java全能学习面试手册——Java面试题库.zip

    Java全能学习面试手册——Java面试题库.zip 01 7道消息队列ActiveMQ面试题!.pdf 02 10道Java高级必备的Netty面试题!.pdf 03 10道Java面试必备的设计模式面试题!.pdf 04 10个Java经典的List面试题!.pdf 05 10个...

    搭建高可用mongodb集群(三)——深入副本集内部机制

    该系列文章的第一部分介绍了副本集的配置,这个部分将深入研究一下副本集的内部机制。...一个分布式集群架构中一般都有一个所谓的主节点,可以有很多用途,比如缓存机器节点元数据,作为集群的访问入

    徐雷Java为王互联网高并发架构设计与选型之路6.0.pdf

    他是资深架构师、MongoDB中文社区联席主席——徐雷。徐雷专家专注于分布式架构,Java Spring Boot、Spring Cloud、MongoDB、Redis;拥有10年 开发经历,喜欢专研技术问题;同时还是《MongoDB实战》第2版、《24种...

    imooc-2:node建站攻略(二期)——网站升级

    node建站攻略(二期)——网站升级 本人根据视频敲的源代码,仅供参考 项目架构 基于MEAN架构(Mongo,Express,Angular,Node) 准备工作 安装node&mongodb 安装教程 clone 源码 执行npm install 启动mongodb,OS-X系统,...

    2013中国数据库大会ppt(1)

    DM7 MPP架构——同时满足OLAP与OLTP需求.pdf SAP 让大数据飞翔.pdf 阿里数据库关键技术.pdf 基于Oracle的SQL优化典型案例分.pdf 赢在起点–谈数据库设计规范.pdf 大型业务系统Oracle数据库 10G升级11G实践.pdf 基于...

    2013中国数据大会ppt(2)

    DM7 MPP架构——同时满足OLAP与OLTP需求.pdf SAP 让大数据飞翔.pdf 阿里数据库关键技术.pdf 基于Oracle的SQL优化典型案例分.pdf 赢在起点–谈数据库设计规范.pdf 大型业务系统Oracle数据库 10G升级11G实践.pdf 基于...

Global site tag (gtag.js) - Google Analytics