備份與恢復的一點思考

2021-02-14 區塊鏈羅賓

數據安全對於普通人而言會很陌生,然而早已在 DBA 心裡生根發芽。數據對於一家企業的重要程度不言而喻,個人數據的管理也是極其重要,否則當數據損壞或者永久丟失,那將是毀滅性的災難。

既然提到備份與恢復,筆者簡單介紹下 MySQL 資料庫的備份與恢復。按照備份後產生的副本文件是否可以編輯,可以將 MySQL 的備份方法分為邏輯備份和物理備份。邏輯備份可以簡單理解成跟版本無關的 SQL 文件,物理備份是磁碟文件的快照。數據備份期間,按照是否需要停止 MySQL 服務實例,可以將 MySQL 的數據恢復分為:冷備份、溫備份和熱備份。線上系統中,溫備與熱備使用較多,冷備常常用於歸檔。按照副本文件的缺失程度可以將數據備份分為完全備份以及增量備份。比如我們使用 mysqldump 備份,指定了 --all-databases 參數,此時就是一個完全備份。另外,我們可以使用 Percona 公司提供的 xtrabackup 工具實現完全備份與增量備份。線上系統,我們需要針對不同的業務場景採用合理的備份策略,定期巡檢,並且做好備份恢復測試。另外,我們還可以根據備份需求,設計一套備份平臺。

好了,MySQL 資料庫的備份與恢復就講到這裡。

時光回到 2017 年 9 月,macOS High Sierra 公測版可以對外下載。macOS High Sierra 最大的變化是文件系統升級為 APFS,按捺不住激動心情的我,花了一個晚上下載,然後在線升級。結果悲劇的事情發生,升級完成之後不能進入系統,進入恢復模式重裝也不行。萬幸的是,升級前手工備份了重要文件,基本保證了數據的可用。不過還是有少量文件丟失,損失尚可接受。折騰許久,最後只好採用在線重裝,版本回退到 macOS Sierra。

經歷這樣一次數據災難,開始反思自己的備份策略。從 9 月到現在兩個月的思考和踐行,個人認為還是很有參考價值,在此和讀者分享。

第一,所有軟體開啟雲同步。

一個軟體對於用戶而言,包含了數據和配置,如果軟體提供了雲同步功能,我們可以保證軟體數據的安全。這裡有一個建議,如果軟體集成了 Dropbox,我們最好選擇 Dropbox 進行數據備份。那配置文件呢?接下來我們展開講講。

第二,mackup 備份配置文件。

前面我們提到了數據的備份,這裡講一下配置文件怎麼備份。配置文件備份推薦使用 mackup,這是一個使用 Python 編寫的開源的配置文件備份工具。我們可以利用 mackup 將配置文件備份到 Dropbox,軟體配置稍有變更,立即同步到 Dropbox。除了同步到 Dropbox,mackup 還支持同步到 Google Drive、Copy、iCloud、Box 等。目前 mackup 支持的軟體眾多,基本上常用的軟體都有囊括。mackup 實際上是將本地的配置軟體做了一個軟鏈到 Dropbox 目錄,比如個人 home 目錄有一個 gitconfig 文件,mackup 就會做如下的軟鏈:

lrwxr-xr-x 1 robinwen staff 41B Oct 2 08:53 .gitconfig -> /Users/robinwen/Dropbox/Mackup/.gitconfig

使用 mackup 備份配置文件非常方便,執行 mackup backup 即可備份,如果要恢復,執行 mackup restore 即可。讀者不妨嘗試下。

第三,數據備份多份。

定期備份重要文件到移動硬碟也是很有必要的。很多時候我們並不會將重要文件同步到雲,一來是這些文件比較隱私,二來這些文件可能比較大。我們可以制定一個策略,比如一周一次,定期將重要文件拷貝到移動硬碟的備份歸檔目錄。正所謂不要把雞蛋放在同一個籃子裡,文件還需要存儲幾個副本。比如一個重要文件損壞、誤刪或者丟失,我們希望達到的效果是:可以從 A 移動硬碟恢復,也可以從 B 移動硬碟恢復,還可以從 Time Machine 備份恢復、還可以從 Dropbox Plus 雲備份恢復。接下來我們接著講 Time Machine 備份和 Dropbox Plus 備份。

第四,Time Machine 備份。

Time Machine 可以說是 Mac 平臺目前最好的備份方案。Time Machine 真得像是時光機,可以自由穿梭到任何一個可以去到的地方。我們可以準備一個移動硬碟,選擇非工作時間,將硬碟插入硬碟,打開 Time Machine,開啟自動備份,讓 Mac 在晚上繼續飛吧。至於 Time Machine 專用移動硬碟需要多大,這個因人而異,取決於你的錢包和備份頻率。一般用於 Time Machine 的專用移動硬碟至少是 Mac 硬碟總空間的 2 倍以上。Time Machine 第一次備份是全量備份,會佔用比較大的磁碟空間,當然我們可以排除不必要的文件。第一次全量備份之後,以後的備份都是增量備份,佔用空間會比較小。這裡有一個建議,Time Machine 開啟加密備份。讀者想想啊,Time Machine 備份可是 Mac 的全量拷貝,如果沒有加密,假如移動硬碟丟失,別人拿到之後就可以完整地恢復,細思恐極。為了最大程度保障數據的安全,我們需要開啟加密備份。這裡有個技巧,不要在 Time Machine 設置加密,而是利用磁碟工具將移動硬碟加密,每次備份之前輸入磁碟的加密密碼,這樣備份過程才會比較順暢。如果使用 Time Machine 提供的加密,它的機制是等備份完成再加密,你將會發現從晚上等到第二天白天,進度條還在那裡,不增不減,很是惱人。另外,在 AppSo 還有一系列 Time Machine 使用教程 [^1],讀者可以參考下。

第五,Dropbox Plus 雲備份。

數據是無價的,假如 Mac 系統崩潰,假如移動硬碟損壞,假如平時又沒有做任何備份,那這樣數據災難帶來的損失是無可估量的。我們需要為美好的事物付費,Dropbox 就是其中之一。因為一些不可描述的原因,Dropbox 無法正常訪問,但這並不能阻礙 Dropbox 成為一款成功而優雅的雲同步工具。準備地說,Dropbox 是同步盤而不是雲盤。Dropbox Plus 和 Dropbox Pro 都只有 1T 的空間。1T 的空間對於正常的用戶已經足夠了,一個人一生的重要文件並沒有這麼多。當然如果你把一些影音文件放 Dropbox,筆者也幫不了你。每年 99 美金的價格,對於視時間為生命的人來說,一點也不昂貴。自從用上了 Dropbox Plus,所有重要文件實時同步,這絲滑順暢的用戶體驗簡直太贊。如果你想本地存一份,本地修改然後實時同步到 Dropbox,沒有問題,我們可以借鑑 mackup 的實現,實際上就是利用軟鏈。比如有一個 Work 的目錄,只需要執行 ln -s ~/Documents/Work ~/Dropbox/Documents 就可以同步到 Dropbox。相信我,Dropbox 絕對值得擁有,當然,推薦之後對我並沒有絲毫好處。

至於為什麼不選國內的網盤,簡單講就是不信任,天知道國內廠商會拿這些文件做啥,還有某網盤無故刪除用戶文件之類的已經是家常便飯。除了 Dropbox,筆者認為還可以考慮 Google Drive。至於為什麼不推薦 iCloud,從 Apple 將在貴州建立數據中心來看[^2],不再信任 iCloud 了。當然這是筆者的判斷,至於怎麼取捨還是讀者自行分析。其實即使 Apple 不在貴州建數據中心,iCloud 這用戶體驗依然很糟糕。

第六,定期淘汰移動硬碟。

剛好 2017 年 10 月又發生一件事情,大學時間就在使用的移動硬碟莫名其妙地就不能識別了。好在之前有做數據遷移,裡面基本上沒有什麼重要文件。這裡有一個常識,硬碟是有壽命的,我們需要整理一個移動硬碟表格,裡面包含移動硬碟的生產時間、購買時間、使用時間、存放文件類型列表、硬碟重要程度等。通常移動硬碟使用 3 年左右就需要更換了,我們需要提前準備好新的移動硬碟,將舊的移動硬碟上的文件轉移過去。

第七,重要文件加密。

備份與加密是對孿生兄弟,沒有加密的備份還是不靠譜的。我們可以使用 Python 編寫自動生成隨機密碼的腳本,然後對重要文件壓縮加密。隨機密碼的實現方式,我們可以自定義一個數據字典,比如包含大寫字母、小寫字母、數字、特殊符號,然後隨機生成密碼。密碼的位數最好 32 位以上,筆者通常都是使用 64 位的密碼對重要文件進行加密。

講完個人在備份上的思考和踐行,接下來我們再來看下霍炬老師的備份方案:

備份主機是一臺安裝了 FreeBSD 系統的 NAS ,用 ZFS 把硬碟組成 raid-Z 做為存儲系統。

在各計算機和 NAS 上安裝 syncthing,設置需要備份的文件目錄和 NAS 同步,這樣就把全家各臺機器,包括虛擬機內部需要備份的文件都放到了 NAS 的存儲上。syncthing 本身支持比較簡單的文件版本,但是我沒使用這一特性,主要使用它的同步功能。文件版本通過 ZFS 的 snapshot 功能實現。

開源版本的 ZFS 沒有原生加密功能,而對於備份系統,加密是必須的。所以我在 FreeBSD 上使用 PEFS 做為加密方案,缺點是加密之後會使得 ZFS 壓縮功能幾乎失效,不過無所謂,硬碟空間並不值錢,何況前面說過,規劃好需要備份的重要文件本身也不會太大。

使用 ZFS 快照並且做遠程同步,我所知道的最好工具是 zrep。在我的系統上,使用 zrep,每 10 分鐘對已加密文件系統做一次快照,並把快照同步到異地節點。同步節點同樣需要使用 FreeBSD 和 ZFS。

我設置了兩個快照同步節點,一個較快的節點位於附近城市,一個較慢的節點位於另外一片大陸。 我實際使用案例中,這兩個節點分別位於蒙特婁和北京。 加上我自己家裡的 NAS,三個節點可以保證在人為災難(硬體損壞,火災)和自然災害(地震,水災)等影響下仍然至少存活一個備份,是比較可靠的方案。

最後需要提醒的是,用作備份的 ZFS 系統,只應該使用 BSD/Solaris,其他系統上 ZFS 的移植可靠性沒那麼高。[^3]

看完霍炬老師的備份方案,實在是汗顏,真極客。後續筆者也打算自建 NAS,對數據進行容災備份。

根據墨菲定律,凡是可能出錯的事必定會出錯。在計算機世界裡,沒有任何系統、任何組件是 100% 靠譜的。在架構世界裡,高可用是非常重要的考慮點。在現實世界裡,也有很多黑天鵝事件。做好數據安全策略,比如軟體開啟雲同步、數據備份多份、Time Machine 雲備份、Dropbox Plus 雲備份、定期淘汰硬碟、重要文件加密、有條件做 NAS等。數據是無價的,不要等到數據無法恢復時再後悔莫及。

1: https://goo.gl/UCLWWb
2: https://goo.gl/GPc1x9
3: https://goo.gl/yvnh5k

最後,筆者開通了圈子,期待你的加入。

本圈子名字來源於同名博客「https://dbarobin.com」。
圈子建立初心:與價值觀趨同的人交朋友。
本圈子有但不僅限於:「資料庫知識和經驗」「軟體應用分享」「科技人文」「文章評論」「音樂藝術」「哲學哲思」等一系列看上去亂糟糟的獨創或者二次信息傳播。
我們生存在三個世界中,第一個是真實的世界,第二個是網際網路世界,第三個價值世界。希望我們能在價值世界裡自由行走。

點擊「閱讀原文」加入圈子。

相關焦點

  • iPhone8怎麼恢復備份_iPhone8恢復備份技巧
    iPhone8怎麼恢復備份_iPhone8恢復備份技巧 2017-09-22 16:04 | 作者:leidian | 來源:265G QQ群號:624022706
  • Outlook郵箱的備份與恢復
    個人郵箱的使用空間都是有限的,企業郵箱更是如此,一旦郵箱滿了就需要備份,備份完才能去進行刪除郵件、清空郵箱等操作,繼而達到郵箱重複使用的目的。那今天小編就來講講Outlook郵箱是如何備份與恢復的。,之後點擊「完成」圖6彈出輸入密碼對話框,可輸入密碼,也可直接留空(即不設置密碼),然後點擊確定圖7如果要備份的數據文件比較大,可能要花一點時間,等待郵箱反應直到備份完成即可。
  • iCloud恢復備份:如何恢復iCloud備份到手機
    iCloud恢復備份:如何恢復iCloud備份到手機 2018-06-05 17:39 | 作者:瑪莎 | 來源:265G QQ群號:624022706
  • 蘋果手機備份恢復在哪裡?專業備份恢復教程分享
    蘋果手機備份恢復在哪裡?使用手機的時候會在手機上產生很多數據,為了避免一些重要的數據丟失,定期進行備份非常有必要。很多人不清楚蘋果手機的備份恢復操作,今天小編就給大家詳細介紹幾種常見的數據備份恢復方法。
  • 重新思考最有效的方式:備份
    於是,我不斷思考,更有效的記錄方式和備份方式到底是什麼?思考時,我不僅得出了方法和工具,還給自己列了些流程和規矩,整理如下也供你參考:01 所有主動(即手動)的備份,都要按定時進行,我目前給自己設定的是每周一次,每周日的晚上專門安排,用來做備份。
  • 備份恢復:如何查看iCloud備份文件
    備份恢復:如何查看iCloud備份文件 2018-09-04 15:16 | 作者:瑪莎 | 來源:265G QQ群號:624022706
  • iPhone如何恢復微信數據,有備份和沒備份恢復記錄方法
    只需要先打開手機的設置,選擇通用,選擇還原,先刪除所有手機數據是為了完整恢復備份數據,選擇先抹掉所有內容和設置後,手機會進入數據與應用的界面,選擇從iCloud雲備份恢復,這樣iPhone如何恢復微信聊天記錄的問題就解決了。
  • 手機照片恢復與備份
    由於手機的空間有限很容易導致手機空間不足,這個時候應該對手機的照片進行有效的備份。可以選擇通過雲空間進行網上備份或者通過移動硬碟等設備進行本地備份。在整理手機或者進行手機升級的時候容易出現特殊情況導致照片丟失,假如及時發現處理,可以通過專業的手機數據恢復找回丟失的文件,假如發現的不及時,很容易造成數據覆蓋導致恢復出的文件損壞或者無法恢復。所以進行有效的備份可以避免出現特殊情況造成的損失。
  • iPhone備份文件在哪?蘋果手機怎麼恢復備份數據
    有不少的蘋果手機用戶都遇到過想要查看自己之前的備份文件,但是又不知道iPhone備份文件在哪的情況。或者是說想要從備份中恢復數據,不僅找不到備份文件,還不知道怎麼操作。今天小編就來幫助大家解決這些問題。
  • checkpoint備份恢復篇-
    今天給大家分享一篇checkpoint存檔備份恢復教程建議使用【按住R進入遊戲進入前端模式】
  • 蘋果恢復大師:蘋果手機備份的照片怎麼恢復?
    但是真正到恢復的時候往往就發現問題了,因為iTunes是整機備份,我們無法單獨將照片恢復到手機中,那麼我們該怎麼做,才能將iTunes手機中的照片單獨恢復到iPhone中呢?那麼下面,小編就給大家介紹一個將iTunes備份中的照片單獨恢復到手機中的方法。蘋果iPhone手機如何從備份中單獨恢復照片到手機?
  • 蘋果iCloud備份恢復操作,提前備份不怕丟失!
    現在很多手機都會自帶雲空間,就是在連接網絡的狀態下,幫你把手機裡重要的內容備份起來。防止你誤刪或者手機故障後,數據丟失。雖然現在專業的恢復軟體也不少,但是能使用雲備份的時候還是要用滴,畢竟自帶更安全方便。
  • 怎麼恢復刪除的聊天記錄?沒有iCloud備份也能恢復
    一起來看下微信記錄刪除怎麼恢復? 一:利用iCloud雲備份恢復刪除的微信記錄! 不管是蘋果手機還算安卓手機,現在都有iCloud自動備份功能,但是很多小夥伴並不知道,只要沒有關閉iCloud開關,手機在接上無線網的情況下,會自動備份手機數據,防止數據丟失,所以微信記錄誤刪除後,iCloud雲備份恢復作為首選。 怎麼使用iCloud恢復刪除的聊天記錄??一起往下看: 第一步:首選查詢雲備份開關是否打開,自己是否有雲備份。
  • 蘋果手機簡訊怎麼備份?巧用方法,快速備份與恢復!
    一般來說,人們刪錯了手機的關鍵短消息,都僅僅默默地捨棄找到,我覺得刪錯的短消息是還有機會找到的,依靠「蘋果恢復大師」這個技術專業的數據恢復軟體就能,它能夠依據統計數據的刪掉和修復基本原理,深度檢驗手機上中的殘留文檔,將必須的統計數據開展資產重組和修復。
  • win10輕鬆自動「備份和恢復」只要5步
    如中病毒、卡頓、速度越來越慢、硬碟損壞等情況,備份有什麼好處,如果每次系統出現問題都重新安裝系統,那樣會很浪費時間、你要安裝系統所花費的時間、安裝驅動所花費的時間,還有你安裝平常的一些使用軟體的時間,但是做好了備份,你只需要幾分鐘到半小時就能恢復你的系統如新安裝一樣。
  • 安卓自定義,如何恢復安卓設備的出廠設置及備份
    這是一個初學者的任務,小編將在這篇文章中教你如何在Android設備上執行恢復出廠設置。而且不僅僅是直接恢復出廠設置,小編還會先介紹一些在擦除之前備份數據的最佳做法,以及一些其他提示,以幫助儘快恢復從重置中恢復。如果您正在尋找恢復出廠設置以修復設備的問題,您可以在沒有恢復出廠設置的情況下修復設備。
  • 蘋果備忘錄如何恢復?沒有備份也能恢復嗎
    技巧二:利用iCloud備份恢復iCloud是蘋果官方推出的雲端備份功能,在接入WiFi時將會自動開始備份。如果在誤刪備忘錄之前iCloud對備忘錄備份過,那麼我們就可以利用iCloud對蘋果備忘錄進行恢復。1.電腦上登陸iCloud官網,輸入我們的Apple ID。如果密碼忘記了,可以點擊下方的【忘記了Apple ID或密碼密碼】重置密碼哦~
  • iCloud怎麼恢復備份?iCloud怎麼恢復微信聊天記錄
    iCloud怎麼恢復備份?其實當我們誤刪除了重要的數據,比如照片、簡訊、通訊錄等,都是可以通過iCloud找回丟失的數據,如果你還不知道iCloud怎麼恢復備份?不妨看看下面的小科普吧。
  • 基於android 數據備份恢復的一種實現
    數據備份與恢復體系結構圖 本地備份恢復流程圖 本地備份恢復客戶端的序列圖: 在序列圖中,客戶端選擇本地備份或本地恢復後,發送廣播消息通知 Contacts 應用開始備份或恢復 (ContactsReceiver 根據信號類別 : 執行備份或恢復操作 )
  • 微信聊天記錄刪除了怎麼恢復?iCloud雲備份恢復首選
    在顯示開的情況下,我們點擊進去,查看備份時間,如果備份時間與你想恢復的時間相符,那麼久可以通過iCloud雲備份來恢復刪除的微信聊天記錄。 (如沒有閒置手機使用現有手機也可以恢復,不過恢復前需要將手機備份,因為要防止iCloud雲備份數據不全導致的其他數據丟失。)