国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

Oracle 8i數據庫體系結構

2024-08-29 13:42:00
字體:
來源:轉載
供稿:網友

Oracle數據庫的體系結構包括四個方面:數據庫的物理結構、邏輯結構、內存結構及進程。 


1. 物理結構 


物理數據庫結構是由構成數據庫的操作系統文件所決定,Oracle數據庫文件包括: 


數據文件(Data File) 

數據文件用來存儲數據庫中的全部數據,例如數據庫表中的數據和索引數據.通常以為*.dbf格式,例如:userCIMS.dbf 。 


日志文件(Redo Log File) 

日志文件用于記錄數據庫所做的全部變更(如增加、刪除、修改)、以便在系統發生故障時,用它對數據庫進行恢復。名字通常為Log*.dbf格式,如:Log1CIMS.dbf,Log2CIMS.dbf 。 


控制文件(Control File) 

每個Oracle數據庫都有相應的控制文件,它們是較小的二進制文件,用于記錄數據庫的物理結構,如:數據庫名、數據庫的數據文件和日志文件的名字和位置等信息。用于打開、存取數據庫。名字通常為Ctrl*ctl 格式,如Ctrl1CIMS.ctl。 


配置文件 

配置文件記錄Oracle數據庫運行時的一些重要參數,如:數據塊的大小,內存結構的配置等。名字通常為init*.ora 格式,如:initCIMS.ora 。 


2 邏輯結構 


Oracle數據庫的邏輯結構描述了數據庫從邏輯上如何來存儲數據庫中的數據。邏輯結構包括表空間、段、區、數據塊和模式對象。數據庫的邏輯結構將支配一個數據庫如何使用系統的物理空間.模式對象及其之間的聯系則描述了關系數據庫之間的設計. 


一個數據庫從邏輯上說是由一個或多個表空間所組成,表空間是數據庫中物理編組的數據倉庫,每一個表空間是由段(segment)組成,一個段是由一組區(extent)所組成,一個區是由一組連續的數據庫塊(database block)組成,而一個數據庫塊對應硬盤上的一個或多個物理塊。一個表空間存放一個或多個數據庫的物理文件(即數據文件).一個數據庫中的數據被邏輯地存儲在表空間上。 


表空間(tablespace) 

Oracle數據庫被劃分為一個或多個稱為表空間的邏輯結構,它包括兩類表空間,System表空間和非System表空間,其中,System表空間是安裝數據庫時自動建立的,它包含數據庫的全部數據字典,存儲過程、包、函數和觸發器的定義以及系統回滾段。除此之外,還能包含用戶數據。。 


一個表空間包含許多段,每個段有一些可以不連續的區組成,每個區由一組連續的數據塊組成,數據塊是數據庫進行操作的最小單位。 


每個表空間對應一個或多個數據文件,每個數據文件只能屬于一個表空間。 


數據庫塊(database block) 

數據庫塊也稱邏輯塊或ORACLE塊,它對應磁盤上一個或多個物理塊,它的大小由初始化參數db-block-size(在文件init.ora中)決定,典型的大小是2k。Pckfree 和pctused 兩個參數用來優化數據塊空間的使用。 


區(extent) 

區是由一組連續的數據塊所組成的數據庫存儲空間分配的邏輯單位。 


段(segment) 

段是一個或多個不連續的區的集合,它包括一個表空間內特定邏輯結構的所有數據,段不能跨表空間存放。Oracle數據庫包括數據段、索引段、臨時段、回滾段等。 


模式對象(schema object) 

Oracle數據庫的模式對象包括表、視圖、序列、同意詞、索引、觸發器、存儲.過程等,關于它們將重點在后面章節介紹。 


3.Oracle Server系統進程與內存結構 


當在計算機服務器上啟動Oracle數據庫后,稱服務器上啟動了一個Oracle實例(Instance)。ORACLE 實例(Instance)是存取和控制數據庫的軟件機制,它包含系統全局區(SGA)和ORACLE進程兩部分。SGA是系統為實例分配的一組共享內存緩沖區,用于存放數據庫實例和控制信息,以實現對數據庫中數據的治理和操作。 


進程是操作系統中一個極為重要的概念。一個進程執行一組操作,完成一個特定的任務.對ORACLE數據庫治理系統來說,進程由用戶進程、服務器進程和后臺進程所組成。 



當用戶運行一個應用程序時,系統就為它建立一個用戶進程。服務器進程處理與之相連的用戶進程的請求,它與用戶進程相通訊,為相連的用戶進程的ORACLE請求服務。 


為了提高系統性能,更好地實現多用戶功能,ORACLE還在系統后臺啟動一些后臺進程,用于數據庫數據操作。 


系統進程的后臺進程主要包括: 

SMON 系統監控進程:(system monitor)負責完成自動實例恢復和回收分類(sort)表空間。 

PMON 進程監控進程:(PRocess monitor)實現用戶進程故障恢復、清理內存區和釋放該進程所需資源等。 

DBWR 數據庫寫進程:數據庫緩沖區的治理進程。在它的治理下,數據庫緩沖區中總保持有一定數量的自由緩沖塊,以確保用戶進程總能找到供其使用的自由緩沖塊。 

LGWR 日志文件寫進程:是日志緩沖區的治理進程,負責把日志緩沖區中的日志項寫入磁盤中的日志文件上。每個實例只有一個LGWR進程。 

ARCH 歸檔進程:(archiver process)把已經填滿的在線日志文件拷貝到一個指定的存儲設備上。僅當日志文件組開關(switch)出現時,才進行ARCH操作。ARCH不是必須的,而只有當自動歸檔可使用或者當手工歸檔請求時才發出。 

RECO 恢復進程:是在具有分布式選項時使用的一個進程,主要用于解決引用分布式事務時所出現的故障。它只能在答應分布式事務的系統中出現。 

LCKn 封鎖進程:用于并行服務器系統,主要完成實例之間的封鎖。 

內存結構(SGA) 

SGA是Oracle為一個實例分配的一組共享內存緩沖區,它包含該實例的數據和控制信息。SGA在實例啟動時被自動分配,當實例關閉時被收回。數據庫的所有數據操作都要通過SGA來進行。 


SGA中內存根據存放信息的不同,可以分為如下幾個區域: 

---------------------------------------------------------------------
                             SGA                                                  
                                                                                      
           共享區                       數據庫緩存儲沖區     
     ----------------                            ——————————  
      共享SQL區                                                             

      [ ]    []                                                                 
     ----------------                             -----------------------   
                                                                                      
    日志緩沖區          請求隊列       響應隊列            
   -------------              -----------         -----------                 
                                                                               
   -------------              -----------         -----------                 

_____________________________________________

Buffer Cache:存放數據庫中數據庫塊的拷貝。它是由一組緩沖塊所組成,這些緩沖塊為所有與該實例相鏈接的用戶進程所共享。緩沖塊的數目由初始化參數DB_BLOCK_BUFFERS確定,緩沖塊的大小由初始化參數DB_BLOCK_SIZE確定。大的數據塊可提高查詢速度。它由DBWR操作。 


b. 日志緩沖區Redo Log Buffer:存放數據操作的更改信息。它們以日志項(redo entry)的形式存放在日志緩沖區中。當需要進行數據庫恢復時,日志項用于重構或回滾對數據庫所做的變更。日志緩沖區的大小由初始化參數LOG_BUFFER確定。大的日志緩沖區可減少日志文件I/O的次數。后臺進程LGWR將日志緩沖區中的信息寫入磁盤的日志文件中,可啟動ARCH后臺進程進行日志信息歸檔。 



c. 共享池Shared Pool:包含用來處理的SQL語句信息。它包含共享SQL區和數據字典存儲區。共享SQL區包含執行特定的SQL語句所用的信息。數據字典區用于存放數據字典,它為所有用戶進程所共享。 


Cursors:一些內存指針,執行待處理的SQL語句 

其他信息區:除了上述幾個信息區外,還包括一些進程之間的通訊信息(如封鎖信息);在多線索服務器配置下,還有一些程序全局區的信息,請求隊列和響應隊列等。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 临海市| 施甸县| 宁德市| 邵武市| 绍兴县| 游戏| 中超| 顺昌县| 松江区| 齐河县| 弥勒县| 博白县| 韶山市| 英德市| 石棉县| 通城县| 阜南县| 拉萨市| 安达市| 卓尼县| 海丰县| 佛学| 清河县| 原阳县| 丹凤县| 双江| 长治市| 卫辉市| 江都市| 明溪县| 樟树市| 肇东市| 镇沅| 池州市| 德令哈市| 济南市| 谷城县| 思茅市| 酒泉市| 酒泉市| 琼结县|