Oracle数据库体系结构
文章目錄
- Oracle系統體系結構由三個部分組成:**實例、物理結構和邏輯結構**
- 實例和物理結構(數據庫)組成了Oracle服務器。
- 一、實例
- 1.1 內存結構
- 1.1.1 系統全局區(SGA)
- 1.1.1.1 共享池(共享儲存區)
- 1.1.1.2 共享池——庫緩沖區
- 1.1.1.3 共享池——數據字典緩沖區
- 1.1.1.4 數據塊高速緩沖區
- 1.1.1.5 重做日志緩沖區
- 1.1.1.6 大型池
- 1.1.1.7 Java池
- 1.1.2 程序全局區(PGA)
- 1.2 進程結構
- 1.2.1 用戶進程
- 1.2.2 服務器進程
- 1.2.3 后臺進程
- 1.2.3.1 數據庫復寫器(DBWn)
- 1.2.3.2 日志復寫器(LGWR)
- 1.2.3.3 系統監控進程(SMON)
- 1.2.3.4 進程監控器(PMON)
- 1.2.3.5 檢查點(CKPT)
- 1.2.3.6 歸檔進程(ARCn)(可選)
- 二、物理結構
- 2.1 數據文件
- 2.2 重做日志文件
- 2.3 控制文件
- 三、邏輯結構
Oracle系統體系結構由三個部分組成:實例、物理結構和邏輯結構
實例和物理結構(數據庫)組成了Oracle服務器。
一、實例
也成為服務器Server,是用來訪問一個數據庫文件集的一個存儲結構以及后臺進程的集合。總是打開一個且僅打開一個數據庫,一個數據庫可以被多個實例訪問。
由內存結構和進程結構組成。
1.1 內存結構
內存結構由系統全局區和程序全局區構成
1.1.1 系統全局區(SGA)
SGA(System Global Area):由所有服務進程、后臺進程共享。
在實例啟動時分配,時一組為系統分配的共享內存結構。是占用內存最大的一個區域,也是影響數據庫性能的重要因素。
由共享池、數據塊高速緩沖區、重做日志緩沖區組成,另外有兩個可選的內存結構:大型池、JAVA池。
1.1.1.1 共享池(共享儲存區)
用來儲存最近最多執行的SQL語句和最近最多使用的數據定義
主要由庫緩沖區和數據字典緩沖區組成
1.1.1.2 共享池——庫緩沖區
儲存最近使用的SQL和PL/SQL語句信息。
它能夠使普遍使用的語句能被共享。
由兩種結構組成,其各自的大小由共享池內部指定:
- 共享SQL區域
- 共享PL/SQL區域
1.1.1.3 共享池——數據字典緩沖區
使數據庫里最經常使用的對象定義的集合。
包括數據文件名、表、索引、列、用戶權限和其他數據庫對象等信息。數據庫需要這些信息時,將查找數據字典獲取關聯對象信息。
緩存數據字典信息在內存區能提高查詢數據響應時間。
1.1.1.4 數據塊高速緩沖區
儲存以前從數據文件中取出過的數據塊的拷貝信息。
通常只緩存數據庫大小的1%~2%。使用LRU(最近最少使用)算法來管理可用空間。
1.1.1.5 重做日志緩沖區
記錄數據塊的所有變化。重做項會被周期性分批寫到重做日志文件中,以便再數據塊恢復過程中用于恢復操作。
1.1.1.6 大型池
只配置在共享服務器環境中,能減輕共享池的負擔。
1.1.1.7 Java池
目的是為JAVA命令提供語法分析,如果安裝并使用JAVA是必須的。
1.1.2 程序全局區(PGA)
PGA(Program Global Area):由每個服務進程、后臺進程專有;每個進程都有一個PGA。
當客戶進程訪問oracle服務器時,會在oracle服務器端為用戶進程分配相應的服務進程,并且為該服務進程分配相應的內存空間來存放其數據和控制信息,每一個后臺進程也需要為其分配專用的存儲空間。也就是PGA
1.2 進程結構
分別為用戶進程、服務器進程和后臺進程。
1.2.1 用戶進程
用戶進程是要求Oracle服務器交互的一種進程。
當數據庫用戶要求連接到Oracle服務器時啟動,不直接和Oracle服務器連接。
1.2.2 服務器進程
連接ORacle實例,當用戶建立一個會話時開始啟動。
連接和會話是兩個不同的概念。 連接是用戶進程到實例之間的一條物理路徑;會話是實例中存在的一個邏輯實體。一條連接上可以建立0個,1個或多個會話,而且各個會話單獨且獨立的。
使用connect和disconnect創建或結束會話
服務器進程就是代表客戶會話完成工作的進程。幾乎所有的工作都是由它們來做的,因此占用系統cpu的時間最多。
任務:
- 對sql進行解析和執行
- 如果所需的數據不在sga中,則server process會去磁盤上將其讀到sga的database_buffer_cache中。
- 把結果返回給應用程序
可用專用服務器模式或共享服務器模式創建會話。
1.2.3 后臺進程
若干個常駐內存的操作系統進程,在進程啟動時分配。
數據庫的物理結構與內存結構之間的交互通過這些進程完成。
1.2.3.1 數據庫復寫器(DBWn)
負責管理緩沖儲存區。主要任務是將緩沖區的臟數據寫入磁盤。
1.2.3.2 日志復寫器(LGWR)
負責管理日志緩沖區,將上次寫入磁盤以來的全部日志緩沖區寫入磁盤上的日志文件。
1.2.3.3 系統監控進程(SMON)
該實例啟動時,執行實例恢復,還負責清理不再使用的臨時段。
1.2.3.4 進程監控器(PMON)
該進程在用戶進程出現故障時執行進程恢復,負責清理內存儲區和釋放該進程所使用的資源。
1.2.3.5 檢查點(CKPT)
1.2.3.6 歸檔進程(ARCn)(可選)
當ArchiveLog模式被設置時,自動歸檔聯機重做日志文件,保存所有數據庫變化。
二、物理結構
包括了數據文件、日志文件和控制文件。
2.1 數據文件
每個Oracle數據庫有一個或多個物理的數據文件。一個數據庫的數據文件包括全部數據庫數據。邏輯結構中的一個表空間有一個或多個數據文件組成。
2.2 重做日志文件
每個數據庫有兩個或多個日志文件的組。每個日志文件組用于收集數據庫日志。
日志的主要功能是記錄對數據所做的修改,用于保護數據庫以防止故障。
2.3 控制文件
每一Oracle數據庫有一個控制文件。用于記錄數據庫的物理結構
三、邏輯結構
描述了數據庫的物理空間怎樣運用,是一種層次結構。包括表空間、段、片區、快。
總結
以上是生活随笔為你收集整理的Oracle数据库体系结构的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电子商务应用课程知识整理 第四章-搜索引
- 下一篇: 软件测试技术——系统测试