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

