mongo備份與恢復工具的對比與說明

mongo備份與恢復工具的對比與說明

2015年09月06日 09:34:40mongodb

閱讀數:673數據庫

Mongodb提供了mongodump/mongorestore,mongoexport/mongoimport兩套機制進行數據備份和恢復,其中mongodump主要進行整庫備份,mongoexport則主要進行數據集導出。json

公共參數: 
–port arg 指定端口 
-h arg 指定主機,如:127.0.0.1,也能夠直接指定端口號:127.0.0.1:27017 
-d arg 指定database 
-c arg 指定collection 
–dbpath arg 指定mongod的數據庫文件所在路徑工具

備份:

mongodump

命令用法:mongodump [options] 
特別參數: 
-o arg 輸出的」目錄「,不指定時,默認在執行命令的路徑下建立dump目錄導出 
-q arg json query,此處可經過json查詢,有選擇性的導出數據 
說明: 
1.與mongorestore構成一對工具集,即由Mongodump導出的數據可由mongrestore恢復 
2.mongodump可用於「熱備份」 
3.導出的數據是bson格式 
性能:數據庫中1g的數據導出後變成285M,大概8秒性能

mongoexport

命令用法:mongoexport [options] 
特別參數: 
-q arg 查詢過濾器,json string 
-f args 輸出的域,例如-f name,age,address 
–csv 輸出csv,不寫此參數,默認爲json 
-o arg 輸出的文件,默認爲stdout 
說明: 
1.能夠導出json或csv格式的文件 
2.能夠指定查詢過濾器或指定輸出的域 
3.此工具導出的json,csv可能對某些數據類型不兼容,所以可能不能所有數據導出,mongodump就能夠所有兼容。 
性能:1g數據,約1分40秒,導出大小爲380Mspa

恢復:

mongoimport

命令用法:mongoimport [options] 
特別參數: 
–file args 導入的文件,若無此參數,以stdin爲標準 
-f args 導入的數據域 
–fieldFile arg 帶域名稱的文件 
–ignoreBlanks 在csv,tsv文件中忽略空域 
–type arg 導入文件的類型,默認爲json,還能夠爲csv,tsv 
–drop 插入前先刪除原collection 
–upsert 插入或更新已存在的對象 
–jsonArray 導入json array,目前每一個array的限制是4M 
–headerline 只能用於csv,tsv文件中,用第一行做爲文件頭 
說明: 
接受json,csv,tsv格式的文件,每行爲一個對象 
{「somefield」 : 123456, 「created_at」 : {「$date」 : 1285679232000}}此格式可解析日期。 
性能:導入1g數據,2分20秒,失敗33個對象.net

mongorestore

命令用法:mongorestore [options] [file or dir to restore] 
特別參數: 
–drop 導入前先drop collection 
–objcheck 插入前檢測對象的合法性 
–filter arg 插入前的過濾器 
–indexesLast 插入完數據後再創建索引(此參數可提供更高的性能,建議選用) 
說明: 
1.與mongodump合用,在restore過程當中,索引會從新創造 
性能:1g數據,約6分鐘rest

小結:

備份方面:mongodump的速度和壓縮率都最好,每秒125M的數據,壓縮率達28% 
恢復方面: 
mongoimport速度較快,但不保證數據完整導入 
mongorestore,速度較慢,比mongoimport慢2.5倍左右,可是根據mongodump導出的數據,能夠完整導入數據。對象

文章標籤: mongodbblog

相關文章
相關標籤/搜索