1. 程式人生 > >控制文件與日誌文件

控制文件與日誌文件

進行 logging 變化 系統 acl tro spf 日誌信息 ML

1:控制文件

每個數據庫至少擁有一個控制文件,一個數據庫可以同時擁有多個控制文件,但是一個控制文件只能屬於一個數據庫,Oracle創建數據庫時系統會自動創建兩個或三個控制文件,每個控制文件記錄相同的信息。

使用語句SELECT * from v$controlfile;查看控制文件

技術分享圖片

2:日誌文件

1)重做日誌文件

記錄數據庫所有發生過的更改信息(增刪改)以及Oracle內部行為(創建數據表、索引等)而引起的數據庫變化信息。

技巧:通過對表或者整個表空間設定NOLOGGING屬性,使基於表或表空間中所有的DML操作(如創建表、刪除視圖、修改索引等操作)都不會生成日誌信息,從而減少日誌信息的產生。

可通過查詢v$logfile視圖實現查看系統的日誌文件信息

SELECT * FROM v$logfile;

技術分享圖片

2)歸檔日誌文件

Oracle數據庫運行在兩種模式下,即歸檔模式和非歸檔模式。

非歸檔模式是指在系統運行期間,所產生的日誌信息不斷的記錄到日誌文件組中,當所有重做日誌組被寫滿後,又重新從第一個日誌文件組開始覆寫。

歸檔模式是在各個日誌文件都被寫滿而即將被覆蓋前,先由歸檔進程(ARCH)將即將被覆蓋的日誌文件中的日誌信息讀出,並將“讀出的日誌信息”寫入到歸檔日誌文件中,而這個過程又被成為歸檔操作。

在歸檔操作進行的過程中,日誌寫入進程(ARCH)需要等待歸檔進程的結束才能開始覆寫日誌文件,這樣就延遲了系統響應時間,而且歸檔日誌文件本身又會占用大量的磁盤空間,這些都會影響系統的整體性能。所以在默認情況下,Oracle系統不采用歸檔模式運行。

可以通過v$database視圖查看當前Oracle是否采用歸檔模式

SELECT * from v$database;

技術分享圖片

如果是在歸檔模式下運行,則可通過服務器參數文件spfile的log_archive_dest參數來確定歸檔日誌文件的所在路徑。

show parameter log_archive_dest;

技術分享圖片

控制文件與日誌文件