MongoDB 学习笔记(六):备份与用户管理
一、启动项
1、在启动数据库服务时可以在命令行输入mongod命令,然后直接带一些参数,比如“mongod --dbpath D:\Installations\MongoDB-2.4.6\MongoDBDATA”,还可以将mongod命令后的那些参数写入一个配置文件中, 然后在命令行中使用--config参数指定配置文件,比如将--dbpath参数写入文件中,如下图:
然后在命令行中使用mongod命令加上--config参数一样可以启动数据库服务,如下图:
2、要查看启动数据库服务有哪些参数可以给我们使用,可以使用“mongod --help”命令查看;另外在这个链接中有中文的参数说明(http://www.uspcat.com/forum.php?mod=viewthread&tid=7722&extra=page%3D1)。
3、MongoDB默认的端口是27017,Web访问端口是28017,Web访问端口会是默认端口大小再加1000。比如指定MongoDB的端口是8888,则Web端口会是9888,如下图:
4、停止MongoDB数据库服务
- 直接按下Ctrl+C。
- 登录admin数据库,使用db.shutdownServer()命令,如下图:
二、导入与导出、运行时备份与恢复
1、导出
导出可以使用mongoexport命令,导出会中断其它操作。常用参数:
- -d:指明要导出的数据库
- -c:指明要导出的集合
- -o:指明要导出的文件名
- --host:指明数据库主机地址(不写默认就是本机)
- --port:指明数据库端口(不写默认就是27017)
如下图:导出mdb数据库中的person集合
2、导入
导入可以使用mongoimport命令,导入也会中断其它操作。常用参数:
- --db:指明要导入到的数据库(如果数据库不存在会自动创建)
- --collection:指明要导入到的集合(如果集合不存在会自动创建)
- --file:数据文件地址
- --host:指明数据库主机地址(不写默认就是本机)
- --port:指明数据库端口(不写默认就是27017)
如下图:导入数据到mdb数据库中的person集合
3、运行时备份
运行时备份可以使用mongodump命令,它不会中断其它操作,但可能会遗漏数据,因为可能内存中的数据尚未写回数据库中。如下图:备份mdb数据库
4、运行时恢复
运行时恢复可以使用mongorestore命令,如下图:恢复mdb数据库
5、懒人备份
MongoDB是文件数据库,所以可以用拷贝文件的方式进行备份。
三、Fsync锁与数据修复
1、正如上面所说的运行时备份,它虽然不会中断其它操作,但是可能会遗漏数据,因为它只会备份数据库,缓冲池中没有来得及写回数据库中的数据可能就 没有备份。所以这个时候就可以用到Fsync锁,加上锁后,缓冲池的数据先写回数据库中,然后进行备份或者是恢复,完成后再解锁。如下图:
2、上锁和解锁
- 上锁:上锁只能用在admin数据库上,如下图:
- 解锁:从上图中可以发现解锁可以用db.fsyncUnlock()的方式。
3、数据修复
当停电等不可逆转情况发生,由于MongoDB的存储结构导致会产生垃圾数据,这时候就可以使用数据库的自我修复,命令为db.repairDatabase()。
四、用户管理与安全认证
1、添加用户
为某个数据库添加用户:db.addUser("用户名", "密码")。如下图:为admin数据库添加用户admin001,密码123456,为mdb数据库添加用户mdb001,密码123456
然后在数据库中就会生成一个叫做system.users的集合,里面就保存了该数据库的用户信息,如下图:
2、安全认证
在启动数据库时如果没有加入--auth参数,则MongoDB默认是不会进行安全检查的,不需要用户名和密码就能够进入数据库进行操作了,如下图:进入mdb数据库无法登录进行操作
当启用了安全认证后进入某个数据库需要使用该数据库中的用户名和密码登录后才能进行操作,如下图:首先是进入test数据库,然后切换到mdb数据库,然后使用之前为mdb数据库创建的用户“mdb001”登录,然后该用户就可以进行数据库操作了
当启用了安全认证后,不是admin数据库的用户是不能使用“show dbs”命令的,如下图:
3、删除用户
进入到该数据库,然后删除该数据库中system.users集合中要删除的用户所在文档即可,如下图:
MongoDB 学习笔记(六):备份与用户管理的更多相关文章
- oracle学习笔记(一)用户管理
--oracle学习第一天 --连接 @后面连接数据库实例,具体连接到那个数据库 conn scott/tiger@MYORA1; --修改密码 passw; --显示用户 show user; -- ...
- linux初级学习笔记七:linux用户管理,密码和组命令详解!(视频序号:04_1)
本节学习的命令: 用户管理命令:useradd,userdel,id,finger,usermod,chsh,chfn,passwd,pwck, 组管理命令:groupadd,groupmod,gro ...
- linux初级学习笔记六:linux用户及权限详解!(视频序号:03_4)
本节学习的命令:/etc/passwd,/etc/shadow,/etc/group文件详解 本节学习的技能: 安全上下文 文件与目录的权限管理 影子命令 用户,用户组类别详解 /etc/passwd ...
- MongoDB学习笔记六:进阶指南
[数据库命令]『命令的工作原理』MongoDB中的命令其实是作为一种特殊类型的查询来实现的,这些查询针对$cmd集合来执行.runCommand仅仅是接受命令文档,执行等价查询,因此,> db. ...
- MongoDB学习笔记(六) MongoDB索引用法和效率分析
MongoDB中的索引其实类似于关系型数据库,都是为了提高查询和排序的效率的,并且实现原理也基本一致.由于集合中的键(字段)可以是普通数据类型,也可以是子文档.MongoDB可以在各种类型的键上创建索 ...
- MongoDB学习笔记六—查询下
查询内嵌文档 数据准备 > db.blog.find().pretty() { "_id" : ObjectId("585694e4c5b0525a48a441b5 ...
- MongoDB学习笔记(转)
MongoDB学习笔记(一) MongoDB介绍及安装MongoDB学习笔记(二) 通过samus驱动实现基本数据操作MongoDB学习笔记(三) 在MVC模式下通过Jqgrid表格操作MongoDB ...
- MongoDB学习笔记(三)--权限 && 导出导入备份恢复 && fsync和锁
权限 绑定内网I ...
- Linux学习笔记(六) 进程管理
1.进程基础 当输入一个命令时,shell 会同时启动一个进程,这种任务与进程分离的方式是 Linux 系统上重要的概念 每个执行的任务都称为进程,在每个进程启动时,系统都会给它指定一个唯一的 ID, ...
- MongoDB学习笔记(六)--复制集+sharding分片 && 总结
复制集+sharding分片 背景 主机 IP 服务及端口 Server A ...
随机推荐
- 配置zabbix及安装agent
一.配置zabbix http://ip/zabbix/setup.php Next step Next step 输入数据库密码后,Next step Next step 默认用户名是Admin 密 ...
- 【ZOJ 4060】Flippy Sequence
[链接] 我是链接,点我呀:) [题意] [题解] 按照两个区间的排列方式 我们可以分成以下几种情况 会发现这两个区间的作用 最多只能把两段连续不同的区间变为相同. 那么写个for处理出连续不相同的一 ...
- TotoiseSVN使用教程
TortoiseSVN百科 TortoiseSVN 是 Subversion 版本控制系统的一个免费开源客户端,可以超越时间的管理文件和目录.文件保存在中央版本库,除了能记住文件和目录的每次修改以外, ...
- Tensorflow 0.8.0 安装配置方法
本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/51280087 折腾了一下,给工作站配置 ...
- (20)Spring Boot Servlet【从零开始学Spring Boot】
Web开发使用 Controller 基本上可以完成大部分需求,但是我们还可能会用到 Servlet.Filter.Listener.Interceptor 等等. 当使用Spring-Boot时,嵌 ...
- 服务器监控(包括性能指标与web应用程序)
http://blog.csdn.net/yao123long/article/details/53142029 http://blog.csdn.net/heyongluoyao8/article/ ...
- Spring boot 前后台分离项目 怎么处理spring security 抛出的异常
最近在开发一个项目 前后台分离的 使用 spring boot + spring security + jwt 实现用户登录权限控制等操作.但是 在用户登录的时候,怎么处理spring securi ...
- [Angular] Increasing Performance by using Pipe
For example you make a function to get rating; getRating(score: number): string { let rating: string ...
- hdoj--1533--Going Home(最小费用流)
Going Home Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Tota ...
- hdoj-1827-Summer Holiday(scc+缩点)
Summer Holiday Time Limit: 10000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...