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