#昊鼎王五:如何备份及恢复mongodb(导出、导入)?
#1.基础知识:
##1.1前提:
本文基于:《昊鼎王五:如何配置mongodb集群的用户认证方式及创建访问权限用户?》
https://blog.youkuaiyun.com/haoding205/article/details/82257010
#2.备份命令:
#备份数据库
#语法:mongodump -h IP:PORT -d 数据库 -o 文件存在路径
#有用户安全认证时需要加上 "-u 用户 -p 密码"参数
cd /hd205/service/mongodbwork/mongodb/bin
./mongodump -h 127.0.0.1:10001 -u haoding_205_backup -p Hd_haoding_205_backup_passwd -d hd_205_db -o /hd205/db_path
#参数:
-d:备份哪个数据库
-c:备份哪个collection(可选,不传默认为整个database)
-q:指定备份collection的条件(与-c参数一起使用)
#3.恢复命令:
#恢复数据库
#语法:mongorestore -h 主机 -d 目标库 -drop --directoryperdb 源文件
#有用户安全认证时需要加上 "-u 用户 -p 密码"参数
cd /hd205/service/mongodbwork/mongodb/bin
./mongorestore -h 127.0.0.1:30000 -u haoding_205_restore -p Hd_haoding_205_restore_passwd -d hd_205_db /hd205/db_path/hd_205_db --drop
#参数:
-d:还原到哪个数据库
--drop表示在恢复前先删除原来的集合(如果存在的话)
/hd205/db_path/hd_205_db则是备份文件存放路径
#4.导出导入命令:
另外mongodb还提供了mongoexport 和 mongoimport 这两个命令来导出或导入数据,导出的数据是json格式的。也可以实现备份和恢复的功能。
例:
mongoexport -d mixi_top_city_prod -c building_45 -q '{ "uid" : "10832545" }' > mongo_10832545.bson
mongoimport -d mixi_top_city -c building_45 --file mongo_10832545.bson
#5.备份-恢复单个collection的方法:
##5.1.备份
###5.1.1.mongoexport导出单个collection:
mongoexport -h dbhost -d dbname -c collectionname -f collectionKey -o dbdirectory
###5.1.2.mongodump备份单个collection
mongodump -d mailaccess -c Mail -q ‘{user:”zhaoxy1@szdep.com”}’ -o /data/dump
#备份mailaccess database的Mail collection到/data/dump目录
-d:备份哪个数据库
-c:备份哪个collection(可选,不传默认为整个database)
-q:指定备份collection的条件(与-c参数一起使用)
##5.2.恢复
单个collection恢复:
#语法: mongoimport -d dbhost -c collectionname –type csv –headerline –file
#举例:
./mongoimport -h 127.0.0.1:30000 -d db_haoding -c ProjPageTpl --type json --file ProjPageTpl.metadata.json --drop
2018-02-27T16:57:02.469+0800 connected to: 127.0.0.1:90000
2018-02-27T16:57:02.470+0800 dropping: db_haoding.ProjPageTpl
2018-02-27T16:57:02.580+0800 imported 1 document
-d db_haoding 数据库名
-c ProjPageTpl 表名
--type json 类型
--file ProjPageTpl.metadata.json 文件名
--drop 有则先删除
好了,聪明如你,知道了如何备份及恢复mongodb(导出、导入),是不是很欢喜 _
还有其他问题的可以在评论区留言或者扫码加博主获取资源或者提问。