芒果知识补充(1)mongodb 单机的备份与恢复
備份與恢復是數據保存的重要技術。本次只是學習記錄單機的操作。
mongodb的備份和恢復提供了兩種方式。備份為bson格式和和備份為json和csv格式。
a)導出bson格式
主要用于單機小數據量的備份、快照等。存儲被bson格式,bson(Binary JSON ),
是輕量級的二進制數據格式。
備份命令mongodump
參數
--help 幫助信息
-v [ --verbose ] be more verbose (include multiple times for more
verbosity e.g. -vvvvv)
-h [ --host ] arg 指定要備份的服務器ip
--port arg 指定要備份的服務器端口,需要與服務器ip一起使用,格式為ip:port
--ipv6 開啟ipv6的支持,默認是關閉的
-u [ --username ] arg 用戶名
-p [ --password ] arg 密碼
--dbpath arg 指定連接數據庫后訪問數據的位置,但是不能是當前使用的目錄
--directoryperdb 為每一個庫建立一個目錄。
-d [ --db ] arg 指定要備份的庫名
-c [ --collection ] arg 指定要導出的collection
-o [ --out ] arg (=dump) 輸出的目錄,默認目錄為執行命令的路徑下創建dump目錄
-q [ --query ] arg 可以json查詢,有選擇性的導出數據
--oplog 使用oplog
--repair 嘗試修復損壞的數據庫
恢復命令mongorestore
參數
--help 幫助信息
-v [ --verbose ] be more verbose (include multiple times for more
verbosity e.g. -vvvvv)
-h [ --host ] arg 指定要導入的服務器ip
--port arg 指定要導入的服務器端口,需要與服務器ip一起使用,格式為ip:port
--ipv6 開啟ipv6的支持,默認是關閉的
-u [ --username ] arg 用戶名
-p [ --password ] arg 密碼
--dbpath arg 指定連接數據庫后訪問數據的位置,但是不能是當前使用的目錄
--directoryperdb 為每一個庫建立一個目錄。
-d [ --db ] arg 指定要備份的庫名
-c [ --collection ] arg 指定要導出的collection
--objcheck 插入前檢測對象的合法性
--filter arg 插入前的過濾器
--drop 在導入前刪除要導入的集合
--oplogReplay 恢復日志時間點
測試,首先查看要測試的數據庫(mytest)文件大寫
> show dbs
admin (empty)
mytest 1.953125GB
開始備份,將本地mytest庫導出到tmp目錄下
# mongodump -d mytest -o /tmp
導出結束耗時如下
real 0m5.412s
user 0m0.007s
sys 0m2.039s
導出后數據存為bson格式體積為577M。mytest庫里存的是MP3所以導出數據庫壓縮的不多。
開始做恢復測試,首先刪除mytest庫,在導入
# mongorestore --directoryperdb -d mytest /tmp/mytest
導入結束耗時如下:
real 0m52.587s
user 0m0.514s
sys 0m1.732s
總結:導入時間大約是導出時間的10倍。
b)導出json格式
雖然導出速度快,但是導出為json,csv可能對某些數據類型不兼容,并且不保證數據可以完整導入。
所以只簡單記錄一下,就不是實驗了。
導出命令mongoexport
參數
-q [ --query ] arg query filter, as a JSON string
--csv export to csv instead of json
--jsonArray output to a json array rather than one object per
line
恢復命令mongoimport
參數
--ignoreBlanks 在csv,tsv文件中忽略空域
--type arg 指定導入文件的類型,默認為json,也可以是csv,tsv
--drop 導入前先刪除原collection
--headerline 僅導入CSV,TSV文件的第一行作為頭文件
--upsert 插入或更新已存在的對象
--upsertFields arg comma-separated fields for the query part of the
upsert. You should make sure this is indexed
--stopOnError 當導入出現錯誤時停止
--jsonArray 導入json array,目前每個array的限制是4M
總結
以上是生活随笔為你收集整理的芒果知识补充(1)mongodb 单机的备份与恢复的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【西瓜视频】帮妈妈下载广场舞健身操视频
- 下一篇: 架构系列:ASP.NET 项目结构搭建