最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

背景及原理                                        

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

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

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

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

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

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

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

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

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

測(cè)試

測(cè)試環(huán)境:

測(cè)試服務(wù)器

測(cè)試數(shù)據(jù)庫(kù)

端口

文件路徑

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

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

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

以下命令是將在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í) 數(shù)據(jù)大小為500M。

補(bǔ)充說(shuō)明 

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

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

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

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

(2)   這種壓縮備份的方式的會(huì)不會(huì)帶來(lái)一些弊端:例如備份時(shí)間增長(zhǎng)?(恢復(fù)時(shí)間增加?,請(qǐng)自測(cè)一下試試,嘻嘻 @@@)

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

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

 

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

  

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

所以 壓縮式備份會(huì)導(dǎo)致備份時(shí)間增長(zhǎng)。

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

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

#!/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é)

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

相關(guān)文章

  • mongodb 隨機(jī)獲取一條記錄的方法

    mongodb 隨機(jī)獲取一條記錄的方法

    這篇文章主要介紹了 mongodb 隨機(jī)獲取一條記錄的方法的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • MongoDB單表數(shù)據(jù)的導(dǎo)出和恢復(fù)實(shí)例講解

    MongoDB單表數(shù)據(jù)的導(dǎo)出和恢復(fù)實(shí)例講解

    MongoDB 是一個(gè)跨平臺(tái)的,面向文檔的數(shù)據(jù)庫(kù),提供高性能,高可用性和可擴(kuò)展性方便。 MongoDB 工作在收集和文件的概念。接下來(lái)通過(guò)本文給大家介紹MongoDB單表數(shù)據(jù)的導(dǎo)出和恢復(fù)實(shí)例講解,對(duì)mongodb導(dǎo)出和恢復(fù)數(shù)據(jù)知識(shí)感興趣的朋友一起學(xué)習(xí)吧
    2016-03-03
  • MongoDB插入、更新、刪除文檔實(shí)現(xiàn)代碼

    MongoDB插入、更新、刪除文檔實(shí)現(xiàn)代碼

    本文通過(guò)實(shí)例代碼給大家簡(jiǎn)單介紹了mongodb插入、更新、刪除文檔的方法,需要的的朋友參考下吧
    2017-04-04
  • 關(guān)于單臺(tái)MongoDB實(shí)例開(kāi)啟Oplog的過(guò)程詳解

    關(guān)于單臺(tái)MongoDB實(shí)例開(kāi)啟Oplog的過(guò)程詳解

    這篇文章主要給大家介紹了關(guān)于單臺(tái)MongoDB實(shí)例開(kāi)啟Oplog的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-09-09
  • 關(guān)于CentOS 8 搭建MongoDB4.4分片集群的問(wèn)題

    關(guān)于CentOS 8 搭建MongoDB4.4分片集群的問(wèn)題

    在MongoDB里面存在另一種集群,就是分片技術(shù),可以滿足MongoDB數(shù)據(jù)量大量增長(zhǎng)的需求。這篇文章主要介紹了CentOS 8 搭建MongoDB4.4分片集群的問(wèn)題,需要的朋友可以參考下
    2021-10-10
  • MongoDB模糊查詢正則regex(類似like?和?not?like)

    MongoDB模糊查詢正則regex(類似like?和?not?like)

    在類關(guān)系型數(shù)據(jù)庫(kù)中,like和not?like是常用的模糊查詢操作符,它允許我們?cè)谄ヅ渥侄蔚臅r(shí)候使用通配符,在MongoDB中,也有類似的操作符,MongoDB?可以使用?$regex?操作符來(lái)設(shè)置匹配字符串的正則表達(dá)式,MongoDB?使用?PCRE(Perl?兼容的正則表達(dá)式)作為正則表達(dá)式語(yǔ)言
    2024-02-02
  • 深入了解MongoDB是如何存儲(chǔ)數(shù)據(jù)的

    深入了解MongoDB是如何存儲(chǔ)數(shù)據(jù)的

    MongoDB是一個(gè)可擴(kuò)展、高性能的分布式文檔存儲(chǔ)數(shù)據(jù)庫(kù),由C 語(yǔ)言編寫,下面這篇文章主要給大家介紹了關(guān)于MongoDB是如何存儲(chǔ)數(shù)據(jù)的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2017-07-07
  • MongoDB創(chuàng)建和查詢視圖的方式

    MongoDB創(chuàng)建和查詢視圖的方式

    本文整理mongodb的官方文檔,介紹mongodb的視圖創(chuàng)建和查詢,在Mongodb中,允許使用兩種方式來(lái)創(chuàng)建視圖,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2023-12-12
  • MongoDB客戶端工具NoSQL?Manager?for?MongoDB介紹

    MongoDB客戶端工具NoSQL?Manager?for?MongoDB介紹

    這篇文章介紹了MongoDB客戶端工具NoSQL?Manager?for?MongoDB,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • MongoDB增刪查改操作示例【基于JavaScript Shell】

    MongoDB增刪查改操作示例【基于JavaScript Shell】

    這篇文章主要介紹了MongoDB增刪查改操作,結(jié)合實(shí)例形式分析了MongoDB數(shù)據(jù)庫(kù)基于JavaScript Shell的基本增刪查改操作技巧與使用注意事項(xiàng),需要的朋友可以參考下
    2019-07-07

最新評(píng)論

调兵山市| 崇明县| 德庆县| 昭苏县| 晴隆县| 井冈山市| 永城市| 阳新县| 黄山市| 东源县| 开平市| 丹东市| 元谋县| 林州市| 容城县| 双辽市| 永丰县| 甘南县| 中方县| 奎屯市| 敦化市| 思茅市| 股票| 行唐县| 米易县| 三江| 镇江市| 宿迁市| 新民市| 天镇县| 涞水县| 彰化市| 绵竹市| 沁水县| 宜君县| 加查县| 黑河市| 临澧县| 炎陵县| 呼玛县| 兴国县|