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是相对的