search
HomeDatabaseMysql TutorialMongoDB(四)管理架构

前边介绍了MongoDB的基础,这里推荐两个网站,大家可以查看一下,讲解的还是比较详细的:http://www.w3cschool.cc/mongodb/mongodb-tutorial.html,http://www.yiibai.com/mongodb/mongodb_create_backup.html#。好这篇文章来看一下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的学习还有待大大的深入,通过使用不断理解深刻,不断熟悉,不断升华。

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
mongodb php 扩展没有怎么办mongodb php 扩展没有怎么办Nov 06, 2022 am 09:10 AM

mongodb php扩展没有的解决办法:1、在linux中执行“$ sudo pecl install mongo”命令来安装MongoDB的PHP扩展驱动;2、在window中,下载php mongodb驱动二进制包,然后在“php.ini”文件中配置“extension=php_mongo.dll”即可。

Redis和MongoDB的区别与使用场景Redis和MongoDB的区别与使用场景May 11, 2023 am 08:22 AM

Redis和MongoDB都是流行的开源NoSQL数据库,但它们的设计理念和使用场景有所不同。本文将重点介绍Redis和MongoDB的区别和使用场景。Redis和MongoDB简介Redis是一个高性能的数据存储系统,常被用作缓存和消息中间件。Redis以内存为主要存储介质,但它也支持将数据持久化到磁盘上。Redis是一款键值数据库,它支持多种数据结构(例

Go语言中使用MongoDB:完整指南Go语言中使用MongoDB:完整指南Jun 17, 2023 pm 06:14 PM

MongoDB是一种高性能、开源、文档型的NoSQL数据库,被广泛应用于Web应用、大数据以及云计算领域。而Go语言则是一种快速、开发效率高、代码可维护性强的编程语言。本文将为您完整介绍如何在Go语言中使用MongoDB。一、安装MongoDB在使用MongoDB之前,需要先在您的系统中安装MongoDB。在Linux系统下,可以通过如下命令安装:sudo

php7.0怎么安装mongo扩展php7.0怎么安装mongo扩展Nov 21, 2022 am 10:25 AM

php7.0安装mongo扩展的方法:1、创建mongodb用户组和用户;2、下载mongodb源码包,并将源码包放到“/usr/local/src/”目录下;3、进入“src/”目录;4、解压源码包;5、创建mongodb文件目录;6、将文件复制到“mongodb/”目录;7、创建mongodb配置文件并修改配置即可。

php怎么使用mongodb进行增删查改操作php怎么使用mongodb进行增删查改操作Mar 28, 2023 pm 03:00 PM

MongoDB作为一款流行的NoSQL数据库,已经被广泛应用于各种大型Web应用和企业级应用中。而PHP语言也作为一种流行的Web编程语言,与MongoDB的结合也变得越来越重要。在本文中,我们将会学习如何使用PHP语言操作MongoDB数据库进行增删查改的操作。

SpringBoot中logback日志怎么保存到mongoDBSpringBoot中logback日志怎么保存到mongoDBMay 18, 2023 pm 07:01 PM

自定义Appender非常简单,继承一下AppenderBase类即可。可以看到有个AppenderBase,有个UnsynchronizedAppenderBase,还有个AsyncAppenderBase继承了UnsynchronizedAppenderBase。从名字就能看出来区别,异步的、普通的、不加锁的。我们定义一个MongoDBAppender继承UnsynchronizedAppenderBasepublicclassMongoDBAppenderextendsUnsynchron

SpringBoot怎么整合Mongodb实现增删查改SpringBoot怎么整合Mongodb实现增删查改May 13, 2023 pm 02:07 PM

一、什么是MongoDBMongoDB与我们之前熟知的关系型数据库(MySQL、Oracle)不同,MongoDB是一个文档数据库,它具有所需的可伸缩性和灵活性,以及所需的查询和索引。MongoDB将数据存储在灵活的、类似JSON的文档中,这意味着文档的字段可能因文档而异,数据结构也会随着时间的推移而改变。文档模型映射到应用程序代码中的对象,使数据易于处理。MongoDB是一个以分布式数据库为核心的数据库,因此高可用性、横向扩展和地理分布是内置的,并且易于使用。况且,MongoDB是免费的,开源

Swoole与MongoDB的整合:构建高性能的文档数据库系统Swoole与MongoDB的整合:构建高性能的文档数据库系统Jun 14, 2023 am 11:51 AM

在现代企业应用程序开发中,需要处理海量数据和高并发的访问请求。为了满足这些需求,开发人员需要使用高性能的数据库系统,以确保系统的稳定性和可扩展性。本文将介绍如何使用Swoole和MongoDB构建高性能的文档数据库系统。Swoole是一个基于PHP语言开发的异步网络通信框架,它能够大大提高PHP应用程序的性能和并发能力。MongoDB是一种流行的文档数据库,

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

Hot Tools

VSCode Windows 64-bit Download

VSCode Windows 64-bit Download

A free and powerful IDE editor launched by Microsoft

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool

DVWA

DVWA

Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

EditPlus Chinese cracked version

EditPlus Chinese cracked version

Small size, syntax highlighting, does not support code prompt function