簡介
系統恢復是把資料庫由存在故障的狀態轉變為某一已知的無故障狀態的過程。在資料庫管理系統中,資料庫恢復子系統是其中一個重要的組成部分,而資料庫系統發生故障的原因是多方面的: 人為的和非人為的,事務內部和外部的 ,系統範圍內和系統範圍外的等等因素都可以造成資料庫故障。如: 計算機主機板上的晶片不能正常工作,會導致計算機系統不能正常工作,一般不會導致套用和數據的損壞。但如果計算機的硬碟損壞,將會導致數據丟失。特別是當前隨著辦公自動化和電子商務的飛速發展,企業對信息系統的依賴性越來越高,資料庫作為信息系統的核心擔當著重要的角色 。資料庫資源是業和社會一種無可替代的財富,尤其在軍事領域 、銀行、證券等行業,如果發生意外的數據丟失將會危及到國家安全和國民生計。資料庫恢復逐漸被學術界所重視,一個完善的資料庫恢復策略和方案會給社會和企業大大降低人力物力、財力的消耗。
資料庫系統
資料庫系統是指在計算機系統中引入資料庫後構成的系統,一般由資料庫、資料庫管理系統(及其開發工具)、套用系統、資料庫管理員和用戶構成。
資料庫系統是一個由硬體、軟體(作業系統、資料庫管理系統和編譯系統等)、資料庫和用戶構成的完整計算機套用系統。資料庫是資料庫系統的核心和管理對象。因此,資料庫系統的含義已經不僅僅是一個對數據進行管理的軟體,也不僅僅是一個資料庫,資料庫系統是一個實際運行的,按照資料庫方式存儲、維護和向套用系統提供數據支持的系統 。
恢復策略
備份策略
該策略是把資料庫複製到轉儲設備的過程 。轉儲設備是指用於放置資料庫拷貝的磁帶或磁碟,通常也將存放於轉儲設備中的資料庫的拷貝稱為原資料庫的備份或轉儲。轉儲是十分消耗時間和資源的,不能頻繁進行。備份可分為一致性備份( consistent backup) 和不一致性備份( inconsistentbackup) 兩種 。一般習慣於進行物理備份,物理備份是資料庫檔案拷貝的備份,冷備份、熱備份屬於物理備份。冷備份是在資料庫被正常關閉之後進行的數據檔案的物理備份 。當資料庫被關閉時,被資料庫使用的每一個檔案都被備份下來,這些檔案因而保持著數據關閉時的完整的映象。熱備份是在資料庫運行的情況下,採用某種特定的( 如 :archivelog mode) 方式備份數據的方法 。這涉及到將每個表空間設定為備份狀態,然後備份其數據檔案,最後將表空間恢復成正常的狀態。資料庫可以從這個備份中完全地恢復過來,也可以通過歸檔的重做日誌回滾到前面時間的任一個點上。
重新處理策略
該策略是對事務進行重新處理。儘管重新處理不能精確地恢復到某一點,但都可以回到某個已知點,並從那裡開始重新執行。這類恢復最簡單形式是定期對資料庫進行備份,保持自備份以來所有處理過的事務記錄。這樣在故障發生時,操作員就可以從備份中恢複數據庫 ,重新執行所有事務。在實際套用過程中,卻難以實施。因為一方面,重新處理事務與第一次處理這些事務耗費的時間是一樣的。如果計算機調度繁重,系統就可能永遠執行不完;另一方面,當事務並發處理時,事件不能同時執行。人類活動中的微小變化都可能改變並發事務的執行次序。因此,重新處理很少作為恢復技術在並發系統中使用。
前向回滾/後向回滾策略
該策略是採取定期對資料庫進行備份,並保持自備份以來的事務對資料庫的改變。這種方式需要保持事務結果的日誌( log)。回滾段用於存放數據修改之前的值( 包括數據修改之前的位置和值)。回滾段的頭部包含正在使用的該回滾段事務的信息。一個事務只能使用一個回滾段來存放它的回滾信息,而一個回滾段可以存放多個事務的回滾信息。當事務正在處理的時候,回滾段的信息保存在重做日誌檔案中。當前回滾段區的所有塊用完而事務還需要更多的回滾空間時,回滾段的指針將移到下一個區。當最後一個區用完, 指針將移到第一個區的前面。當下一個區正在使用時,事務將為回滾段分配一個新的區 , 這種分配稱為回滾段的擴展。回滾段將一直擴展到該回滾段區的個數到達回滾段的參數 MAXEXTENTS 的值時為止。在此過程中,事務存儲點提供了一種機制,用於回滾部分事務。因此,我們可以不必在更新之前檢查更新的有效性 ,而是預設一個存儲點,在更新之後,如果沒有出現錯誤,就繼續執行 ,否則回滾到更新之前的存儲點。存儲點的作用就在於此。更新和回滾代價很大,只有在遇到錯誤的可能性很小,而且預先檢查更新的有效性的代價相對很高的情況下,使用存儲點才會非常有效。在這,DBMS 提供了檢查點( checkpoint) 的機制,它提供了資料庫和事務日誌間的同步點。從某種意義上講,檢查點是一種低代價操作。
資料庫鏡像策略
該策略一般是根據 DBA 要求,自動把整個資料庫或其中之一的關鍵數據複製到另一個磁碟上。當主資料庫更新時,DBMS 自動把更新後的資料庫或其中的關鍵數據複製過去,始終使鏡像數據和主數據保持一致性。出現故障時,可由鏡像磁碟繼續提供使用,同時 DBMS 自動利用鏡像磁碟數據進行資料庫的恢復。由於數據鏡像是通過複製數據實現的,頻繁地複製數據會降低系統運行效率。因此,在實際套用過程中,只選擇對關鍵數據和日誌檔案鏡像,而不是對整個資料庫進行鏡像。一般來講,該策略主要針對介質故障( 介質故障是對系統影響最為嚴重的一種故障) 。
方式
事前預測規範
事前防範主要通過數據隔離、加密、過濾、管理、備份等技術,加強整個網路資料庫的健壯性。事前預測規範也是建立在”冗餘”原理基礎上的,這種冗餘主要體現在資源的消耗和大量的前期工作。如在資料庫套用前做好資料庫的標準化和規範工作,建立數據備份冗餘途徑 ,制訂預防資料庫損壞的備份方案等等。在設備可靠性方面,可以採取熱插拔、熱備份,同時設備的交換網路、路由處理系統等所有關鍵部件採用冗餘熱備份設計,滿足網路對設備高可靠性的要求。在資料庫組網設計時,在骨幹節點採取雙機備份等方式進行環網自愈保護,接入骨幹傳輸網的鏈路可採取雙歸鏈路等設計進行環網自愈保護,從組網角度避免單網點故障。另外,還可採用備份中心技術,為路由器上的任意接口提供備份接口,路由器上的任一接口可以作為其它接口( 或邏輯鏈路)的備份接口,可對接口上的某條邏輯鏈路提供備份。通過靈活的備份機制及完善的技術,可以充分利用備份資源,確保網路互聯互通的可靠性。以上列舉的有效防範措施不僅能減少資料庫的損壞,更重要的在發生相應故障時能儘可能降低恢復成本,最大限度地達到完全恢復的效果 。
事中監測預警
事中監測預警是指在資料庫套用過程中,監測各個數據傳遞和處理過程,監測各個軟硬體數據處理的性能等等從而達到有效預警效果。在這種情況下,資料庫在運行,但是在運行時能監測到部分數據的不正確,從而發現問題及時進行採取有效措施使數據損壞降低到最小範圍。在此機制下,相應的數據信息反饋能獲取可能發生的問題大小和範圍,為下一步工作提供有效的信息支持,以便做好相應的補救工作。如在資料庫網路中可以通過建立資料庫網路的數量龐大動態發現、動態拓撲生成、自動配置的功能,從而降低網路資料庫恢復的工作量,提高資料庫系統恢復工作效率。
事後彌補核實
事後彌補核實是在資料庫發生損壞後,進行資料庫恢復,盡力進行補救工作。在資料庫恢復過程中必須採取各種措施進行合理組合,力爭以最大限度和最有效的方式進行資料庫恢復。比如,日誌記錄等功能就是一個非常良好的追溯手段,在出現問題時可以根據記錄迅速查找源頭,防止事態進一步擴大。日誌記錄僅限於在套用層的伺服器,在網路資料庫中必須提供在網路級做日誌記錄的能力,可以定位到連線埠,從而確定物理地點與時間,將會給後期進一步查明真相帶來很大的幫助。資料庫恢復後必須進行有效核實,抽查關鍵數據進行核對,確保恢復效果。