Oracle 的基本體系結構
1.物理結構
2.邏輯結構
3.實例結構(內存結構+進程結構)
1.物理結構
物理結構就是現實的數據存儲單元,由駐留在磁盤上的各種文件組成,其中包含以下文件類型:
A:數據文件.dbf=》每一個數據庫都有一個或多個物理的數據文件,包含了數據庫的所有數據;邏輯數據庫結構(如表、索引)的數據物理地存儲在數據文件中。數據文件特徵如下:
@一個數據文件僅與一個數據庫聯繫;
@可對數據文件設置一些特性,可自動跨站;
@一個表空間(數據庫存儲的邏輯單位)由一個或多個數據文件組成;@數據文件大小的表示方式:字節、數據塊;
==》查詢: select * from v$datafile;
B:控制文件.ctl=》是一個二進制文件,負責維護數據庫全局物理結構,支持數據庫成功啓動和運行。實例的啓動、數據的更改、數據恢復都需要使用到控制文件。
==》查詢: select * from v$controlfile;
C:重做日誌文件.log=》用於記錄數據庫所以修改的信息。功能:保證數據庫安全和數據庫備份與恢復。
@日誌的兩個模式:歸檔模式:archivelog;非歸檔:noarchivelog
@與數據庫有如下關係:
一個數據庫=>至少兩個重做日誌文件組=>每組一個或多個重做日誌成員=>每個成員物理地對應一個重做日誌文件
==》查詢: select * from v$loglfile;
D:參數文件=》用於存儲SGA和後臺進程的配置參數,可分爲文本參數文件(PFILE)和服務器參數文件(SPFILE)【不能進行編輯】。
E:警告和跟蹤日誌文件
F:備份文件
G:歸檔重做日誌文件=》對已經寫滿的重做日誌文件進行復制並保存生成的文件。
2.邏輯結構
邏輯結構就是從邏輯的角度分析數據庫的構成,從技術的概念上描述數據庫是如何組織和管理數據。因此,在操作系統中是找不到邏輯結構的,單可以通過oracle數據庫的數字字典找到邏輯結構的描述。
邏輯結構包含:表空間、段、區、數據塊
邏輯存儲之間的關係:多個數據塊組成一個區=》多個區組成一個段=》多個段組成一個表空間=》多個表空間組成一個數據庫
@段segment:包含數據段、索引段、臨時段、回退段
3.實例結構
每一個數據庫和一個實例相聯繫,每當啓動數據庫的時候,SGA首先被分配,然後一個或多個進程被啓動,該SGA和進程的組合稱爲數據庫實例。
在Oracle數據庫中,首先啓動實例,然後實例加載數據庫。
A:進程結構
進程結構包含:用戶進程、Oracle進程(服務器進程+後臺進程)
用戶進程:用戶要運行的應用程序;
服務器進程:處理連接到該實例的用戶進程的請求;
後臺進程:系統爲了協調好多個用戶而使用的附加進程;包含:DBWR進程、LGWR進程、CKPT進程、SMON進程、PMON進程、RECO進程、ARCH進程、LCKn進程、Dnnn調度進程
B:內存結構
內存結構是數據庫體系結構中最重要的部分之一,是影響數據庫性能的主要因素。
用戶在客戶端啓動了一個應用程序,例如sql*plus,就是在客戶端啓動一個用戶進程;與oracle服務器端連接成功後,會在服務器端生成一個服務器進程,該服務器進程作爲用戶進程的代理進程,代替客戶端執行各種命令並把結果返回給客戶端。
用戶進程一旦中止,服務器進程立刻中止。
根據系統對於內存的使用方法不同,Oracle數據庫的內存可以分爲系統全局區SGA和程序全局區PGA