亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時間:2018年09月06日 10:34:53   作者:東山絮柳仔  
這篇文章主要給大家介紹了關(guān)于MongoDB實現(xiàn)備份壓縮的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

背景及原理                                        

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

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

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

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

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

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

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

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

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

測試

測試環(huán)境:

測試服務器

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

端口

文件路徑

172.X.X.245

實例全備

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至遠程機器上,進行還原:

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

scp -r root@172.X.X.245:/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。

補充說明 

(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)   這種壓縮備份的方式的會不會帶來一些弊端:例如備份時間增長?(恢復時間增加?,請自測一下試試,嘻嘻 @@@)

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

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

 

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

  

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

所以 壓縮式備份會導致備份時間增長。

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

附:定時清除,保留7天的紀錄

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

總結(jié)

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

相關(guān)文章

  • MongoDB的創(chuàng)建、更新和刪除

    MongoDB的創(chuàng)建、更新和刪除

    下面開始學習MongoDB最重要也是最基礎(chǔ)的部分:C(創(chuàng)建)R(查詢)U(更新)D(刪除);由于R(查詢)操作相對來說內(nèi)容比較多,也比較繁瑣,同時使用頻率也比較高,所以下一篇會拿出來單獨介紹。廢話不多說,連上服務器,我們直接進入正題
    2017-05-05
  • MongoDB視圖的修改與刪除的實現(xiàn)

    MongoDB視圖的修改與刪除的實現(xiàn)

    視圖為mongodb的操作和數(shù)據(jù)安全上提供了便利,本文主要介紹了MongoDB視圖的修改與刪除的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2023-12-12
  • Mongodb過濾器filter選擇要返回的數(shù)組子集操作方法

    Mongodb過濾器filter選擇要返回的數(shù)組子集操作方法

    Mongodb使用過濾器 $filter根據(jù)指定條件選擇要返回的數(shù)組子集,這篇文章主要介紹了Mongodb對嵌套文檔數(shù)組進行查詢操作,需要的朋友可以參考下
    2023-07-07
  • mongodb?linux下集群搭建過程

    mongodb?linux下集群搭建過程

    這篇文章主要介紹了mongodb?linux下集群搭建過程,本例中,為每個集群(shard?config)三個mongo實例,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-02-02
  • MongoDB數(shù)據(jù)庫基礎(chǔ)操作總結(jié)

    MongoDB數(shù)據(jù)庫基礎(chǔ)操作總結(jié)

    這篇文章主要介紹了MongoDB數(shù)據(jù)庫基礎(chǔ)操作,結(jié)合實例形式總結(jié)分析了MongoDB數(shù)據(jù)庫創(chuàng)建、刪除、集合、文檔等基本操作技巧,需要的朋友可以參考下
    2020-06-06
  • Mongodb數(shù)組字段索引之多鍵索引

    Mongodb數(shù)組字段索引之多鍵索引

    Mongodb字段允許包含字符,文檔,數(shù)組等各種各樣的類型,同樣Mongodb索引也可以支持字符,文檔,數(shù)組等類型,本文結(jié)合Mongodb官方文檔,介紹Mongodb數(shù)組類型數(shù)據(jù)的索引——多鍵索引,感興趣的朋友跟隨小編一起看看吧
    2024-07-07
  • 基于Morphia實現(xiàn)MongoDB按小時、按天聚合操作方法

    基于Morphia實現(xiàn)MongoDB按小時、按天聚合操作方法

    這篇文章主要介紹了基于Morphia實現(xiàn)MongoDB按小時、按天聚合操作 ,實現(xiàn)思路是啟動定時任務,對各用戶的設(shè)備狀態(tài)數(shù)據(jù)分別按照小時以及天進行聚合,并存儲進數(shù)據(jù)庫中供用戶后續(xù)查詢.需要的朋友可以參考下
    2019-07-07
  • MongoDB學習以及集群搭建的實踐全紀錄

    MongoDB學習以及集群搭建的實踐全紀錄

    這篇文章主要給大家介紹了關(guān)于MongoDB學習以及集群搭建的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-09-09
  • MongoDB安裝及接入springboot的詳細過程

    MongoDB安裝及接入springboot的詳細過程

    MongoDB是一個開源、高性能、無模式(模式自由)的文檔(Bson)型數(shù)據(jù)庫,這篇文章主要介紹了MongoDB安裝及接入springboot,需要的朋友可以參考下
    2024-05-05
  • Mongodb 3.2.9開啟用戶權(quán)限認證問題的步驟詳解

    Mongodb 3.2.9開啟用戶權(quán)限認證問題的步驟詳解

    這篇文章主要給大家介紹了關(guān)于Mongodb 3.2.9開啟用戶權(quán)限認證問題的詳細步驟,通過開啟權(quán)限認證,會對大家的Mongodb更加保護的安全些,文中將步驟介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-08-08

最新評論