mongodb mongodump数据备份,mongorestore恢复命令

1.备份全部数据库

mkdir db_bak

 

cd db_bak

 

../bin/mongodump

../bin/mongodump

connected to: 127.0.0.1

all dbs

DATABASE: comedy????? to????? dump/comedy

comedy.cartoons to dump/comedy/cartoons.bson

2 objects

comedy.system.indexes to dump/comedy/system.indexes.bson

4 objects

comedy.storeCollection to dump/comedy/storeCollection.bson

2 objects

comedy.mycollection to dump/comedy/mycollection.bson

2 objects

DATABASE: yuexiaosheng????? to????? dump/yuexiaosheng

yuexiaosheng.mycollection to dump/yuexiaosheng/mycollection.bson

3 objects

yuexiaosheng.system.indexes to dump/yuexiaosheng/system.indexes.bson

2 objects

yuexiaosheng.system.users to dump/yuexiaosheng/system.users.bson

1 objects

DATABASE: *????? to????? dump/*

DATABASE: admin????? to????? dump/admin

DATABASE: test????? to????? dump/test

 

直接在该目录下生成了一个文件夹dump

下面有数据库文件

ls

*????????? admin????????? comedy????????? test????????? yuexiaosheng

 

pwd

 

/Users/mc2/mongo/db_bak/dump

 

这样就备份了所有数据了。

 

2.备份指定的数据库

../bin/mongodump -d yuexiaosheng

这样就备份了单个数据库

connected to: 127.0.0.1

DATABASE: yuexiaosheng????? to????? dump/yuexiaosheng

yuexiaosheng.mycollection to dump/yuexiaosheng/mycollection.bson

3 objects

yuexiaosheng.system.indexes to dump/yuexiaosheng/system.indexes.bson

2 objects

yuexiaosheng.system.users to dump/yuexiaosheng/system.users.bson

1 objects

 

dump目录下仅仅只有一个文件了yuexiaosheng 这个数据库

 

3.备份一个数据库中指定的一个集合

../bin/mongodump -d yuexiaosheng -c mycollection

 

connected to: 127.0.0.1

DATABASE: yuexiaosheng????? to????? dump/yuexiaosheng

yuexiaosheng.mycollection to dump/yuexiaosheng/mycollection.bson

3 objects

4.恢复全部数据库

mongorestore –drop

说明:将备份的所有数据库恢复到数据库,–drop指定恢复数据之前删除原来数据库数据,否则会造成回复后的数据中数据重复。

 

5、恢复某个数据库的数据

 

mongorestore -d yuexiaosheng –drop

yuexiaosheng的数据恢复到数据库。

/Users/mc2/mongo/bin/mongorestore -d yuexiaosheng

connected to: 127.0.0.1

ERROR: root directory must be a dump of a single database

when specifying a db name with –db

意思是说dump目录下只能仅仅有一个数据库

 

../bin/mongorestore -d yuexiaosheng –directoryperdb /Users/mc2/mongo/db_bak/dump/yuexiaosheng/

 

加入详细的地址即可成功

/Users/mc2/mongo/db_bak/dump/yuexiaosheng/ ?精确到数据库名称,不是dump

 

 

6、恢复某个数据库的某个集合的数据

 

mongorestore -d pagedb -c page –drop

说明:将备份的pagedb的的page集合的数据恢复到数据库。

../bin/mongorestore -d yuexiaosheng -c mycollection –directoryperdb /Users/mc2/mongo/db_bak/dump/yuexiaosheng/mycollection.bson

 

精确到mycollection.bson

7、从向MongoDB导出数据到CSV

db.mycollection.find()

{ “_id” : ObjectId(“5031bb3ee6d6c7a903fb631b”), “title” : “jack is 2.0”, “online” : “false” }

{ “_id” : ObjectId(“5031bb50e6d6c7a903fb631c”), “title” : “jack is 3.0”, “online” : “false” }

{ “_id” : ObjectId(“5031bd2ae6d6c7a903fb631d”), “title” : “jack is 3.0”, “online” : “false” }

对于这样的数据指定特定文件进行mongodb导出

bin/mongoexport -d yuexiaosheng -c mycollection -q {} -f _id,title,online –csv > mycollection.csv

connected to: 127.0.0.1

exported 3 records

说明:将pagedb数据库中page集合的数据导出到pages.csv文件,其中各选项含义:

-f 指定cvs列名为_id,title,url,spiderName,pubDate

-q 指定查询条件

 

指定条件进行的导出

bin/mongoexport -d yuexiaosheng -c mycollection -q {“title”,”jack is 2.0″} -f _id,title,online –csv > mycollection.csv

ERROR: too many positional options

bin/mongoexport -d yuexiaosheng -c mycollection -q ‘{“title”:”jack is 2.0″}’ -f _id,title,online –csv > mycollection.csv

connected to: 127.0.0.1

exported 1 records

必须在搜索条件{} 外面加单引号,才能正确导出。

 

8、向MongoDB导入数据

mongoimport -d yuexiaosheng -c mycollection –type csv –headerline –drop < mycollection.csv

connected to: 127.0.0.1

dropping: yuexiaosheng.mycollection

imported 4 objects

 

说明:将文件csvORtsvFile.csv的数据导入到pagedb数据库的page集合中,使用cvs或tsv文件的列名作为集合的列名。需要注意的是,使用–headerline选项时,只支持csv和tsv文件。

–type支持的类型有三个:csv、tsv、json


This entry was posted in JAVA, Linux, 数据库, 高并发与大数据 and tagged . Bookmark the permalink.
月小升QQ 2651044202, 技术交流QQ群 178491360
首发地址:月小升博客https://java-er.com/blog/mongodb-mongodump-mongorestore/
无特殊说明,文章均为月小升原创,欢迎转载,转载请注明本文地址,谢谢
您的评论是我写作的动力.
2020.03.24 评论已经全局关闭,有事加QQ聊天