麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數(shù)據(jù)庫 > MongoDB > 正文

MongoDB實(shí)現(xiàn)備份壓縮的方法教程

2020-03-14 12:49:46
字體:
供稿:網(wǎng)友

背景及原理                                         

數(shù)據(jù)庫的備份是災(zāi)難恢復(fù)的最后一道屏障,不管什么類型的數(shù)據(jù)庫都需要設(shè)置數(shù)據(jù)庫備份,MongoDB也不例外。MongoDB 3.0 后 ,數(shù)據(jù)庫可以采用Wiredtiger存儲引擎后(3.2 版本默認(rèn)),在此環(huán)境下通過mongodump 備份后,產(chǎn)生的備份文件要遠(yuǎn)大于數(shù)據(jù)存儲文件的大小。此外,一般MongoDB存儲的數(shù)據(jù)量比較大,備份文件也比較大,占用了很多磁盤空間。所以,研究如何實(shí)現(xiàn)MongoDB備份壓縮很有必要。

MongoDB,備份,壓縮

上圖是執(zhí)行命令 db.stats() 查看某數(shù)據(jù)庫的信息。

備份文件的大小一般為dataSize的大小,所以我們希望壓縮備份,可以達(dá)到storageSize 或者更小。

一般的備份思路是先備份,后對備份文件進(jìn)行壓縮。之前,我們采用的就是這種方式,例如主要壓縮命令如下

tar -cf - ${targetpath}/${nowtime} | pigz -p 10 > ${targetpath}/${nowtime}.tgz

(命令解釋: targetpath}/${nowtime 為待壓縮的備份文件;pigz 是Linux壓縮神器,可并行壓縮;-p是指定cpu的核數(shù)。)

但是這種方式,生成備份文件的過程中還是容易形成磁盤性能壓力和空間壓力。下圖為我們某臺Server 采用先備份后壓縮方式,形成的磁盤可用空間變化。

MongoDB,備份,壓縮

真正希望的是在備份的同時進(jìn)行壓縮,這樣可用空間就比較平穩(wěn)了。在MongoDB 3.2 中 引入了一種壓縮式備份【此mongodb版本必須不低于3.2】。可以使用gzip進(jìn)行壓縮。這是通過在mongodump和mongorestore中引入一個新的指令行選項(xiàng)“- -gzip”實(shí)現(xiàn)的。

壓縮可用于目錄以及歸檔模型下創(chuàng)建的備份,壓縮還可以減少磁盤空間使用。

測試

測試環(huán)境:

 

測試服務(wù)器

測試數(shù)據(jù)庫

端口

文件路徑

172.X.X.245

實(shí)例全備

17219

/data/mongodb_back

172.X.X.246

QQ_DingDing

17218

/data/mongodb_back/QQ_DingDing

 

Step 1 壓縮式備份的命令:

./mongodump --host 172.X.X.245 --port 17219 -u 用戶名 -p "密碼" --gzip --authenticationDatabase "admin" --out /data/mongodb_back

備份后文件的大小,97M

這時候,查看備份文件的格式都變成了.gz的格式

Step 2 將備份文件copy至遠(yuǎn)程機(jī)器上,進(jìn)行還原:

以下命令是將在172.X.X.246,要求是將文件從X.245 copy至本地

scp -r [email protected]:/data/mongodb_back/QQ_DingDing

step 3 執(zhí)行還原的命令

執(zhí)行的命令

./mongorestore --host 172.X.X.246 --port 17218 -d QQ_DingDing -u 用戶名 -p "密碼" --gzip --authenticationDatabase "admin" /data/mongodb_back/QQ_DingDing

還原后登錄MongoDB,執(zhí)行show dbs,查看此時 數(shù)據(jù)大小為500M。

補(bǔ)充說明 

(1)    如果不采用壓縮式的備份,備份后的文件會是多大呢?備份命令 :

./mongodump --host 172.X.X.245 --port 17219 -u 用戶名 -p "密碼" --authenticationDatabase "admin" --out /data/mongodb_back2

查看此種方法備份后的文件大小--1.5G。

以此QQ_DingDing數(shù)據(jù)庫為例,其壓縮率為(文件壓縮后的大小與壓縮前的大小之比):97M/1.5G=97/1536=6.3%

(2)   這種壓縮備份的方式的會不會帶來一些弊端:例如備份時間增長?(恢復(fù)時間增加?,請自測一下試試,嘻嘻 @@@)

以 某歸檔備份庫所在實(shí)例為例(storageSize 150G,dataSize 600G )

采用 先備份后壓縮的方式耗時1小時55分鐘

MongoDB,備份,壓縮

采用壓縮式備份(指定--gzip參數(shù))的方式耗時 2小時33分鐘

MongoDB,備份,壓縮  

產(chǎn)生的備份文件大小基本相等,壓縮式備份方式產(chǎn)生的備份文件略小

MongoDB,備份,壓縮

所以 壓縮式備份會導(dǎo)致備份時間增長。

但從空間使用的角度來講,我們?nèi)匀唤ㄗh大家使用壓縮式備份,其壓縮比非常高(測試案例的壓縮比6.3%)。

附:定時清除,保留7天的紀(jì)錄

#!/bin/bashtargetpath='/backup/mongobak'nowtime=$(date -d '-7 days' "+%Y%m%d")if [ -d "${targetpath}/${nowtime}/" ]thenrm -rf "${targetpath}/${nowtime}/"echo "=======${targetpath}/${nowtime}/===刪除完畢=="fiecho "===$nowtime ==="

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網(wǎng)的支持。


注:相關(guān)教程知識閱讀請移步到MongoDB頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产精品视频专区 | 免费观看9x视频网站在线观看 | 欧美成年视频 | 中文字幕在线观看精品 | 视频一区二区三区在线播放 | 午夜影视一区二区 | 日本爽快片100色毛片视频 | 国产日韩在线观看一区 | xxxxxx打针视频vk| 成年免费视频黄网站在线观看 | 国产亚洲综合一区二区 | av国产免费 | 韩国十九禁高潮床戏在线观看 | 亚洲一区成人 | 午夜激情视频网站 | 国产精品久久久久久影视 | 久久亚洲成人 | 蜜桃一本色道久久综合亚洲精品冫 | 久草视频在线看 | 欧美四级在线观看 | 精品久久中文网址 | 国产精品视频一区二区三区四区五区 | 国产女同疯狂激烈互摸 | 狠狠操视频网站 | 国产小视频在线观看 | 中国黄色一级生活片 | 毛片免费大全短视频 | 国产 一区 | h视频在线免费看 | 国产在线1区 | 中文字幕在线观看1 | 午夜影院在线免费观看 | 久久91精品国产91久久yfo | xxxx69hd一hd| 欧美一级淫片免费播放口 | 黄色免费不卡视频 | 国产视频在线免费观看 | 91在线视频在线观看 | 老师你怎么会在这第2季出现 | 国产美女视频一区二区三区 | 激情久久免费视频 |