mongodb和mysql很相似,那么它是否也和mysql一样可以备份数据库和恢复数据库呢?那是当然的,下面将简单介绍mongodb的备份和恢复。

1.MongoDB备份

备份指定库:
mongodump -h ip -d dbname -o dir     

-h后面跟服务器ip,-d后面跟database名字,不加则备份所有库,-o后指定备份到哪里,它是一个目录

例如:mongodump -d admin -o /tmp/mongobackup/   #将admin库备份到/tmp/mongobackup目录下

备份所有库:
mongodump -h ip -o dir

备份指定集合:
mongodump -d mydb -c test -o /tmp/test    

-c指定集合名字

导出集合为json文件:
mongoexport -d mydb -c test -o /tmp/test.json

-o后面跟的是一个文件名字不是目录

说明:mongodump备份test集合会生成test.bson和test.metadata.json两个文件,无法通过查看这两个文件来查看test集合的文档内容。而mongoexport备份test集合是自己命名的一个.json文件,该文件的内容就是test集合的文档内容,可以通过查看该.json文件看到test集合的所有文档内容。


2.MongoDB恢复

恢复所有库:
mongorestore --drop dir/ 

其中dir是备份所有库的目录名字,其中--drop可选,意思是当恢复之前先把之前的数据删除,不建议使用

恢复指定库:
mongorestore -d mydbdir/ 

-d跟要恢复的库名字,dir就是该库备份时所在的目录

例如:mongorestore -d /tmp/mongobackup/admin/   #恢复admin数据库

恢复集合:
mongorestore -d mydb -c test dir/mydb/test.bson 

-c后面跟要恢复的集合名字,dir是备份mydb库时生成文件所在路径,这里需要集合bson文件的路径而不是目录

导入集合:
mongoimport -d mydb -c test --file /tmp/test.json

mongoimport和mongoexport是相对的