MongoDB 备份恢复

网友投稿 733 2022-05-29

一、概述

1.1 MongoDB概念

MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。在nosql数据库里,大部分的查询都是键值对(key、value)的方式。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中最像关系数据库的。其特征NoSQL、文档存储、Json数据模型、支持事务。

1.2 NoSQL概念

NoSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。

NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。

1.3 NoSQL的特征

高扩展性 :Nosql去掉了关系数据库的关系型特性,易于横向扩展。

高性能 :Nosql通过简单的key-value方式获取数据,非常快速。还有NoSQL的Cache是记录级的,是一种细粒度的Cache,所以NoSQL在这个层面上来说就要性能高很多。

灵活的数据模型 :相对于关系数据库里,增删字段的繁琐,NoSQL无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。

MongoDB 备份恢复

高可用 :NoSQL在不太影响性能的情况,就可以方便的实现高可用的架构。比如mongodb通过mongos、config server replica set,shard就可以快速配置出高可用配置。

二 备份恢复

a.mongodb数据备份

mongodump命令脚本语法如下:

mongodump -h dbhost -d dbname -o dbdirectory

-h:

MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017

-d:

需要备份的数据库实例,例如:test

-o:

备份的数据存放位置,例如:c:\data\dump,当然该目录需要提前建立,在备份完成后,系统自动在dump目录下建立一个test目录,这个目录里面存放该数据库实例的备份数据。

语法

描述

实例

mongodump --host HOST_NAME --port PORT_NUMBER

该命令将备份所有MongoDB数据

mongodump --host localhost --port 27017

mongodump --dbpath DB_PATH --out BACKUP_DIRECTORY

mongodump --dbpath /data/db/ --out /data/backup/

mongodump --collection COLLECTION --db DB_NAME

该命令将备份指定数据库的集合。

mongodump --collection mycol --db test

b.mongodb数据恢复

mongorestore命令脚本语法如下:

>mongorestore -h <:port> -d dbname

--host <:port>, -h <:port>:

MongoDB所在服务器地址,默认为: localhost:27017

--db , -d :

需要恢复的数据库实例,例如:test,当然这个名称也可以和备份时候的不一样,比如test2

--drop:

恢复的时候,先删除当前数据,然后恢复备份的数据。就是说,恢复后,备份后添加修改的数据都会被删除,慎用哦!

mongorestore 最后的一个参数,设置备份数据所在位置,例如:/tmp/testdb

你不能同时指定 和 --dir 选项,--dir也可以设置备份目录。

--dir:

指定备份的目录

你不能同时指定 和 --dir 选项。

此时查看数据已经正常恢复。

3.7 密码权限

为mongodb设置密码,需要进行auth启动,在配置文件添加auth=true

a.设置数据库管理员

> use admin switched to db admin > db.createUser({user:"root",pwd:"mongopwd",roles:["userAdminAnyDatabase"]}) #创建用户密码,并设置权限 Successfully added user: { "user" : "root", "roles" : [ "userAdminAnyDatabase" ] } > db.auth("root","mongopwd") #认证,返回1为认证成功 1

认证通过进入数据库db.auth 也可以在登录的时候直接指定用户名密码登录

mongo -u root -p mongopwd --authenticationDatabase admin

b.创建数据库用户

> use test switched to db test > db test > db.createUser({user:"testuser",pwd:"testpass",roles:["readWrite"]}) Successfully added user: { "user" : "testuser", "roles" : [ "readWrite" ] } > db.auth("testuser","testpass") 1

MongoDB 数据库

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:SpringBoot系列之@Conditional注解用法简介
下一篇:前端html基本标签
相关文章