MongoDB备份与恢复总结

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: MongoDB备份与恢复总结

1.MongoDB的备份(mongodump)

MongoDB提供了mongodump命令用于备份数据库,同时也可以使用mongorestore命令将备份数据恢复到MongoDB。mongodump命令可以备份整个数据库或者指定集合,可以指定备份的文档的查询条件,支持压缩备份等选项。

mongodump命令的选项:

-h, --host:指定MongoDB服务器地址,默认为localhost。

-port, --port:指定MongoDB服务器端口,默认为27017。

-u, --username:MongoDB服务器的用户名。

-p, --password:MongoDB服务器的密码。

-db, --db:备份指定的数据库。

-c, --collection:备份指定的集合。

-q, --query:备份指定的文档查询条件,例如:‘{ age: { $gt: 30 } }’。

-o, --out:指定备份文件的输出路径。

–gzip:使用gzip压缩备份文件。

示例:

备份整个数据库:

mongodump --host localhost --port 27017 --out /backup/mongodb/

备份指定数据库:

mongodump --host localhost --port 27017 -d mydb --out /backup/mongodb/

备份指定集合:

mongodump --host localhost --port 27017 -d mydb -c mycollection --out /backup/mongodb/

备份指定文档:

mongodump --host localhost --port 27017 -d mydb -c mycollection -q '{ age: { $gt: 30 } }' --out /backup/mongodb/

压缩备份文件:

mongodump --host localhost --port 27017 -d mydb -c mycollection --out /backup/mongodb/ --gzip

在使用mongodump时,需要注意以下几个方面:

mongodump需要在执行时指定主机和端口号,以便连接到MongoDB实例。

mongodump默认会备份所有的数据库,如果只需要备份指定数据库,需要使用–db选项指定。

mongodump默认会备份所有的集合,如果只需要备份指定集合,需要使用–collection选项指定。

mongodump默认将备份文件保存在当前工作目录下的dump文件夹中,可以使用-o选项来指定备份文件保存的目录。

mongodump备份的数据是二进制格式的,不能直接进行查看和编辑,如果需要恢复数据,需要使用mongorestore命令。

mongodump备份的数据包括数据以及索引信息,如果备份文件较大,需要考虑使用–gzip选项进行压缩,以减少备份文件的大小。

mongodump备份的数据在备份时是一个快照,不能保证数据的一致性,在进行数据恢复时需要特别注意。

mongodump备份的数据并不包括用户和角色等安全信息,如果需要备份这些信息,需要使用mongodump的–users和–authenticationDatabase选项。

mongodump备份的数据并不包括oplog,如果需要备份oplog,需要使用mongodump的–oplog选项。

总的来说,使用mongodump备份数据时需要考虑备份的范围、备份文件的大小、备份文件的保存位置以及数据恢复的问题。

备份的数据可以用mongorestore工具进行恢复,具体操作方法可参考MongoDB官方文档。建议使用mongodump进行备份操作,以确保数据的完整性和一致性。

2.MongoDB的恢复(mongorestore)

MongoDB中的恢复指的是通过mongorestore命令将备份数据恢复到MongoDB数据库中。mongorestore是MongoDB自带的命令行工具,可以将备份数据从备份文件或归档文件中恢复到MongoDB中。

MongoDB的恢复(mongorestore)是一个命令行工具,用于从备份文件中还原数据库。以下是mongorestore命令的选项和示例:

选项:

–help:显示命令行帮助信息。

–host:指定MongoDB服务器的主机地址。

–port:指定MongoDB服务器的端口。

–username:指定MongoDB服务器的用户名。

–password:指定MongoDB服务器的密码。

–authenticationDatabase:指定用于身份验证的数据库。

–db:还原到指定的数据库。

–collection:还原到指定的集合。

–drop:在还原之前删除现有的集合。

–gzip:使用Gzip格式的备份文件。

示例:

还原整个数据库

以下命令还原整个数据库:

mongorestore /path/to/backup/directory

这将还原备份目录中的所有数据库。

还原指定数据库

以下命令还原指定的数据库:

mongorestore --db test /path/to/backup/directory/test

这将还原备份目录中的test数据库。

还原指定集合

以下命令还原指定的集合:

mongorestore --db test --collection users /path/to/backup/directory/test/users.bson

这将还原备份目录中test数据库中的users集合。

还原到不同的数据库

以下命令将备份文件中的数据库还原到不同的数据库中:

mongorestore --nsFrom 'old_db.*' --nsTo 'new_db.*' /path/to/backup/directory

这将备份文件中的old_db数据库还原到new_db数据库中。

使用Gzip格式的备份文件

如果备份文件是Gzip格式的,请使用以下命令进行恢复:

mongorestore --gzip /path/to/backup/directory

这将还原备份目录中的所有数据库,同时将使用Gzip格式的备份文件。

使用mongorestore命令,可以从备份文件中还原MongoDB数据库。可以使用选项来指定还原的数据库、集合、服务器地址和身份验证等信息。此外,还可以通过使用Gzip格式的备份文件来压缩备份数据。

一旦mongorestore命令开始运行,它将从备份文件中读取数据,并将其恢复到指定的目标数据库和集合中。这可能需要一些时间,特别是对于大型数据集。

完成恢复后,可以使用MongoDB的命令行工具或图形界面验证数据是否恢复成功。同时也可以使用mongodump命令进行备份验证。

需要注意的是,使用mongorestore命令恢复数据时,如果目标数据库和集合已经存在,则mongorestore将覆盖它们中的数据。因此,在运行mongorestore命令之前,请确保备份数据不会覆盖现有的数据。

3. MongoDB命令总结

一、数据库操作

查看数据库

show dbs

切换(创建)数据库

use mydatabase

删除当前数据库

db.dropDatabase()

统计数据库信息

db.stats()

二、集合操作

查看集合

show collections

删除集合

db.users.drop()

三、文档操作

插入文档

db.users.insert({

name:‘harttle’,

url:‘http://harttle.com

})

查询文档

查询所有

db.users.find()

条件查询

db.表名.find()查看表全部

db.表名.find().pretty()可视化

db.表名.distinct(‘key’) 去重复

db.表名.find({key:vules}) 查找

db.表名.find({key:{$lt:55,$gt:45}}).pretty()大于45小于55的

lt <   lte<=    gt>    gte>=

db.表名.find({key:/字段/}).pretty() 查找正则包含字段

db.表名.find({},{name:0}) 只显示name

db.表名.find().sort({age:1})  对age升序 -1降序

db.表名.find().limit(数字) 取前几条的数据  skil( )跳过几条数据

db.表名.find({$or:[{},{}]})条件或

db.表名.count()统计有几条数据

db.表名.find({key:{$ne:}})  找key不等于

db.表名.find({key:{$in:[“a”,“b”]}})找key有a,b的

db.表名.find({key:{$nin:[  ]}}) 不在的

db.表名.find({key:{$exists:true}}) 找有key的

db.表名.find({key:{&type:类型}}) 找key是某类型的

更新文档

db.users.update({name:‘harttle’},

{url:‘http://harttle.com’})

删除文档

删除所有

db.users.remove({})

条件删除

db.users.remove({

url:‘http://harttle.com

})

四、索引

创建索引

db.userInfo.ensureIndex({name: 1});

db.userInfo.ensureIndex({name: 1, ts: -1});

查询当前聚集集合所有索引

db.userInfo.getIndexes();

查看总索引记录大小

db.userInfo.totalIndexSize();

读取当前集合的所有index信息

db.users.reIndex();

删除指定索引

db.users.dropIndex(“name_1”);

删除所有索引索引

db.users.dropIndexes();

五、其他命令

当前Mongo连接的服务器和端口

db.getMongo()

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。 &nbsp; 相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
NoSQL 安全 MongoDB
Mongo DB之用户与权限管理、备份与恢复管理以及客户端工具的使用
MongoDB是一款灵活且高性能的文档型数据库,具有可扩展性和强大的查询功能,适用于各种应用场景。
850 1
|
8天前
|
NoSQL MongoDB 数据库
|
3月前
|
NoSQL 网络安全 MongoDB
MongoDB 备份与恢复
MongoDB 中的数据备份和恢复主要依赖于 `mongodump` 和 `mongorestore` 两个命令。`mongodump` 用于备份数据,它可以将数据导出为 BSON 格式的文件,支持多种部署类型,包括独立运行部署、副本集、分片集群等。通过指定不同的参数,如 `--uri`、`--host`、`--port` 等,可以连接到不同的 MongoDB 实例。备份时还可以指定要备份的数据库、集合等。
33 1
|
6月前
|
存储 NoSQL 安全
【MongoDB 专栏】MongoDB 的备份与恢复策略
【5月更文挑战第11天】MongoDB的备份与恢复至关重要,确保数据安全、完整和可用。数据库提供文件级和逻辑备份,前者简单直接但可能需短暂停机,后者灵活可选特定数据。备份策略要考虑频率和存储位置,恢复时要验证数据完整性,选择合适恢复点。增量和差异备份可提升效率,监控管理备份是必要环节。案例显示,有效策略能降低意外损失。随着技术发展,应持续优化策略,强化人员培训,以责任和使命对待备份恢复,保障企业数据环境的安全稳定。
92 1
【MongoDB 专栏】MongoDB 的备份与恢复策略
|
5月前
|
NoSQL 测试技术 MongoDB
MongoDB数据库管理:全面掌握mongodump和mongorestore的备份与恢复技巧
MongoDB数据库管理:全面掌握mongodump和mongorestore的备份与恢复技巧
169 0
|
12月前
|
存储 NoSQL Shell
如何将阿里云WiredTiger引擎的MongoDB物理备份文件恢复至自建数据库
数据库操作一直是一个比较敏感的话题,动不动“删库跑路”,可见数据库操作对于一个项目而言是非常重要的,我们有时候会因为一个游戏的严重bug或者运营故障要回档数据库,而你们刚好使用的是阿里云的Mongodb,那么这篇文章将给你提供一个思路(或许你按照阿里云官网的文档一顿操作下来,并不是那么顺利,有一些报错,无法登录...)
|
NoSQL MongoDB 数据库
22 MongoDB高级 - 备份与恢复
22 MongoDB高级 - 备份与恢复
42 0
|
XML JSON 资源调度
MongoDB(二)——备份还原,mongoose,接口,apidoc文档
是node中提供操作MongoDB的模块 能够通过node语法实现MongoDB数据库增删改查 实现用node写程序来管理MongoDB数据库‘ 可以通过执行 npm i mongoose或 yarn add mongoose的命令安装
489 0
MongoDB(二)——备份还原,mongoose,接口,apidoc文档
|
NoSQL MongoDB
MongoDB Database Tools 安装实现备份、恢复
MongoDB Database Tools 安装实现备份、恢复
398 0