【mongoDB運維篇②】備份與恢復(導入與導出)


導入/導出可以操作的是本地的mongodb服務器,也可以是遠程的服務器
所以,都有如下通用選項:

-h host   主機
--port port    端口
-u username 用戶名
-p passwd   密碼

mongoexport 導出

-d  庫名
-c  表名
-f  field1,field2...列名
-q  查詢條件
-o  導出的文件名
--type=csv  導出csv格式(便於和傳統數據庫交換數據)
# 導出shop庫下面的goods表
./mongoexport -d shop -c goods -o goods.json
2015-08-20T18:12:05.693+0800    connected to: localhost #從哪里導出
2015-08-20T18:12:05.697+0800    exported 31 records   # 導出的文檔數

# 導出shop庫下面的goods表中的goods_id,goods_name列
./mongoexport -d shop -c goods -f goods_id,goods_name -o goods_id_name.json

# 只導出價格低於1000元的行
./mongoexport -d shop -c goods -f goods_id,goods_name,shop_price -q '{shop_price:{$lt:200}}' -o goodslt100.json

# 導出shop庫下面的goods表中的goods_id,goods_name列
./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 備份文件路徑
# 導入json
./mongoimport -d shop -c goodslt100 --file ./goodslt100.json

# 導入csv,必須要指定fields
./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. 如果不聲明表名, 導出所有的表
mongodump -d shop

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

mongorestore 導入二進制文件

mongorestore -h IP --port 端口 -u 用戶名 -p 密碼 -d 數據庫 --drop 文件存在路徑
--drop的意思是,先刪除所有的記錄,然后恢復
 ./mongorestore -d goods_bson ./dump/shop/ 3.0版本去掉了--directoryperdb

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM