萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> oracle教程 >> Oracle數據庫的備份及恢復策略研究

Oracle數據庫的備份及恢復策略研究

摘 要 恢復丟失的數據庫文件在很大程度上取決於所采用的備份策略。本文從恢復的靈活性出發,對Oracle8數據庫的備份及恢復策略進行了探討,並給出了Windows 2000環境下使備份過程自動化的腳本文件的項目開發實例。

關鍵詞 Oracle 數據庫 備份 恢復

引言

隨著信息系統在各種商務活動中重要性的不斷增強,維護系統數據的可用性已成為當前一個十分重要的課題。為了有效地保持健康的信息系統,必須采取一定的措施防止在由介質、操作系統、軟件和其它事件導致重要數據庫文件嚴重損壞的情況下影響RDBMS(關系數據庫管理系統),進而影響信息系統的正常運行。

數據庫備份、恢復的基本規則

1、多工聯機重作日志文件

每個數據庫實例都有其自己的聯機重作日志組,在操作數據庫時,Oracle首先將數據庫的全部改變保存在重作日志緩沖區中,隨後日志記錄器進程(LGWR)將數據從系統共用區SGA(System Global Area)的重作日志緩沖區寫入聯機重作日志文件,在磁盤崩潰或實例失敗時,可以通過與之相關的聯機重作日志來保護數據庫,將損失降至最低,但Oracle在默認的方式下只創建一組重作日志文件(每一組只有一個項目文件),為了減少丟失這些重要的重作日志文件的危險,因此需要對其進行鏡像拷貝。

在Oracle級多工聯機重作日志文件,即增加多個文件到每個組以便鏡像數據,這樣I/O故障或寫丟失只損壞一個拷貝,從而保證了LGWR後台進程至少能夠向一個成員寫入信息,數據庫仍然可以繼續運行。同時應保證日志組的成員不應駐存在同一物理設備上,因為這將削弱多重日志文件的作用。

2、鏡像拷貝控制文件

控制文件描述通用的數據庫結構,它存儲了大量數據庫狀態信息,包括物理結構和聯機重作日志文件在當時的名稱、位置、狀態。控制文件在數據庫啟動時被Oracle實例讀取,保持打開並隨著操作而文件內容更新,直到實例關閉為止。在它打開的過程中能夠同步需要恢復的信息,包括檢查點信息,因此若損壞或丟失了控制文件,Oracle將不能繼續工作,因此應在系統中保持控制文件的多個拷貝,且這些拷貝應置於安裝於不同磁盤控制器下的不同磁盤設備中。

由於Oracle沒有提供對控制文件多工的完整支持,因此應在對控制文件使用操作系統或硬件鏡像,即在修改初始化文件的control_files參數後重新啟動數據庫前,應將控制文件復制到定義的新位置,否則數據庫啟動時將會出錯。

3、激活歸檔進程

當數據庫運行於NOARCHIVELOG模式下時,只能在完全關閉數據庫後進行數據庫的一致備份,並且同時禁用了聯機重作日志的存檔,這樣在Oracle實例失敗時只能將數據庫修復到最近的完整數據庫備份時的那一點上,不能在失效點處對實例進行恢復。而在ARCHIVELOG模式下,數據庫不僅可以進行一致備份,還可以在數據庫打開的情況下進行聯機備份。通過數據庫的備份和聯機與存檔的重作日志文件,用戶可以恢復所有已提交的事務,並允許將數據庫恢復到指定的時間、SCN或日志系列號處,增大了恢復的靈活性,減少了故障時的數據丟失。因此數據庫應運行於ARCHIVELOG模式。

在ARCHIVELOG模式下為了防止文件損壞和介質故障,應把日志歸檔到不同的磁盤上,這可以通過在初始化文件中為歸檔重作日志指定多個目標實現。

4、數據庫實施較大改變時備份

因為控制文件中保存了數據庫的模式結構信息,因此在對數據庫進行較大改變(包括改變表結構,增加、刪除日志文件或數據文件等)時應立即備份控制文件及相應的數據文件。

5、使用RESETLOGS選項打開數據庫後進行備份

在以RESETLOGS選項打開數據庫後,應對整個數據庫進行脫機或聯機的備份,否則將不能恢復重置日志後的改變。

當以RESETLOGS選項打開數據庫時,Oracle將拋棄恢復中沒有應用的重復信息,並確保永遠不再運用,同時還將初始化控制文件中關於聯機日志和重作線程的信息、清除聯機日志中的內容。因此,RESETLOGS前的歸檔日志的序列號將與RESETLOGS後的Oracle控制文件的要求值不相符(備份文件中的檢查點比控制文件中的檢查點舊),即在恢復中不能應用以前的歸檔日志文件,從而導致RESETLOGS操作之前的備份在新形體中無用。

  • 共3頁:
  • 上一頁
  • 1
  • 2
  • 3
  • 下一頁
copyright © 萬盛學電腦網 all rights reserved