我們知道企業級備份軟件或者備份一體機支持對文件、數據庫和操作系統的保護功能,那么對于文件、數據庫和操作系統的保護在技術實現上有哪些差別呢?本文將對文件、數據庫和操作系統的保護這些備份基礎知識進行介紹,希望能夠幫助讀者多了解一些備份相關知識。
文件:完全、增量和差異備份
對普通文件的備份,企業級的傳統定時備份技術通常會將數據打包成某種格式存放。類似把生產存儲上選定的文件、文件夾/目錄結構復制到備份介質存儲。
對于文件備份,目前幾乎絕大多數的備份軟件,除了完全備份之外,都能支持增量備份和差異備份(或稱差分備份)。所謂增量備份,就是在上一次全備份或者增量備份的基礎上,掃描數據源端新增/改變/刪除的對象,并對這些變化數據進行備份;恢復時也是按照全備份--增量備份的順序來進行。而差異備份,則每次都是以上一個全備份為基礎進行比對,會占用更多地空間,但恢復時也減少了按順序依次恢復增量備份的繁瑣。
數據庫:如何實現備份數據的一致性
數據庫備份就沒這么簡單了。首先,需要保證控制文件、數據文件和日志在時間上的一致性。一般的數據庫在設計時為了提高存儲的性能,不一定是每條記錄的寫入操作都會立即保存到硬盤上,比如Oracle默認就是每隔3秒刷新寫緩存中的數據到磁盤。如果在這期間出現斷電等異常情況,則靠日志來恢復事務的完整性。那我們在備份時,肯定希望是在數據文件和日志文件完全一致的情況,也就是Flush動作剛執行完的狀態,此時可以保證數據庫的正??捎谩祿靷浞荽淼囊粋€重要功能就是在執行備份前通知數據庫將內存中的“臟數據”寫盤。
大多數情況下,備份軟件是通過調用數據庫自身的API或者命令來實現這一點的。以火星高科的MBA(火星艙上的備份功能也是用的這款軟件)為例,對Oracle數據庫備份支持調用RMAN和導入/導出(import/export)兩種方式。RMAN是Oracle自身的備份/恢復程序,支持基于歸檔日志的增量備份,易用性較好;導入/導出方式相對更加靈活,支持單表操作,但不支持增量備份,操作也相對復雜。對于高級用戶,還提供了備份前腳本和備份后腳本的支持。
操作系統:啟動相關數據和恢復引導介質
對于操作系統備份,并不是簡單地把文件都拷貝一份那么簡單,用過ghost等磁盤克隆軟件的用戶都應該理解。首先,對打開文件的訪問支持是個基礎條件--有些被OS占用的系統文件需要備份;另外,還有MBR主引導記錄/啟動扇區,或者GPT格式的啟動分區(就像我們安裝Windows Server 2008/Windows 7時自動創建的100MB分區),Linux通常也建議有一個100MB左右的boot分區,這些都需要被正常的備份和恢復才能保證操作系統的啟動。
企業級備份與普通桌面備份在恢復時的重要一點區別是:桌面備份有些是從本地硬盤、移動硬盤或者光盤來恢復;而企業備份都是要通過網絡訪問備份服務器、備份一體機乃至FC光纖/SAS連接的磁帶(包括虛擬磁帶庫)設備來恢復數據。因此后者需要一個專用的引導介質,它們可能是基于WinPE和Linux的LiveCD定制的程序。即使是裸機恢復,到一個空白的硬盤,甚至是在另一臺服務器上也能正常進行(異機恢復)。
綜合來說,數據備份的可靠性不依賴于生產存儲和被保護服務器的正常運行,也就是在需要的時候可以做異機恢復。對于火星艙數據保護系統來說,除了傳統的定時備份之外,通過CDP(持續數據保護)和SAN Boot技術還能夠實時備份、更加快捷地恢復操作系統運行。