MongoDB學習(六)數據庫的備份、還原、導入及導出

MongoDB學習(六)數據庫的備份、還原、導入及導出

2017年02月22日 19:17:51 代碼與酒 閱讀數 21333 標籤: 數據庫mongodb備份還原 更多html

我的分類: MongoDBmongodb

所屬專欄: MongoDB快速入門數據庫

版權聲明:原創文章,開放分享,但請客官留個URL,蟹蟹~~若有紕漏,還請指出,以避免誤導後生! https://blog.csdn.net/qq_16313365/article/details/56494522json

        MongoDB官方提供了兩套數據導入導出工具,通常來講,進行整庫導出導入時使用mongodumpmongorestore,這一對組合操做的數據是BSON格式,進行大量dump和restore時效率較高。工具

        進行單個集合導出導入時使用mongoexportmongoimport,這一對組合操做的數據是JSON格式,可讀性較高。學習

 

一、mongodump(備份)及mongorestore(還原)

1.1 mongodump

 

→說明:

        mongodump是一個用於導出二進制數據庫內容的實用工具,它導出的bson文檔中只會包含着集合文檔等信息,不包括索引信息(索引信息會單獨導出),因此還原後,索引必須重建(這個不用擔憂,使用mongorestore會自動重建mongodump生成的索引信息)。3.4版本中添加了對只讀視圖的支持。spa

→參數(如下僅列舉經常使用參數,更多請參考help,下同):

 

命令 全稱 默認值 參考釋義
  --help   查看mongodump命令的使用幫助
  --version   返回mongodump的版本號
-h --host <hostname><:port> localhost:27017 指定mongod要鏈接的主機名及端口號
  --port <port> 27017 指定MongoDB實例監聽客戶鏈接的TCP端口號
-u --username <username>   指定用於向使用認證的MongoDB數據庫認證的用戶名,與--password和
--authenticationDatabase結合使用
-p --password <password>   指定用於向使用認證的MongoDB數據庫認證的密碼。與--username和 --
authenticationDatabase選項結合使用。
-d --db <database>   指定要備份的數據庫。若是不指定,mongodump會將此實例中的全部數據庫備份。
-c --collection <collection>   指定要備份的集合。若是不指定,則會將指定數據庫或實例中的全部集合備份。
  --gzip   3.2版本+,壓縮輸出,若是mongodump指定導出到目錄,則該選項會將每一個文件都壓縮,
並添加.gz後綴;
若是mongodump指定導出到文檔或標準輸出流,則該選項會壓縮到文檔或輸出流中
-o --out <path>   指定導出數據的目錄路徑,如不指定,則mongodump默認將文件輸出到dump所在的工做目錄中。
該選項不能和--archive一塊兒使用

 

→舉個栗子:

將mytest數據庫中的user集合導出到F:\bk目錄下.net

mongodump -d mytest -c user -o F:\bk

 

其中的metadata.json即爲索引信息rest

 

1.2 mongorestore

→說明:

        mongorestore用來導入數據到MongoDB實例中,3.0.0版本以上支持經過標準輸入流來導入數據。code

→參數:

 

命令 全稱 參考釋義
-d --db <database> 指定要還原的數據庫。若是不指定,restore將會還原dump記錄的全部數據庫,並會覆蓋現有數據庫數據
-c --collection <collection> 指定要還原的集合。若是不指定,mongorestore會從文件名中讀取識別集合名稱(若是有擴展名則會省略擴展名)
  --drop  還原集合以前會先從目標數據庫中刪除集合,不會刪除不在備份中的集合。
  --gzip 3.2版本+,從壓縮文件中還原
  <path> 要還原的數據文件路徑,該參數必須是mongorestore命令的最後一個參數

 

其餘參數與mongodump基本一致。

→舉個栗子:

經過user.bson文件還原mytest數據庫中的user集合,並在還原以前進行刪除

mongorestore --drop -d mytest -c user F:\bk\mytest\user.bson

 

二、mongoexport(導出)及mongoimport(導入)

 

2.1 mongoexport

→參數:

 

命令 全稱 默認值 參考釋義
  --help   查看mongoexport的使用幫助
  --version    查看mongoexport的版本號
-d --db <database>   指定要在哪一個數據庫上運行該命令
-c --collection <collection>   指定要導出的集合
-f --fields <field1[,field2]>   指定導出時只導出一個或多個字段,導出多個時,須要使用逗號分隔;
當字段中有空格時,須要用英文引號括起來。
-q --query <JSON>   提供查詢文檔做爲導出數據源
  --type<string> json 指定要導出的文件類型,可選值:json,csv
-o --out <file>   指定要導出的文件路徑(含文件名),若是不指定,則會導出爲標準輸出(例如stdout)

 

 

→舉個栗子:

導出mytest數據庫中的user集合到user.json文件中

mongoexport -d mytest -c user -o F:\bk\user.json

 

 

2.2mongoimport

→參數:

命令 可選值 參考釋義
--ignoreBlanks   忽略要導入文件中的空字段,若是不指定該參數,則默認會讀取空字段並建立
--type <json|csv|tsv> json,csv,tsv 要導入的文件類型,另外支持tsv
--headerline    使用第一行做爲字段名稱
--mode <insert|upsert|merge> insert(插入),
upsert(替換數據庫中的文檔),
merge(合併)
指定導入過程當中,如何應對數據庫文檔與導入文件中的文檔匹配
(默認會使用_id字段對比)的狀況

 

 其餘參數與mongoexport基本一致

→舉個栗子:

從user.json文件導入到mytest數據庫中的user集合,並在以前進行刪除

mongoimport --drop -d mytest -c user --file F:\bk\user.json

 

 

三、使用可視化工具MongoChef(現稱Studio3T)導入導出

 

如圖所示,鏈接以後,選中要導出的數據庫或集合,上方菜單欄有Export和Import按鈕,根據嚮導進行操做就能夠了,比較簡單,相信猿友們都不在話下,就不一一列出了。

相關文章
相關標籤/搜索