控制檔案/歸檔日誌

jerryhui發表於2009-03-12

控制檔案用於記錄和維護資料庫的物理結構,並且每個Oracle資料庫至少要包含一個控制檔案。當使用Oracle Server時,一個例程只能訪問一個資料庫,Oracle正是通過控制檔案在例程和資料庫之間建立關聯的。當裝載資料庫時,Oracle會根據初始化引數control_files來定位控制檔案;當開啟資料庫時,Oracle會依據控制檔案所記載的資訊開啟所有資料檔案和重做日誌。在控制檔案中記載的資訊如圖2-6所示:

控制檔案:-》 資料檔案的位置大小  重做日誌檔案的位置及大小 資料庫名稱及建立時間   日誌序列號

通過查詢動態效能檢視V$CONTROLFILE,可以顯示當前資料庫的所有控制檔案。示例如下:

SQL> SELECT name from V$controlfile;

NAME

D:\DEMO\CONTROL01.CTL

歸檔日誌(Archived Redo Log)

歸檔日誌是非活動重做日誌的備份。通過使用歸檔日誌,可以保留所有重做歷史記錄。當資料庫出現介質失敗時,使用資料檔案副本和重做歷史記錄可以完全恢復資料庫。注意,只有在ARCHIVELOG模式下才會生成歸檔日誌,並且當進行日誌切換時,Oracle可以自動生成歸檔日誌。

假定資料庫只包含兩個日誌組,並且處於ARCHIVELOG模式。初始階段LGWR會將事務變化寫入到日誌組一。當日志組一寫滿之後,LGWR會將事務變化寫入到日誌組二,並且會促使ARCH程式將日誌組一的內容儲存到歸檔日誌。依此類推,在RAC環境中,每個重做執行緒都會生成相應的歸檔日誌。通過查詢動態效能檢視V$ARCHIVED_LOG,可以顯示特定重做執行緒所生成的歸檔日誌資訊。下面以顯示重做執行緒1所生成的歸檔日誌為例說明使用V$ARCHIVED_LOG的方法,示例如下:

SQL>col name format a42

SQL>SELECT name,first_change#,next_change# from v$archived_log where thread#=1;

NAME                               FIRST_CHANGE#                    NEXT_CHANGE#

D:\DEMO\ARCHIVE\ARC00021_0537091099.001       410415           412863

D:\DEMO\ARCHIVE\ARC00022_0537090100.001       412863           412866

如上所示,name用於標識歸檔日誌檔名,first_change#對應于歸檔日誌的起始SCN值,next_change#對應於下一個歸檔日誌的起始SCN值。

 

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12035968/viewspace-567003/,如需轉載,請註明出處,否則將追究法律責任。

相關文章