oracle架構的基礎知識(轉)

gugu99發表於2007-08-13
oracle架構的基礎知識(轉)[@more@]

  學習oracle,最好首先了解Oracle的框架。這樣對Oracle有一個整體的認識,有高屋建瓴的作用  

  1、物理結構(由控制檔案、資料檔案、重做日誌檔案、引數檔案、歸檔檔案、口令檔案組成) 

  一個資料庫中的資料儲存在磁碟上物理檔案,被使用時,調入記憶體。  

  其中控制檔案、資料檔案、重做日誌檔案、跟蹤檔案及警告日誌(trace files,alert files)屬於資料庫檔案;  

  引數檔案(parameter file)口令檔案(password file)是非資料庫檔案  

  1.1資料檔案:儲存資料的檔案.資料檔案典型地代表了根據他們使用的磁碟空間和數量所決定的一個Oracle資料庫的容積。  

  由於效能原因,每一種型別的資料放在相應的一個或一系列檔案中,將這些檔案放在不同的磁碟中。  

  types:

  .data dictionary  .data

  .redo data     .index

  .temporary data   等等  

  1.2控制檔案:包含維護和驗證資料庫完整性的必要資訊、例如,控制檔案用於識別資料檔案和重做日誌檔案,一個資料庫至少需要一個控制檔案.  

  控制檔案內容  

  。資料庫名

  。表空間資訊

  。所有資料檔案的名字和位置

  。所有redo日誌檔案的名字和位置

  。當前的日誌序列號

  。檢查點資訊

  。關於redo日誌和歸檔的當前狀態資訊  

  控制檔案的使用過程  

  控制檔案把Oracle引導到資料庫檔案的其它部分。啟動一個例項時,Oracle 從引數檔案中讀取控制檔案的名字和位置。安裝資料庫時,Oracle 開啟控制檔案。最終開啟資料庫時,Oracle 從控制檔案中讀取資料檔案的列表並開啟其中的每個檔案。  

  1.3重做日誌檔案:含對資料庫所做的更改記錄,這樣萬一出現故障可以啟用資料恢復。一個資料庫至少需要兩個重做日誌檔案.  

  1.4 跟蹤檔案及警告日誌(Trace Files and Alert Files)  

  在instance 中執行的每一個後臺程式都有一個跟蹤檔案(trace file)與之相連。Trace file 記載後臺程式所遇到的重大事件的資訊。  

  警告日誌( Alert Log)是一種特殊的跟蹤檔案,每個資料庫都有一個跟蹤檔案,同步記載資料庫的訊息和錯誤.  

  1.5引數檔案:包括大量影響Oracle資料庫例項功能的設定,如以下設定:  

  。資料庫控制檔案的定位

  。Oracle用來快取從磁碟上讀取的資料的記憶體數量

  。預設的最佳化程式的選擇.  

  和資料庫檔案相關,執行兩個重要的功能  

  1〉為資料庫指出控制檔案

  2〉為資料庫指出歸檔日誌的目標  

  1.6歸檔檔案:是重做日誌檔案的離線副本,這些副本可能對於從介質失敗中進行恢復很必要。 

  1.7口令檔案:認證哪些使用者有許可權啟動和關閉Oracle例程.  

  2、邏輯結構(表空間、段、區、塊)  

  表空間:是資料庫中的基本邏輯結構,一系列資料檔案的集合。  

  段:是物件在資料庫中佔用的空間.  

  區:是為資料一次性預留的一個較大的儲存空間.  

  塊:ORACLE最基本的儲存單位,在建立資料庫的時候指定.  

  3、記憶體分配(SGA和PGA)  

  SGA:是用於儲存資料庫資訊的記憶體區,該資訊為資料庫程式所共享。它包含Oracle 伺服器的資料和控制資訊,它是在Oracle伺服器所駐留的計算機的實際記憶體中得以分配,如果實際記憶體不夠再往虛擬記憶體中寫。  

  PGA:包含單個伺服器程式或單個後臺程式的資料和控制資訊,與幾個程式共享的SGA 正相反,PGA 是隻被一個程式使用的區域,PGA 在建立程式時分配,在終止程式時回收.  

  4、後臺程式  

  包括資料寫程式(Database Writer,DBWR)、日誌寫程式(Log Writer,LGWR)、系統監控(System Monitor,SMON)、程式監控(Process Monitor,PMON)、檢查點程式(Checkpoint Process,CKPT)、歸檔程式、服務程式、使用者程式)  

  資料寫程式:負責將更改的資料從資料庫緩衝區快取記憶體寫入資料檔案  

  日誌寫程式:將重做日誌緩衝區中的更改寫入線上重做日誌檔案  

  系統監控:檢查資料庫的一致性如有必要還會在資料庫開啟時啟動資料庫的恢復  

  程式監控:負責在一個Oracle 程式失敗時清理資源  

  檢查點程式:負責在每當緩衝區快取記憶體中的更改永久地記錄在資料庫中時,更新控制檔案和資料檔案中的資料庫狀態資訊。該程式在檢查點出現時,對全部資料檔案的標題進行修改,指示該檢查點。在通常的情況下,該任務由LGWR執行。然而,如果檢查點明顯地降低系統效能時,可使CKPT程式執行,將原來由LGWR程式執行的檢查點的工作分離出來,  

  由CKPT程式實現。對於許多應用情況,CKPT程式是不必要的。只有當資料庫有許多資料檔案,LGWR在檢查點時明顯地降低效能才使CKPT執行。CKPT程式不將塊寫入磁碟,該工作是由DBWR完成的。 init.ora檔案中 CHECKPOINT_PROCESS 引數控制CKPT程式的使能或使不能。預設時為FALSE,即為使不能。  

  歸檔程式:在每次日誌切換時把已滿的日誌組進行備份或歸檔  

  服務程式:使用者程式服務。  

  使用者程式:在客戶端,負責將使用者的SQL語句傳遞給服務程式,並從伺服器段拿回查詢資料。  

  5、SCN(System ChangeNumber):  

  系統改變號,一個由系統內部維護的序列號。當系統需要更新的時候自動增加,他是系統中維持資料的一致性和順序恢復的重要標誌。


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

相關文章