目录

MongoDB 数据备份

MongoDB 数据恢复


本文只讲 MongoDB 数据库的备份与恢复,其余内容不清楚的可以参考《MongoDB》其它章节。

MongoDB 数据备份

  • MongoDB 提供了数据备份和恢复的功能,分别是 MongoDB 下载目录 bin 目录下的 mongodump.exe 和 mongorestore.exe文件
  • 备份数据命令:mongodump -h dbhost -d dbname -o dbdirectory

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

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

-o:备份的数据存放位置,例如:d:\data\dump,目录不存在时会自动新建,备份完成后,dump 目录下会建立一个 test 目录,里面存放该数据库实例的备份数据。

  • 不同的 mongoDB 版本,参数选项可能不一致,可以在 cmd 命令行中输入 mongodump --help 进行查看
C:\Users\Administrator.SC-201707281232>mongodump --help
Usage:mongodump <options>Export the content of a running server into .bson files.Specify a database with -d and a collection with -c to only dump that database or collection.See http://docs.mongodb.org/manual/reference/program/mongodump/ for more information.general options:/help                                                 print usage/version                                              print the toolversion and exitverbosity options:/v, /verbose:<level>                                      more detailed logoutput (include
........
  • 因为是直接调用 mongodump.exe 与 mongorestore.exe 程序进行操作,所以直接在 cmd 命令行中使用即可,不需要登录 MongoDB 数据库
  • 如下所示,mongoDB 中现在有 5 个数据库实例,其中 mydb1 数据库中有 100 条数据,现在以备份 mydb1 数据库为例。
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
mydb1   0.000GB
mydb2   0.186GB
> db
mydb1
> db.c1.find().count()
100
> db.c1.find()
{ "_id" : ObjectId("5b98b375c03ec6172729490d"), "name" : "zhangSan", "age" : 1 }
{ "_id" : ObjectId("5b98b375c03ec6172729490e"), "name" : "zhangSan", "age" : 2 }
{ "_id" : ObjectId("5b98b375c03ec6172729490f"), "name" : "zhangSan", "age" : 3 }
{ "_id" : ObjectId("5b98b375c03ec61727294910"), "name" : "zhangSan", "age" : 4 }
{ "_id" : ObjectId("5b98b375c03ec61727294911"), "name" : "zhangSan", "age" : 5 }
{ "_id" : ObjectId("5b98b375c03ec61727294912"), "name" : "zhangSan", "age" : 6 }
{ "_id" : ObjectId("5b98b375c03ec61727294913"), "name" : "zhangSan", "age" : 7 }
{ "_id" : ObjectId("5b98b375c03ec61727294914"), "name" : "zhangSan", "age" : 8 }
{ "_id" : ObjectId("5b98b375c03ec61727294915"), "name" : "zhangSan", "age" : 9 }
{ "_id" : ObjectId("5b98b375c03ec61727294916"), "name" : "zhangSan", "age" : 10 }
{ "_id" : ObjectId("5b98b375c03ec61727294917"), "name" : "zhangSan", "age" : 11 }
{ "_id" : ObjectId("5b98b375c03ec61727294918"), "name" : "zhangSan", "age" : 12 }
{ "_id" : ObjectId("5b98b375c03ec61727294919"), "name" : "zhangSan", "age" : 13 }
{ "_id" : ObjectId("5b98b375c03ec6172729491a"), "name" : "zhangSan", "age" : 14 }
{ "_id" : ObjectId("5b98b375c03ec6172729491b"), "name" : "zhangSan", "age" : 15 }
{ "_id" : ObjectId("5b98b375c03ec6172729491c"), "name" : "zhangSan", "age" : 16 }
{ "_id" : ObjectId("5b98b375c03ec6172729491d"), "name" : "zhangSan", "age" : 17 }
{ "_id" : ObjectId("5b98b375c03ec6172729491e"), "name" : "zhangSan", "age" : 18 }
{ "_id" : ObjectId("5b98b375c03ec6172729491f"), "name" : "zhangSan", "age" : 19 }
{ "_id" : ObjectId("5b98b375c03ec61727294920"), "name" : "zhangSan", "age" : 20 }
Type "it" for more
>
  • 如下所示 mongodump -h 127.0.0.1:27017 -d mydb1 -o E:/wmx/mongoDump 进行备份 mydb1 数据库

-h :指定 mongoDB 服务端 IP 地址 与 端口,端口不指定时,默认为 27017

-d:需要备份的 MongoDB 数据库实例

-o:备份的数据存放位置,目录不存在时,会自动新建,此目录下会再有一个与 数据库实例同名的子目录用来正式存放数据文件

  • 注意备份、恢复 命令直接在 cmd 命令行中操作,不需要登录 MongoDB ,所以如果之前登录了,则 exit 退出。
{ "_id" : ObjectId("5b98b375c03ec6172729491f"), "name" : "zhangSan", "age" : 19 }
{ "_id" : ObjectId("5b98b375c03ec61727294920"), "name" : "zhangSan", "age" : 20 }
Type "it" for more
> exit
byeC:\Users\Administrator.SC-201707281232>mongodump -h 127.0.0.1:27017 -d mydb1 -o E:/wmx/mongoDump
2018-09-12T14:40:57.719+0800    writing mydb1.c1 to
2018-09-12T14:40:57.805+0800    done dumping mydb1.c1 (100 documents)C:\Users\Administrator.SC-201707281232>

  • 接着再次登录 MongoDB 数据库删除原来的 mydb1 数据库,为后来的数据库恢复做准备,如下所示 mydb1 数据库删除成功
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
mydb1   0.000GB
mydb2   0.186GB
> use mydb1
switched to db mydb1
> db.dropDatabase()
{ "dropped" : "mydb1", "ok" : 1 }
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
mydb2   0.186GB
>

MongoDB 数据恢复

  • 恢复数据命令:mongorestore -h dbhost -d dbname /dir dbdirectory

-h:MongoDB 所在服务器 IP 地址

-d:需要恢复的数据库实例,例如:test,这个名称也可以和备份时候的不一样,比如 test2、test3 ,自定义即可

/dir:备份数据所在位置,例如:c:\data\dump\test ,路径要指定到数据库目录

  • 不同的 mongoDB 版本,参数选项可能不一致,可以在 cmd 命令行中输入 mongorestore --help 进行查看
C:\Users\Administrator.SC-201707281232>mongorestore --help
Usage:mongorestore <options> <directory or file to restore>Restore backups generated with mongodump to a running server.Specify a database with -d to restore a single database from the target directory,
or use -d and -c to restore a single collection from a single .bson file.See http://docs.mongodb.org/manual/reference/program/mongorestore/ for more information.general options:/help                                                 print usage/version                                              print the toolversion and exitverbosity options:/v, /verbose:<level>                                      more detailed logoutput (includemultiple times formore verbosity,e.g. -vvvvv, or
...........
  • 上面已经手动删除了 MongoDB 中的 mydb1 数据库实例,现在开始恢复上面备份好的 E:/wmx/mongoDump/mydb1 数据库
  • 同理在 cmd 命令行中直接操作,不用登陆 MongoDB
  • 如下所示,mongorestore -h 127.0.0.1:27017 -d mydb1 /dir E:/wmx/mongoDump/mydb1 进行数据恢复

/h :MongoDB 服务器所在的 IP 地址,端口不写时默认为 27017

-d:需要恢复的数据库实例,名称自定义即可

/dir:备份数据所在位置,指定到数据库目录

C:\Users\Administrator.SC-201707281232>mongorestore -h 127.0.0.1:27017 -d mydb1 /dir E:/wmx/mongoDump/mydb1
2018-09-12T15:38:02.707+0800    the --db and --collection args should only be used when restoring from a BSON file. Other uses are deprecated and will not exist in the future; use --nsInclude instead
2018-09-12T15:38:02.738+0800    building a list of collections to restore from E:\wmx\mongoDump\mydb1 dir
2018-09-12T15:38:02.739+0800    reading metadata for mydb1.c1 from E:\wmx\mongoDump\mydb1\c1.metadata.json
2018-09-12T15:38:03.129+0800    restoring mydb1.c1 from E:\wmx\mongoDump\mydb1\c1.bson
2018-09-12T15:38:03.131+0800    no indexes to restore
2018-09-12T15:38:03.131+0800    finished restoring mydb1.c1 (100 documents)
2018-09-12T15:38:03.131+0800    doneC:\Users\Administrator.SC-201707281232>
  • 登陆 MongoDB 进行查看,如下所示,数据恢复成功
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
mydb1   0.000GB
mydb2   0.186GB
> use mydb1
switched to db mydb1
> show tables
c1
> db.c1.find().count()
100
> db.c1.find()
{ "_id" : ObjectId("5b98bc379253fbe383c9f04e"), "name" : "zhangSan1", "age" : 1 }
{ "_id" : ObjectId("5b98bc379253fbe383c9f04f"), "name" : "zhangSan2", "age" : 2 }
{ "_id" : ObjectId("5b98bc379253fbe383c9f050"), "name" : "zhangSan3", "age" : 3 }
{ "_id" : ObjectId("5b98bc379253fbe383c9f051"), "name" : "zhangSan4", "age" : 4 }
{ "_id" : ObjectId("5b98bc379253fbe383c9f052"), "name" : "zhangSan5", "age" : 5 }
{ "_id" : ObjectId("5b98bc379253fbe383c9f053"), "name" : "zhangSan6", "age" : 6 }
{ "_id" : ObjectId("5b98bc379253fbe383c9f054"), "name" : "zhangSan7", "age" : 7 }
{ "_id" : ObjectId("5b98bc379253fbe383c9f055"), "name" : "zhangSan8", "age" : 8 }
{ "_id" : ObjectId("5b98bc379253fbe383c9f056"), "name" : "zhangSan9", "age" : 9 }
{ "_id" : ObjectId("5b98bc379253fbe383c9f057"), "name" : "zhangSan10", "age" : 10 }
{ "_id" : ObjectId("5b98bc379253fbe383c9f058"), "name" : "zhangSan11", "age" : 11 }
{ "_id" : ObjectId("5b98bc379253fbe383c9f059"), "name" : "zhangSan12", "age" : 12 }
{ "_id" : ObjectId("5b98bc379253fbe383c9f05a"), "name" : "zhangSan13", "age" : 13 }
{ "_id" : ObjectId("5b98bc379253fbe383c9f05b"), "name" : "zhangSan14", "age" : 14 }
{ "_id" : ObjectId("5b98bc379253fbe383c9f05c"), "name" : "zhangSan15", "age" : 15 }
{ "_id" : ObjectId("5b98bc379253fbe383c9f05d"), "name" : "zhangSan16", "age" : 16 }
{ "_id" : ObjectId("5b98bc379253fbe383c9f05e"), "name" : "zhangSan17", "age" : 17 }
{ "_id" : ObjectId("5b98bc379253fbe383c9f05f"), "name" : "zhangSan18", "age" : 18 }
{ "_id" : ObjectId("5b98bc379253fbe383c9f060"), "name" : "zhangSan19", "age" : 19 }
{ "_id" : ObjectId("5b98bc379253fbe383c9f061"), "name" : "zhangSan20", "age" : 20 }
Type "it" for more
>

MongoDB 数据库备份 与 恢复相关推荐

  1. MongoDB学习总结(六) —— 数据库备份和恢复

    我们都知道数据库数据经常备份是多么的重要,MongoDB作为一个数据库系统,自然提供了完善,丰富而且好用的备份与恢复机制. 以下介绍三种数据库备份和恢复的方式 > 数据目录直接拷贝 数据库目录直 ...

  2. Linux系统mongdb还原数据库,linux下mongodb数据库备份与还原

    MongoDb数据库备份还原 数据库迁移,可视化工具NoSQLBooster for MongoDB 付费版才具有数据导入功能.代价过高,索性采起命令行web 数据备份 备份命令mongodb mon ...

  3. MongoDB操作-备份和恢复

    Mongodb数据库操作-备份 恢复 导出 导入 mongodb数据备份和恢复主要分为二种:一种是针对库的mongodump和mongorestore,一种是针对库中表的mongoexport和mon ...

  4. Mongodb 物理备份和恢复 —— 筑梦之路

    物理备份是指备份 MongoDB 数据目录,包括所有的数据文件.日志文件和配置文件.这种备份方法可以保留 MongoDB 数据库的完整性和一致性,也可以加快备份和恢复的速度.以下是备份和恢复 Mong ...

  5. ASP中怎么实现SQL数据库备份、恢复!

    选择自 hanghwp 的 Blog 1.ASP中怎么实现SQL数据库备份.恢复! 答:asp在线备份sql server数据库: 1.备份 <% SQL="backup databa ...

  6. mysql 恢复数据库 source_mysql数据库备份及恢复命令 mysqldump,source的用法 | 很文博客...

    mysql数据库备份及恢复命令 mysqldump,source的用法,需要的朋友可以参考下. 还原一个数据库:mysql -h localhost -u root -p123456 www d:\w ...

  7. java写的MySQL数据库备份和恢复代码:

    1.MySQL数据库备份和恢复,java代码实现:详情见下面: package com.spring.util; import java.io.BufferedReader; import java. ...

  8. Sql Server数据库备份和恢复:原理篇

    本文与您探讨为什么Sql Server有完整备份.差异备份和事务日志备份三种备份方式,以及为什么数据库又有简单模式.完整模式和大容量日志模式这三种恢复模式.本文内容适用于2005以上所有版本的Sql ...

  9. Oracle数据库备份和恢复配置详解

    本文Oracle讲述了数据库备份和恢复配置的详解过程,可能的失败及其解决方法. 失败类型 遇到的失败或错误分为两大类:物理和逻辑.物理错误一般是硬件错误或使用数据库的应用程序中的软件错误,而逻辑错误一 ...

  10. 案例:Oracle dul数据挖掘 没有数据库备份非常规恢复truncate删除的数据表

    Oracle数据库在没有备份情况下在对表中的某数据表进行truncate删除后,通过oracle dul进行非常规恢复 1.准备oracle dul测试环境 SQL> select count( ...

最新文章

  1. 解决gc current request等待事件
  2. ceres-solver学习笔记
  3. linux网卡端口绑定bond,Linux下双网卡绑定bond0
  4. 1,机器学习应用概述
  5. 程序员级别,你到哪一级?
  6. 盘点python socket 中recv函数的坑
  7. 个人不良资产如何处置?个人不良资产有妙招
  8. sklearn 随机森林代码示例
  9. 智能家居linux 源码,搭建开源智能家居系统Domoticz
  10. 什么是 cisco ios
  11. 3.3 测试实现标准的ZIO服务
  12. CJOJ 1308 【HNOI 2002 】营业额统计 / CodeVS 1296 营业额统计
  13. 孙鑫VC++学习笔记(转载至程序员之家--虎非龙)[11--15] .
  14. 有钱就放余额宝的人,这个习惯恐怕要改一改!
  15. mysql 1100_错误代码:1100 Table 't_depart_info' was not locked with LOCK TABLES的解决方法
  16. 电工学复习 【1】--电路的基本概念和基本定律
  17. 软件缺陷和软件缺陷种类
  18. 楚留香山外云服务器有哪些,楚留香手游互通服有哪些 安卓苹果ios互通服列表...
  19. 华硕天选2 找不到WLAN网络
  20. 【嵌入式】蓝牙串口通信透传模块(HC-08)的使用

热门文章

  1. javascript中Math.round获取小数点位数
  2. 排序算法--基数排序
  3. C++模板Trait
  4. 整理cin.getline与getline函数
  5. 拓端tecdat|数据视域下图书馆话题情感分析
  6. 拓端tecdat|WinBUGS对多元随机波动率模型:贝叶斯估计与模型比较
  7. 计算机网络复习-互联网概述
  8. 栈的应用 算术表达式转换为后缀表达式
  9. 训练和测试自己的图像集
  10. python数字图像处理(8):对比度与亮度调整