MongoDB操作-備份和恢復,導入和導出


  mongodb數據備份和恢復主要分為二種:一種是針對庫的mongodump和mongorestore,一種是針對庫中表的mongoexport和mongoimport

 

  1. 常用命令格式

    mongodump -h IP --port 端口 -u 用戶名 -p 密碼 -d 數據庫 -c 表 -o 文件存放路徑

    參數說明:
    -h 指明數據庫宿主機的IP
    --port 指明數據庫的端口 
    -u 指明數據庫的用戶名
    -p 指明數據庫的密碼
    -d 指明數據庫的名字
    -c 指明collection的名字
    -o 指明到要導出的文件名
    -q 指明導出數據的過濾條件

    導出指定數據庫

    mongodump -d SERVERLOG -o /data/mongobak/SERVERLOG.bak/

  

  

   2、mongorestore恢復數據庫

    常用命令格式

    mongorestore -h IP --port 端口 -u 用戶名 -p 密碼 -d 數據庫 --drop 文件存在路徑

    --drop:先刪除所有的記錄,然后恢復.

    恢復所有數據庫到mongodb中

    mongorestore /data/mongobak/ #所有庫的備份路徑

 

  3、 mongoexport導出(集合或者集合中部分字段)

    常用命令格式

    mongoexport -h IP --port 端口 -u 用戶名 -p 密碼 -d 數據庫 -c 表名 -f 字段 -q 條件導出 --csv -o 文件名

    參數重點說明:
    -f 導出指定字段,以逗號分割,-f uid,name,age導出uid,name,age這三個字段
    -q 可以根據查詢條件導出,-q '{ "uid" : "100" }' 導出uid為100的數據
    --csv 表示導出的文件格式為csv的。這個比較有用,因為大部分的關系型數據庫都是支持csv,在這里有共同點

 

    導出整個集合

    mongoexport -h dbhost -d dbname -c collectionname -f collectionKey -o dbdirectory
    -h: MongoDB所在服務器地址
    -d: 需要恢復的數據庫實例
    -c: 需要恢復的集合
    -f: 需要導出的字段(省略為所有字段)
    -o: 表示導出的文件名

    比如要備份 OTT_DB數據庫實例里面trsdata1集合到csv文件里面

    mongoexport -h 127.0.0.1:27017 -d OTT_DB -c trsdata1  -o E:\data\dump\trsdata.csv 也可以導出json,txt等格式

    切換到mongoexport.exe所在目錄

    

    

    導出結果

  

    

 

    導出表中部分字段(IR_SITENAME, DATE, IR_AUTHORS)

     mongoexport -h 127.0.0.1:27017 -d OTT_DB -c trsdata1 -f IR_SITENAME,DATE,IR_AUTHORS -o E:\data\dump\trsdata.csv

    mongoexport --db OTT_DB --collection trsdata1 --type=csv -f IR_SITENAME,DATE,IR_AUTHORS --out E:\data\dump\trsdata2.csv

    

     

    根據條件導出數據

    mongoexport -d SERVERLOG -c users -q '{uid:{$gt:1}}' -o /data/mongobak/SERVERLOG.bak/users.json 

 

  4、mongoimport導入(表或者表中部分字段)

    常用命令格式

    恢復整表導出的非csv文件
    mongoimport -h IP --port 端口 -u 用戶名 -p 密碼 -d 數據庫 -c 表名 --upsert --drop 文件名

    --upsert:插入或者更新現有數據

    恢復部分字段的導出文件
    mongoimport -h IP --port 端口 -u 用戶名 -p 密碼 -d 數據庫 -c 表名 --upsertFields 字段 --drop 文件名

    --upsertFields:更新部分的查詢字段,必須為索引,以逗號分隔.

    恢復導出的csv文件
    mongoimport -h IP --port 端口 -u 用戶名 -p 密碼 -d 數據庫 -c 表名 --type 類型 --headerline --upsert --drop 文件名

    --type:導入的文件類型(默認json)

    例如,把上面導出的trsdata2.csv文件導入到集合trsdata2中

    mongoimport -h 127.0.0.1 --port 27017  -d OTT_DB -c trsdata2 --type csv --headerline --upsert --drop E:\data\dump\trsdata2.csv

    

 


免責聲明!

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



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