[关闭]
@a5635268 2015-08-20T20:10:52.000000Z 字数 1669 阅读 1251

【mongoDB运维篇②】备份与恢复(导入与导出)

mongoDB


导入/导出可以操作的是本地的mongodb服务器,也可以是远程的服务器
所以,都有如下通用选项:

-h host   主机
--port port    端口
-u username 用户名
-p passwd   密码

mongoexport 导出

-d  库名
-c  表名
-f  field1,field2...列名
-q  查询条件
-o  导出的文件名
--type=csv  导出csv格式(便于和传统数据库交换数据)
  1. # 导出shop库下面的goods表
  2. ./mongoexport -d shop -c goods -o goods.json
  3. 2015-08-20T18:12:05.693+0800 connected to: localhost #从哪里导出
  4. 2015-08-20T18:12:05.697+0800 exported 31 records # 导出的文档数
  5. # 导出shop库下面的goods表中的goods_id,goods_name列
  6. ./mongoexport -d shop -c goods -f goods_id,goods_name -o goods_id_name.json
  7. # 只导出价格低于1000元的行
  8. ./mongoexport -d shop -c goods -f goods_id,goods_name,shop_price -q '{shop_price:{$lt:200}}' -o goodslt100.json
  9. # 导出shop库下面的goods表中的goods_id,goods_name列
  10. ./mongoexport -d shop -c goods -f goods_id,goods_name -o ./goods_id_name.csv --type=csv

注意只能是导出数据,不包括相关的索引信息

详情请参考: http://docs.mongodb.org/v3.0/reference/program/mongoexport/#bin.mongoexport

mongoimport 导入

-d 待导入的数据库
-c 待导入的表(不存在会自己创建)
--type  csv/json(默认)
--file 备份文件路径
  1. # 导入json
  2. ./mongoimport -d shop -c goodslt100 --file ./goodslt100.json
  3. # 导入csv,必须要指定fields
  4. ./bin/mongoimport -d test -c goods_csv --type csv -f goods_id,goods_name --file ./goodsall.csv

以上的导出,仅仅是导出数据,相关的索引信息没有被导出;
二进制备份,不仅可以备份数据,还可以备份索引,
备份数据比较小.

参考: http://docs.mongodb.org/v3.0/reference/program/mongoimport/#bin.mongoimport

mongodump 导出二进制bson结构的数据及其索引信息

-d  库名
-c  表名
-f  field1,field2...列名

mongodump -d test  [-c 表名]  默认是导出到mongo下的dump目录
  1. 导出的文件放在以database命名的目录下
  2. 每个表导出2个文件,分别是bson结构的数据文件, json的索引信息
  3. 如果不声明表名, 导出所有的表
  1. mongodump -d shop

参考: http://docs.mongodb.org/v3.0/reference/program/mongodump/#bin.mongodump

mongorestore 导入二进制文件

mongorestore -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 --drop 文件存在路径
--drop的意思是,先删除所有的记录,然后恢复
  1. ./mongorestore -d goods_bson ./dump/shop/ 3.0版本去掉了--directoryperdb

参考: http://docs.mongodb.org/v3.0/reference/program/mongorestore/#bin.mongorestore

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注