阿里雲備份的故事

數據備份對不少公司來說是一個很是很是重要的事情,我這裏談談咱們公司的一次數據備份方案誕生的經歷,怎麼樣高效的便宜的備份數據。數據庫


20188月的一天,忽然公司董事長找我談話,說看到一個創業公司發的貼,說由於騰訊雲的事故,他們幾年的數據都沒有了。董事長問我,雲不是宣傳安全可靠的嗎,怎麼會丟數據呢?我上網查看了該公司,一家名爲前沿數控的創業公司投訴了騰訊雲。安全


我以爲誇大宣傳在國內市場上太廣泛了,國家要求運營商下降移動上網費用,結果運營商就推出了不限量套餐,而真實的狀況是當你流量達到必定程度後,你會被大大限速,限速的結果是你連微信聊天都不行,套路呀。服務器


咱們公司使用的是阿里雲,並且購買了阿里雲的備份工具,我讓公司運維去問問阿里雲客服,是否是能夠保證咱們數據的安全,而後獲得了下面答覆:微信


他們答覆也符合個人預期,沒有人會保證你數據的安全的,並且客服伺機給咱們提出了使用混合雲備份方案,把數據備份到多個IDC,何時都不忘記作生意呀。運維


咱們公司在阿里雲的花費已經一個月3萬多了,若是購買混合雲備份,又會增長不小的開銷。通過一番研究後,我建議公司把數據本身備份到其它雲,或者本身的本地服務器上面。咱們的數據主要有GIT代碼和相關設計圖片,生產數據庫和圖片服務器數據。GIT和數據庫都有本身的備份工具,代碼和設計圖片通過處理後備份不算很大,數據庫備份也能夠接受,但圖片服務器數據太大了,有100多個G。咱們使用的圖片服務器是FastDFS,我讓運維找找它有沒有自帶備份工具,通過幾天的研究和查找,運維返回的結果是,沒有。100G的數據,天天異地備份,可能一天也備份不完,並且大大的消耗流量,會佔用咱們客戶的寬帶流量,影響客戶使用體驗。因而,我建議咱們要本身開發一個增量備份功能,完成異地數據的備份和恢復。ide


首先,咱們要找到爲啥這麼多數據,這些數據都是須要備份的嗎?經和運維後臺開了討論會後,發現若是用戶刪除圖片,後臺並無從FastDFS裏面刪除圖片,只是從數據庫裏面刪除了圖片URL,這樣致使FastDFS裏面有不少無用的圖片,並且爲了適配不少不一樣尺寸的手機,後臺會爲原圖生成多個適配圖片,因此真正有效的圖片沒有那麼多。並且,不是全部的圖片都是重要的,一些APP論壇的圖片,不是很是重要,最關鍵的是用戶信息圖片,如車輛圖片,駕駛證圖片等等。工具


找到圖片的組成結構後,個人設計大概就出來了,目標是實現圖片的多級別增量備份,只備份有效數據,不備份系統生成的圖片。阿里雲


1. 經過URL對比,刪除舊的孤兒無用圖片,爲了防止之後產生孤兒圖片,咱們在數據庫裏面創建了一個刪除URL列表,保留這些刪除的連接,按期維護FastDFS的時候根據刪除列表刪除圖片,釋放FastDFS空間,不在線上當即刪除圖片。spa


2. 備份恢復工具也會根據刪除LIST,在作增量更新的時候,刪除備份中的相關圖片,不然數據恢復時候會致使刪除圖片恢復回來。.net


3. 備份工具實現增量備份,備份完畢記錄備份節點,方便下次備份找到開始時間點。


4. 備份工具實現增量更新功能,增量更新會把新增的圖片和刪除的圖片更新到以前的備份數據裏面。


5. 備份工具進行全量備份,由於首次備份是全量備份。備份工具實現差別級別備份,能夠選擇備份關鍵的圖片,忽略次要的圖片。


實現本身設計的備份工具之後,最大優點就是數據量大大減小了,天天只有100M如下,備份變得高效不少,並且消耗極少的帶寬流量。


寫這篇文章就是想說明一個道理,雲的最大優點是可讓你快速擴容機器數量和帶寬,但云不能解決一切問題,不少上層的問題仍是須要本身來解決的。雲服務商提供的標準化的統一解決方案雖然能夠解決不少問題,但不必定是最有效的解決辦法,不少時候是一種狗皮膏藥的感受。


本文分享自微信公衆號 - 可持續開發(isale3000)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索