日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MongoDB Hot Backup 测试及痛点

發(fā)布時間:2025/3/18 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MongoDB Hot Backup 测试及痛点 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前言

Part1:寫在最前

Percona MongoDB 支持Hot Backup,解決了MongoDB官方版本只能使用mongodump的情況。mongodump在小庫中還好,量上來后,備份恢復都是痛苦的。本文就MongoDB hot backup 備份中的一個bug進行復現(xiàn)和解決。


實戰(zhàn)

Part1:限制

在Percona MongoDB3.2.12版本之前,在進行物理熱備份時,如果配置文件中配置了

directoryPerDB: true

directoryForIndexes: true

這兩個參數(shù)的話,那么在執(zhí)行備份的時候會爆出錯誤:

1 2 3 4 5 6 7 8 [root@HE1?bin]#./mongo?127.0.0.1:27020/admin MongoDB?shellversion:?3.2.11-3.1? connecting?to:127.0.0.1:27020/admin ?? heleitest:PRIMARY>use?admin switched?to?db?admin heleitest:PRIMARY>db.runCommand({createBackup:?1,?backupDir:?"/home/work/backup"}) {?"ok"?:?0,?"errmsg"?:?"boost::filesystem::copy_file:?No?such?file?or?directory:\"/home/mongodb/data/admin/collection/11-6714811575794894766.wt\",\"/home/work/backup/admin/collection/11-6714811575794894766.wt\""}



Part2:痛點

這個問題會很頭痛,比如生產(chǎn)庫中,MongoDB庫越來越大,促使我們計劃采用hot backup方案,由于起先的庫開啟了這個方式,那么臨時的解決方案是什么樣的呢?

1 2 It?may?be?useful?to?simply?let?a?secondary?initial?sync?with?those?options?off,?then?you?could?take?a?hot?backup?again?to?populate?all?the?other?nodes.?This?is?not?a?solution?but?a?path?to?get?the?production?system?back?into?a?state?you?can?use?the?backups.? please?note?this?assume?production?is?built?to?best?practices?and?is?in?a?replica-set?and?not?a?stand?alone?mongod?process.

意思是在我們MongoDB常規(guī)的復制集中,如果想要備份這個庫,那么首先要下掉一個Secondary,清空數(shù)據(jù)目錄進行重新復制,這個過程會非常緩慢和復雜。如果僅僅是重啟數(shù)據(jù)庫的話,會起不來報錯,原因是已經(jīng)開啟了多路徑存儲數(shù)據(jù)和索引獨立存儲這兩個選項,而現(xiàn)有版本的hotbackup是不支持這樣的備份方式的。



Part3:方案

好在Percona版本響應給力,在賀春旸老師提出該Bug后,官方在3.2.12-3.2版本便修正了這一問題,使得hot backup的痛點得以解決,例如,原先我需要重新對集群進行關(guān)閉參數(shù),導出導入數(shù)據(jù),這無疑是一個巨大的工作量,同時會讓數(shù)據(jù)庫可靠性在不短的時間內(nèi)都處于較低狀態(tài)。而現(xiàn)在,我們僅僅要做的就是升級數(shù)據(jù)庫,這一問題就能夠得到解決。



Part4:復現(xiàn)

1 2 3 4 5 6 [root@HE1?bin]#?./mongo?127.0.0.1:27020/admin Percona?Server?for?MongoDB?shell?version:?3.2.12-3.2 connecting?to:?127.0.0.1:27020/admin ?? heleitest:PRIMARY>?db.runCommand({createBackup:?1,?backupDir:?"/home/work/backup"}) {?"ok"?:?1?}


我這里先對之前的3.2.11-3.1版本進行一個升級,如何升級MongoDB數(shù)據(jù)庫可參考:

http://suifu.blog.51cto.com/9167728/1947035

同時,配置文件中配置了

directoryPerDB: true

directoryForIndexes: true

可以看到,在3.2.12-3.2版本中,備份是沒有任何異常的。



Part5:校驗

我們來看下3.4最新版是否也是正常的

1 2 3 4 5 6 [root@HE1?bin]#?./mongo?127.0.0.1:27020/admin Percona?Server?for?MongoDB?shell?version?v3.4.4-1.4 connecting?to:?mongodb://127.0.0.1:27020/admin Percona?Server?for?MongoDB?server?version:?v3.4.4-1.4 heleitest:PRIMARY>?db.runCommand({createBackup:?1,?backupDir:?"/home/work/backup"}) {?"ok"?:?1?}


可以看到,最新版也沒有問題。



Part6:Percona 官方升級日志

#PSMDB-123: Fixed the creation of proper subdirectories inside the backup destination directory


賀春旸老師提交的jira

https://jira.percona.com/browse/PSMDB-123


——總結(jié)——

感謝賀春旸老師的bug提交,感謝Percona團隊高效的修復速率,開源,讓世界更美好~由于者的水平有限,編寫時間也很倉促,文中難免會出現(xiàn)一些錯誤或者不準確的地方,不妥之處懇請讀者批評指正。




?本文轉(zhuǎn)自 dbapower 51CTO博客,原文鏈接:http://blog.51cto.com/suifu/1948583,如需轉(zhuǎn)載請自行聯(lián)系原作者



總結(jié)

以上是生活随笔為你收集整理的MongoDB Hot Backup 测试及痛点的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。