1. 程式人生 > >oracle資料庫中重要的檔案(控制檔案、資料檔案、重寫日誌檔案、歸檔日誌檔案、初始化引數檔案)

oracle資料庫中重要的檔案(控制檔案、資料檔案、重寫日誌檔案、歸檔日誌檔案、初始化引數檔案)

本篇著重從物理角度來說明oracle資料庫的組成。

Oracle資料庫,就是作業系統檔案的集合。包括下面幾種檔案。

1       控制檔案

引數檔案init.ora記錄了控制檔案的位置

控制檔案中的主要資訊:

資料庫的名字,檢查點資訊,資料庫建立的時間戳,所有的資料檔案,聯機日誌檔案,歸檔日誌檔案資訊,備份資訊等。

有了這些資訊,oracle就知道哪些檔案是資料檔案,重做日誌檔案是哪些,這些都是系統啟動和執行的基本條件,沒有控制檔案,系統是不可能啟動的。控制檔案很重要,一般採用多個映象。

控制檔案資訊可以從v$controlfile中查詢獲得

2       資料檔案

資料檔案的詳細資訊記載在控制檔案中。

Select name fromV$datafile;

可以檢視資料檔案

資料檔案可以大致分以下幾類:

2.1      系統資料檔案(system_01.dbf)

存放系統表,和資料字典,一般不放使用者資料,但是使用者指令碼,如過程,函式,包等卻是儲存在資料字典中。

         資料字典,是一些系統表或試圖,包括資料庫版本,資料檔案資訊,表與索引等段資訊,系統的執行狀態等各種和系統有關的資訊和使用者指令碼資訊。通過資料字典,可以瞭解oracle的執行狀態。

2.2      回滾段檔案(rbs_01.dbf)

回滾段,用來臨時存放修改前的資料。回滾段通常都放在一個單獨的表空間(回滾表空間),避免表空間碎片化,這個表空間裡的資料檔案就是回滾資料檔案。

2.3          臨時資料檔案(temp_01.dbf)

主要存放使用者的排序等臨時資料,在臨時表空間裡,資料檔案就是臨時資料檔案,主要用於不能在記憶體上進行的排序操作。我們必須為使用者指定一個臨時表空間

2.4      使用者資料檔案(applsys_data_01.dbf, applsys_index_01.dbf)

存放使用者資料,兩類常見的使用者型資料,一般資料和索引資料。

3       重做日誌檔案(聯機重做日誌)

使用者對資料庫進行的任何操作都會記錄在重做日誌檔案。

兩個概念: 重做日誌組、重做日誌組成員

一個數據庫中,至少有2個日誌組檔案,一組寫完後再寫另一組,即輪流寫。一個日誌組中的多個日誌成員是映象關係,有利於日誌檔案的保護,因為日誌檔案的損壞,特別是當前聯機日誌的損壞,對資料庫的影響很大。

聯機日誌組的交換過程叫切換,日誌切換在一個優化效果不好的資料庫中會引起臨時的‘掛起’。掛起大致有兩種情況:

在歸檔情況下,需要歸檔的日誌來不及歸檔,而聯機日誌又需要被重新利用;

檢查點事件還沒有完成,而聯機日誌需要被重新利用。

解決手段:

1)     增加日誌組

2)     增大日誌檔案成員大小

通過v$log檢視日誌組v$logfile可以檢視具體的成員檔案

4       歸檔日誌檔案

Oracle可以執行在兩種模式之中,歸檔模式和不歸檔模式。

如果不用歸檔模式,當然,你就不會有歸檔日誌,但是,這樣可能會丟失資料。

在歸檔模式中,為了保護使用者的所有修改,在重做日誌檔案切換後和被覆蓋之間系統將他們另外儲存成一組連續的檔案系列,該檔案系列就是歸檔日誌檔案。

5       初始化引數檔案

Init.ora檔案

初始化檔案記載了許多資料庫啟動引數,如記憶體、控制檔案、程序數等。在資料庫啟動的時候載入,初始化檔案記錄了很多重要引數,對資料庫的效能影響很大,不要輕易改寫,否則可能引起資料庫效能下降。

6       其它檔案

6.1      密碼檔案

用於oracle具有sysdba許可權使用者的認證

6.2      日誌檔案

6.2.1        報警日誌檔案(alert.log 或 alrt.ora)

記錄資料庫啟動,關閉和一些重要的出錯資訊。資料庫管理員應該經常檢查這個檔案,並對出現的問題作出即時的反映。可以通過sql找到他的路徑:

Select value from v$PARAMETER where name=”background_dump_dest”;

6.2.2        後臺或使用者跟蹤檔案

系統程序或使用者程序出錯前寫入的資訊,可以通過oracle的tkprof工具轉化為可以讀懂的格式。對於系統程序產生的跟蹤檔案與報警日誌檔案的路徑一樣,使用者跟蹤檔案的路徑,可以通過sql找到路徑:

         Select value from v$PARAMETER wherename=”user_dump_dext”;

主要內容來自:

oracle 體系結構: