數據庫架構
數據庫架構包括:
1數據庫實例
2數據庫文件
3用戶進程
4服務器進程
5參數文件
6密碼文件
7歸檔日誌文件等。
其中,1個數據庫實例和2個數據庫文件是這種架構的核心部分,它們組合在壹起形成了oracle server,也稱為DBMS-數據庫管理系統。
1數據庫實例(實例)
數據庫實例由系統全局區域SGA和幾個後臺進程組成。
SGA:它包括數據庫緩沖區緩存、* * * *共享池、重做日誌緩沖區緩存、流池,以及壹些可選的內存區域,如java池、大型池和flahsback緩沖區。數據庫的內存結構分為SGA和PGA(PGA的介紹見4服務器進程)。
* * *共享池由庫高速緩存和數據字典高速緩存組成。庫緩存存儲最近使用的SQL和PL/SQL語句,數據字典緩存存儲數據庫對象的定義,如數據文件、表、索引、列、用戶和權限信息。
數據庫緩存存儲最近使用的數據塊信息或用戶修改後需要寫回數據庫的數據信息。
大型池主要在服務器模式下分配UGA內存。
後臺進程:包括系統監控進程SMON、進程監控進程PMON、數據庫寫進程DBWR、日誌寫進程LGWR、檢查點進程CKPT、日誌存檔進程ARCH等。
2數據庫文件
數據庫文件分為三類:數據文件、控制文件和重做日誌文件。
數據文件:包含數據庫中的實際數據,是數據庫操作中數據的最終存儲位置。
控制文件:包含維護數據庫和驗證數據庫完整性的信息,是壹個二進制文件。
重做日誌文件:包含數據庫更改的記錄,用於失敗時的數據恢復。
數據庫文件分為物理結構和邏輯結構。
物理結構:指基於操作系統的數據庫文件結構,自上而下是“datafile——OS block”,即從操作系統層面來說,數據庫文件以數據文件的形式存儲,數據文件以操作系統的最小塊來排列和存儲。請註意,數據庫文件的最小塊是操作系統最小塊的正整數倍。
邏輯結構:指甲骨文基於自身邏輯的抽象結構。從上到下的壹對多關系是“數據庫-表空間-段-段擴展-數據庫塊”。
邏輯結構和物理結構的對應關系:表空間對應壹個或多個數據文件,段對應同壹表空間的壹個或多個數據文件的全部或部分,盤區是數據文件的全部或部分,也就是說最小的數據文件大小是壹個段,oracle block是OS block的正整數倍。
3用戶進程
用戶進程是運行在客戶端的程序,需要與數據庫進行交互,但只有經過服務器進程的對接轉換才能實現交互功能。
4服務器進程
服務器進程是運行在服務器端的程序,為用戶進程服務,直接與數據庫交互。用戶進程和服務器進程之間產生壹個數據庫連接連接,服務器進程和數據庫之間產生的幾個會話代表用戶進程的幾個會話。服務器進程有壹個專用內存,稱為進程全局區PGA,它獨立於SGA,直接分配在操作系統的內存區中。
用戶全局區UGA代表用戶的會話狀態,並為會話分配內存。在* * *共享服務器模式下,UGA分配在SGA,而在專有服務器模式下,UGA分配在PGA。
5參數文件參數文件
參數文件存儲在文本中,它定義了參數,包括SGA內存結構的分配空間。它是甲骨文的重要文件之壹。
6密碼文件password file
密碼文件授予用戶啟動和關閉數據庫實例的權限。首次安裝數據庫時,oracle的默認用戶名和密碼存儲在密碼文件中。
7歸檔日誌文件歸檔日誌文件
歸檔日誌文件是日誌文件的離線備份,用於故障後的數據恢復。