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