首页 > 数据库技术 > 详细

MongoDB-备份和恢复

时间:2019-10-05 11:12:17      阅读:71      评论:0      收藏:0      [点我收藏+]

一、工具介绍

(1)mongoexport/mongoimport   #导入/导出的是JSON格式或者CSV格式

(2)mongodump/mongorestore    #导入/导出的是BSON格式

二、备份工具区别

(1)JSON可读性强但体积较大,BSON则是二进制文件,体积小但对人类几乎没有可读性。

(2)在一些mongodb版本之间,BSON格式可能会随版本不同而有所不同,所以不同版本之间用mongodump/mongorestore可能不会成功,具体要看版本之间的兼容性。当无法使用BSON进行跨版本的数据迁移的时候,使用JSON格式即mongoexport/mongoimport是一个可选项。跨版本的mongodump/mongorestore个人并不推荐,实在要做请先检查文档看两个版本是否兼容(大部分时候是的)。

(3)JSON虽然具有较好的跨版本通用性,但其只保留了数据部分,不保留索引,账户等其他基础信息。使用时应该注意。

三、应用场景

mongoexport/mongoimport:  json csv

  • 异构平台迁移 mysql <---> mongodb
  • 同平台,跨大版本:mongodb 2 ----> mongodb 3

mongodump/mongorestore:日常备份恢复使用

四、mongoexport/mongoimport工具

4.1、导出工具mongoexport

Mongodb中的mongoexport工具可以把一个collection导出成JSON格式(默认)或CSV格式的文件。

可以通过参数指定导出的数据项,也可以根据指定的条件导出数据。适合如下场景:

  • (1)版本差异较大
  • (2)异构平台数据迁移

4.1.1、具体参数说明

$ mongoexport --help  

#参数说明:
-h:指明数据库宿主机的IP
-u:指明数据库的用户名
-p:指明数据库的密码
-d:指明数据库的名字
-c:指明collection的名字
-f:指明要导出那些列
-o:指明到要导出的文件名
-q:指明导出数据的过滤条件
--authenticationDatabase admin:验证库

4.1.2、应用例子

创建测试数据:

[mongod@mongo ~]$ mongo -u root -p root123 10.0.0.21/admin
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
> use oldboy
switched to db oldboy
> for(i=0;i<10000;i++){db.log.insert({"uid":i,"name":"mongodb","age":6,"date":new
Date()})}
WriteResult({ "nInserted" : 1 })
> db.log.find()
{ "_id" : ObjectId("5d9809219455703947fc9855"), "uid" : 0, "name" : "mongodb", "age" : 6, "date" : ISODate("2019-10-05T03:08:17.040Z") }
{ "_id" : ObjectId("5d9809219455703947fc9856"), "uid" : 1, "name" : "mongodb", "age" : 6, "date" : ISODate("2019-10-05T03:08:17.052Z") }
{ "_id" : ObjectId("5d9809219455703947fc9857"), "uid" : 2, "name" : "mongodb", "age" : 6, "date" : ISODate("2019-10-05T03:08:17.053Z") }
{ "_id" : ObjectId("5d9809219455703947fc9858"), "uid" : 3, "name" : "mongodb", "age" : 6, "date" : ISODate("2019-10-05T03:08:17.053Z") }
{ "_id" : ObjectId("5d9809219455703947fc9859"), "uid" : 4, "name" : "mongodb", "age" : 6, "date" : ISODate("2019-10-05T03:08:17.054Z") }
{ "_id" : ObjectId("5d9809219455703947fc985a"), "uid" : 5, "name" : "mongodb", "age" : 6, "date" : ISODate("2019-10-05T03:08:17.054Z") }
{ "_id" : ObjectId("5d9809219455703947fc985b"), "uid" : 6, "name" : "mongodb", "age" : 6, "date" : ISODate("2019-10-05T03:08:17.055Z") }
{ "_id" : ObjectId("5d9809219455703947fc985c"), "uid" : 7, "name" : "mongodb", "age" : 6, "date" : ISODate("2019-10-05T03:08:17.055Z") }
{ "_id" : ObjectId("5d9809219455703947fc985d"), "uid" : 8, "name" : "mongodb", "age" : 6, "date" : ISODate("2019-10-05T03:08:17.056Z") }
{ "_id" : ObjectId("5d9809219455703947fc985e"), "uid" : 9, "name" : "mongodb", "age" : 6, "date" : ISODate("2019-10-05T03:08:17.056Z") }
{ "_id" : ObjectId("5d9809219455703947fc985f"), "uid" : 10, "name" : "mongodb", "age" : 6, "date" : ISODate("2019-10-05T03:08:17.057Z") }
{ "_id" : ObjectId("5d9809219455703947fc9860"), "uid" : 11, "name" : "mongodb", "age" : 6, "date" : ISODate("2019-10-05T03:08:17.058Z") }
{ "_id" : ObjectId("5d9809219455703947fc9861"), "uid" : 12, "name" : "mongodb", "age" : 6, "date" : ISODate("2019-10-05T03:08:17.059Z") }
{ "_id" : ObjectId("5d9809219455703947fc9862"), "uid" : 13, "name" : "mongodb", "age" : 6, "date" : ISODate("2019-10-05T03:08:17.059Z") }
{ "_id" : ObjectId("5d9809219455703947fc9863"), "uid" : 14, "name" : "mongodb", "age" : 6, "date" : ISODate("2019-10-05T03:08:17.059Z") }
{ "_id" : ObjectId("5d9809219455703947fc9864"), "uid" : 15, "name" : "mongodb", "age" : 6, "date" : ISODate("2019-10-05T03:08:17.060Z") }
{ "_id" : ObjectId("5d9809219455703947fc9865"), "uid" : 16, "name" : "mongodb", "age" : 6, "date" : ISODate("2019-10-05T03:08:17.060Z") }
{ "_id" : ObjectId("5d9809219455703947fc9866"), "uid" : 17, "name" : "mongodb", "age" : 6, "date" : ISODate("2019-10-05T03:08:17.060Z") }
{ "_id" : ObjectId("5d9809219455703947fc9867"), "uid" : 18, "name" : "mongodb", "age" : 6, "date" : ISODate("2019-10-05T03:08:17.061Z") }
{ "_id" : ObjectId("5d9809219455703947fc9868"), "uid" : 19, "name" : "mongodb", "age" : 6, "date" : ISODate("2019-10-05T03:08:17.061Z") }
Type "it" for more
> 

1)单表备份至json格式

MongoDB-备份和恢复

原文:https://www.cnblogs.com/hujinzhong/p/11624095.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!