oracle體系結構(2)

jss001發表於2009-03-06
  二、ORACLE 資料庫
  
  ORACLE資料庫的組成——物理作業系統檔案的集合。主要包括以下幾種。
  
  1、控制檔案(引數檔案init.ora記錄了控制檔案的位置)
  控制檔案包括如下主要資訊
  資料庫的名字,檢查點資訊,資料庫建立的時間戳
  所有的資料檔案,聯機日誌檔案,歸檔日誌檔案資訊
  備份資訊等
   有了這些資訊,Oracle就知道那些檔案是資料檔案,現在的重做日誌檔案是哪些,這些都是系統啟動和執行的基本條件,所以他是Oracle執行的根 本。如果沒有控制檔案系統是不可能啟動的。控制檔案是非常重要的,一般採用多個鏡相複製來保護控制檔案,或採用RAID來保護控制檔案。控制檔案的丟失, 將使資料庫的恢復變的很複雜。
  控制檔案資訊可以從V$Controlfile中查詢獲得
  
  2、資料檔案(資料檔案的詳細資訊記載在控制檔案中)
  可以透過如下方式檢視資料檔案
  SQL> select name from v$datafile;
  NAME
  ---------------------------------------------
  /u05/dbf/PROD/system_01.dbf
  /u06/dbf/PROD/temp_01.dbf
  /u04/dbf/PROD/users_01.dbf
  /u09/dbf/PROD/rbs_01.dbf
  /u06/dbf/PROD/applsys_indx_01.dbf
  /u05/dbf/PROD/applsys_data_01.dbf
  從以上可以看出,資料檔案大致可以分為以下幾類:
  
  i. 系統資料檔案(system_01.dbf)
  存放系統表和資料字典,一般不放使用者的資料,但是使用者指令碼,如過程,函式,包等卻是儲存在資料字典中的。
  名詞解釋:資料字典 資料字典是一些系統表或檢視,他存放系統的資訊,他包括資料庫版本,資料檔案資訊,表與索引等段資訊,系統的執行狀態等各種和系統有關的資訊和使用者指令碼資訊。資料庫管理員可以透過對資料字典的查詢,就可以瞭解到Oracle的執行狀態。
  
  ii. 回滾段檔案(rbs_01.dbf)
  如果資料庫進行對資料的修改,那麼就必須使用回滾段,回滾段是用來臨時存放修改前的資料(Before Image)。回滾段通常都放在一個單獨的表空間上(回滾表空間),避免表空間碎片化,這個表空間包含的資料檔案就是回滾資料檔案。
  
  iii. 臨時資料檔案(temp_01.dbf)
  主要存放使用者的排序等臨時資料,與回滾段相似,臨時段也容易引起表空間碎片化,而且沒有辦法在一個永久表空間上開闢臨時段,所以就必須有一個臨時表空間,它所包含的資料檔案就是臨時資料檔案,主要用於不能在記憶體上進行的排序操作。我們必須為使用者指定一個臨時表空間。
  
  iv. 使用者資料檔案(/applsys_data_01.dbf ,applsys_indx_01.dbf)
  存放使用者資料,這裡列舉了兩類常見的使用者型資料,一般資料和索引資料,一般來說,如果條件許可的話,可以考慮放在不同的磁碟上。
  
  3、重做日誌檔案(聯機重做日誌)
   使用者對資料庫進行的任何操作都會記錄在重做日誌檔案。在瞭解重做日誌之前必須瞭解重做日誌的兩個概念,重做日誌組和重做日誌組成員(Member),一 個資料庫中至少要有兩個日誌組檔案,一組寫完後再寫另一組,即輪流寫。每個日誌組中至少有一個日誌成員,一個日誌組中的多個日誌成員是鏡相關係,有利於日 志檔案的保護,因為日誌檔案的損壞,特別是當前聯機日誌的損壞,對資料庫的影響是巨大的。
  聯機日誌組的交換過程叫做切換,需要特別注意的是,日誌切換在一個最佳化效果不好的資料庫中會引起臨時的“掛起”。掛起大致有兩種情況:
  在歸檔情況下,需要歸檔的日誌來不及歸檔,而聯機日誌又需要被重新利用
  檢查點事件還沒有完成(日誌切換引起檢查點),而聯機日誌需要被重新利用
  解決這種問題的常用手段是:
  
  i.增加日誌組
  
  ii.增大日誌檔案成員大小
  透過v$log可以檢視日誌組,v$logfile可以檢視具體的成員檔案。
  
  4、歸檔日誌檔案
   Oracle可以執行在兩種模式之中,歸檔模式和不歸檔模式。如果不用歸檔模式,當然,你就不會有歸檔日誌,但是,你的系統將不會是一個實用系統,特別 是不能用於生產系統,因為你可能會丟失資料。但是在歸檔模式中,為了儲存使用者的所有修改,在重做日誌檔案切換後和被覆蓋之間系統將他們另外儲存成一組連續 的檔案系列,該檔案系列就是歸檔日誌檔案。
  有人或許會說,歸檔日誌檔案佔領我大量的硬碟空間,其實,具體想一想,你是願意浪費一點磁碟空間來 保護你的資料,還是願意丟失你的資料呢?顯而義見,我們需要保證我們的資料的安全性。其實,歸檔並不是一直佔領你的磁碟空間,你可以把她備份到磁帶上,或 則刪除上一次完整備份前的所有日誌檔案。
  
  5、初始化引數檔案
  initSID.ora或init.ora檔案,因為版 本的不一樣,其位置也可能會不一樣。在8i中,通常位於$ORACLE_HOME/admin//Pfile下,初始化檔案記載了許多資料庫的啟動引數, 如記憶體,控制檔案,程式數等,在資料庫啟動的時候載入(Nomount時載入),初始化檔案記錄了很多重要引數,對資料庫的效能影響很大,如果不是很了 解,不要輕易亂改寫,否則會引起資料庫效能下降。
  
  6、其他檔案
  i . 密碼檔案
  用於Oracle 的具有sysdba許可權使用者的認證.
  ii. 日誌檔案
  報警日誌檔案(alert.log或alrt.ora)
   記錄資料庫啟動,關閉和一些重要的出錯資訊。資料庫管理員應該經常檢查這個檔案,並對出現的問題作出即使的反應。你可以透過以下SQL 找到他的路徑select value from v$PARAMETER where name ="background_dump_dest";
  後臺或使用者跟蹤檔案
   系統程式或使用者程式出錯前寫入的資訊,一般不可能讀懂,可以透過ORACLE的TKPROF工具轉化為可以讀懂的格式。對於系統程式產生的跟蹤檔案與報 警日誌檔案的路徑一樣,使用者跟蹤檔案的路徑,你可以透過以下SQL找到他的路徑select value from v$PARAMETER where name ="user_dump_dest";
[@more@]

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

相關文章