Oracle恢復結構是我們都需要掌握的基礎知識,下面就為您詳細介紹Oracle恢復結構的組成,希望對您能夠有所啟迪。
當客戶應用或工具程序通過網絡訪問Oracle服務器時,客戶端會為應用程序分配用戶進程,而服務器端會為其為配服務器進程,並且客戶應用的所有SQL操作最終都由服務器進程來執行的。
Oracle服務器由例程和數據數據庫兩部分組成。為了使客戶應用程序能夠訪問Oracle服務器,必須啟動例程並打開數據庫。如果沒有啟動例程,那麼會顯示錯誤信息ORA-01034:Oracle not available;如果沒有打開數據庫,則會顯示錯誤ORA-01033:Oracle initization or shutdown in progress.
例程,例程是一組內存結構和後台進程的集合,內存結構主要包括數據高速緩存、重做日志緩沖區、以及共享池,並且這些內存結構合稱為SGA(Sytem Global Area,系統全局區);後台進程主要包括SMON、PMON、DBWR、CKPT、LGWR等。當客戶端應用訪問Oracle服務器時,必須要確保數據庫已經被打開,通過查詢動態性能視圖V$INSTANCE,可以確定當前例程的信息(包括例程名、例程所在主機機名、例程狀態等).
數據庫。數據庫是一組OS(Operate System)文件的集合,它由數據文件、控制文件和重做日志文件三種文件組成。當在數據庫上執行備份與恢復操作之前,需要制定備份與恢復策略,日志操作模式不同,需要采用的備份與恢復策略也不同。通過查詢動態性能視圖V$DATABASE,可以確定當前數據庫的信息(包括數據庫名、日志操作模式、當前SCN值)。
數據庫是由數據文件、控制文件和重做日志文件三種文件組成。當管理Oracle數據庫時,不僅需要管理數據文件、控制文件和重做日志,而且經常需要用到其他OS文件(歸檔文件、參數文件等)。
數據文件用於存儲數據庫數據、包括系統數據(數據字典)、用戶數據(表、索引、簇)、UNDO數據等。當建立數據庫或表空間時,數據文件是通過DATAFILE選項指定的。數據庫邏輯上由一個和多個表空間(TABLESPACE)組成,而表空間物理上則由一個和多個數據文件組成。
表空間。表空間是數據庫邏輯組成部分,表空間不同,需要采用的備份與恢復策略也有所不同。例如SYSTEM表空間必須在MOUNT狀態恢復,數據表空間可以在OPEN狀態下恢復,而臨時表空間不需要恢復。通過查詢數據字典DBA_TABLESPACES,可以顯示表空間詳細信息。
數據文件,表空間由一個或多個數據文件組成,表空間尺寸實際是其所包含的所有數據文件尺寸之和,通過查詢數據字典DBA_DATA_FILES,可以顯示表空間和數據文件的對應關系。
當執行備份與恢復操作時,經常需要提供數據文件的動態信息,為了數據文件的動態信息,可以查詢動態性能視圖V$DATAFILE和V$DATAFILE_HEADER,其中V$DATAFILE的動態信息來自於控制文件,而V$DATAFILE_HEADER的動態信息來自於數據文件頭部。在數據庫正常情況下,這兩個動態性能視圖的檢查點SCN值完全一致;但如果數據文件出現損壞,並且轉儲了數據文件備份,那麼V$DATAFILE_HEADER可以確定應用重做的起始SCN值,而V$DATAFILE可以確定應用重做的結束SCN值。
日志組,在單實例環境中,只有一個重做線程;在RAC(Real Appplication Cluster)環境中,包括多個重做線程,每個重做線程至少包括兩個日志組,通過查詢動態性能視圖V$LOG,可以顯示重做線程的所有日志組信息,包括日志組編號、日志成員個數、日志組狀態、尺寸、日志序列號。
控制文件用於記錄和維護數據庫的物理結構,並且每個Oracle數據庫至少要包含一個控制文件,當使用Oracle Server時,一個例程只能訪問一個數據庫,Oracle正是通過控制文件在例程和數據庫之間建立關聯的。當裝載數據庫時,Oracle會根據初始化參數control_file來定控制文件;當打開數據庫時,Oracle會依據控制文件所記載的信息打開所有數據文件和重做日志,通過查詢V$CONTROLFILE,可以顯示當前數據庫的所有控制文件。
歸檔日志是非活動重做日志,通過使用歸檔日志,可以保留所有重做歷史記錄,當數據庫出現介質失敗時,使用數據文件副本和重做歷史記錄可以完全恢復數據庫。只有數據庫在歸檔模式下才會生成歸檔日志,並且當進行日志切換時,Oracle會自動生成歸檔日志。