1.物理結構
物理數據庫結構由組成數據庫的操作系統文件決定。Oracle數據庫文件包括:
數據文件(數據文件)
數據文件用於存儲數據庫中的所有數據,例如數據庫表中的數據和索引數據。他們通常在*。dbf格式,例如userCIMS.dbf。
日誌文件(重做日誌文件)
日誌文件用於記錄數據庫所做的所有更改(如添加、刪除和修改),以便在系統出現故障時用於恢復數據庫。該名稱通常在Log*中。dbf格式,如:log1cims.dbf,log2cims.dbf..
控制文件(控制文件)
每個Oracle數據庫都有相應的控制文件,這些文件是小型的二進制文件,用於記錄數據庫的物理結構,如數據庫名稱、數據庫的數據文件和日誌文件的名稱和位置。用於打開和訪問數據庫。該名稱通常采用Ctrl*ctl格式,如Ctrl1CIMS.ctl
配置文件
配置文件記錄了Oracle數據庫的壹些重要參數,如數據塊的大小、內存結構的配置等。該名稱通常在init*中。ora格式,比如initCIMS.ora。
2邏輯結構
Oracle數據庫的邏輯結構描述了數據庫如何以邏輯方式存儲數據庫中的數據。邏輯結構包括表空間、段、範圍、數據塊和模式對象。數據庫的邏輯結構將決定數據庫如何使用系統的物理空間。模式對象及其關系描述了關系數據庫之間的設計。
從邏輯上講,數據庫由壹個或多個表空間組成,表空間是數據庫中物理分組的數據倉庫。每個表空間由段組成,壹個段由壹組盤區組成,壹個區由壹組連續的數據庫塊組成,壹個數據庫塊對應硬盤上的壹個或多個物理塊。表空間保存壹個或多個數據庫的物理文件(即數據文件)。數據庫中的數據邏輯上存儲在表空間中。
表空間(表空間)
Oracle數據庫分為壹個或多個稱為表空間的邏輯結構,表空間包括兩種類型的表空間:系統表空間和非系統表空間。其中,System表空間是在數據庫安裝時自動建立的,它包含數據庫的所有數據字典、存儲過程、包、函數和觸發器的定義以及系統回滾段。此外,它還可以包含用戶數據。。
壹個表空間包含許多段,每個段由壹些不連續的區域組成,每個區域由壹組連續的數據塊組成,這些數據塊是數據庫操作的最小單位。
每個表空間對應壹個或多個數據文件,每個數據文件只能屬於壹個表空間。
數據庫塊(數據庫塊)
數據庫塊也稱為邏輯塊或ORACLE塊,對應於磁盤上的壹個或多個物理塊,其大小由初始化參數db-block-size(在文件init.ora中)決定,通常大小為2k。Pckfree和pctused這兩個參數用於優化數據塊空間的使用。
程度
區域是數據庫存儲空間分配的邏輯單位,由壹組連續的數據塊組成。
分段(線段)
段是壹個或多個不連續區域的集合,包括表空間中特定邏輯結構的所有數據,並且該段不能跨表空間存儲。Oracle數據庫包括數據段、索引段、臨時段、回退段等。
模式對象
Oracle數據庫的模式對象包括表、視圖、序列、同意、索引、觸發器、存儲過程等。它們將在下面的章節中介紹。
3.Oracle服務器系統進程和內存結構
當Oracle數據庫在計算機服務器上啟動時,我們稱之為在服務器上啟動了壹個Oracle實例。ORACLE實例是壹種訪問和控制數據庫的軟件機制,它由兩部分組成:系統全局區(SGA)和ORACLE進程。SGA是系統為實例分配的壹組* * *共享內存緩沖區,用於存儲數據庫實例和控制信息,以便管理和操作數據庫中的數據。
進程是操作系統中壹個極其重要的概念。進程執行壹組操作並完成特定的任務。對於ORACLE數據庫管理系統,進程由用戶進程、服務器進程和後臺進程組成。
當用戶運行壹個應用程序時,系統為它創建壹個用戶進程。服務器進程處理連接的用戶進程的請求,並且它與用戶進程通信以服務於連接的用戶進程的ORACLE請求。
為了提高系統性能,更好地實現多用戶功能,ORACLE還在系統後臺啟動壹些後臺進程,進行數據庫數據操作。
系統進程的後臺進程主要包括:
SMON系統監視進程:(系統監視器)負責排序,完成自動實例恢復和排序表空間。
PMON進程監控進程:(process monitor)實現用戶進程故障恢復,清空內存區域,釋放進程所需的資源。
DBWR數據庫寫進程:數據庫緩沖區的治理進程。
在其治理下,數據庫緩沖區中總是有壹定數量的空閑緩沖塊,以保證用戶進程總能找到空閑緩沖塊供其使用。
LGWR日誌文件寫進程:它是日誌緩沖區的治理進程,負責將日誌緩沖區中的日誌項寫到磁盤上的日誌文件中。每個實例只有壹個LGWR進程。
ARCH歸檔進程:(歸檔進程)將填充的在線日誌文件復制到指定的存儲設備。只有當日誌文件組開關出現時,才進行ARCH操作。ARCH不是必需的,但僅在自動歸檔可用或請求手動歸檔時發布。
RECO recovery process:是有分布式選項時使用的流程,主要用於解決引用分布式事務時的故障。它只能出現在允許分布式事務的系統中。
LCKn阻塞進程:用於並行服務器系統,主要是在實例之間進行阻塞。
記憶結構(SGA)
SGA是Oracle為實例分配的壹組共享內存緩沖區,包含實例的數據和控制信息。SGA在實例啟動時自動分配,在實例關閉時收回。數據庫的所有數據操作都必須通過SGA進行。
根據存儲信息的不同,SGA中的內存可以分為以下幾個區域:緩沖區緩存:在數據庫中存儲數據庫塊的副本。它由壹組緩沖塊組成,由鏈接到實例的所有用戶進程共享。緩沖塊的數量由初始化參數DB_BLOCK_BUFFERS確定,緩沖塊的大小由初始化參數DB_BLOCK_SIZE確定。大數據塊可以提高查詢速度。它由DBWR運營。
B.重做日誌緩沖區:用於存儲數據操作的變化信息。它們以重做條目的形式存儲在日誌緩沖區中。當需要數據庫恢復時,日誌條目用於重建或回滾對數據庫所做的更改。日誌緩沖區的大小由初始化參數LOG_BUFFER決定。較大的日誌緩沖區可以減少日誌文件I/O的數量。後臺進程LGWR將日誌緩沖區中的信息寫入磁盤上的日誌文件,並可以啟動ARCH後臺進程來歸檔日誌信息。
C.***共享池:包含用於處理的SQL語句信息。它包含* * * SQL區和數據字典存儲區。* * * Enjoy SQL區域包含用於執行特定SQL語句的信息。數據字典區用於存儲數據字典,它由所有用戶進程共享。
遊標:壹些用於執行掛起的SQL語句的內存指針。
其他信息區:除上述信息區外,還包括壹些進程間的通信信息(如阻塞信息);在多線程服務器的配置下,還有壹些關於程序全局區域的信息,比如請求隊列和響應隊列。本文來自:/IP bun/blog/item/3f 75d 7230 a 7 f 5 ee 698250 a7c . html。