Oracle體系結構組件_第1頁
Oracle體系結構組件_第2頁
Oracle體系結構組件_第3頁
Oracle體系結構組件_第4頁
Oracle體系結構組件_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Oracle體系結構組件

目標

完成這一課的學習后,您應該能達到下列目標:

概括

Oracle體系結構及其主要組件

列出在用戶連接到

Oracle例程過程中涉及的結構

Oracle數(shù)據(jù)庫中常用的術語進程(process):一段在內存中正在運行的程序。后臺進程(backgroundprocess):進程的一種,在內存中運行時,不占顯示,而且它的優(yōu)先級比前臺進程低??梢灾挥幸粋€前臺進程,但可以有多個后臺進程。緩沖區(qū)(buffer):一段用來臨時存儲數(shù)據(jù)的內存區(qū)。主機(host):計算機系統(tǒng)的另一個稱呼。服務器(server):一臺在網絡中向其他計算機系統(tǒng)提供一項或多項服務的主機??蛻魴C(client):一臺使用由服務器(server)提供服務的計算機系統(tǒng)??诹钗募?/p>

基本組件概覽

例程

SGA重做日志

緩沖區(qū)

共享池

數(shù)據(jù)字典

高速緩存庫高速緩存

DBWRSMONPMONCKPTLGWR其它

用戶進程

服務器進程

PGA控制文件

數(shù)據(jù)文件

數(shù)據(jù)庫數(shù)據(jù)庫緩沖區(qū)

高速緩存

重做日志文件

Java池

大型共享池

參數(shù)文件

歸檔日志文件

Oracle服務器

Oracle服務器:

是一個數(shù)據(jù)庫管理系統(tǒng),它為

信息管理提供了開放、綜合和

集成的方法

包括

Oracle例程和

Oracle

數(shù)據(jù)庫

Oracle服務器

Oracle例程

Oracle例程:是一種訪問

Oracle數(shù)據(jù)庫的方式

始終打開一個,并且只打開一個數(shù)據(jù)庫

由內存結構和后臺進程結構組成

后臺進程結構

內存結構

例程

SGA重做日志緩沖區(qū)

共享池

數(shù)據(jù)字典高速緩存庫高速緩存DBWRSMONPMONCKPTLGWR其它數(shù)據(jù)庫緩沖區(qū)高速緩存

Java

大型共享池

建立連接和創(chuàng)建會話

連接到

Oracle例程包括:

建立用戶連接

創(chuàng)建會話

創(chuàng)建的會話數(shù)據(jù)庫用戶

用戶進程

服務器進程

建立的連接

Oracle服務器

Oracle數(shù)據(jù)庫

Oracle數(shù)據(jù)庫:

是一個被統(tǒng)一處理的數(shù)據(jù)集合

包括三類文件

口令文件

參數(shù)文件

歸檔的日志文件

控制

文件

數(shù)據(jù)

文件

重做

日志

文件

Oracle數(shù)據(jù)庫

物理結構

物理結構包括以下三種文件類型:

控制文件

數(shù)據(jù)文件

重做日志文件

控制文件數(shù)據(jù)文件(包括數(shù)據(jù)字典)

標頭

聯(lián)機重做

日志文件

內存結構

Oracle的內存結構由兩個內存區(qū)組成,分別是:

系統(tǒng)全局區(qū)(SGA):在例程啟動時分配,是

Oracle

例程的基本組件

程序全局區(qū)(PGA):在服務器進程啟動時分配

系統(tǒng)全局區(qū)

SGA包括以下幾種內存結構:共享池數(shù)據(jù)庫緩沖區(qū)高速緩存重做日志緩沖區(qū)其它結構(例如鎖定和栓鎖管理以及統(tǒng)計數(shù)據(jù))

SGA中還可配置其它兩種內存結構:

大型共享池

Java池系統(tǒng)全局區(qū)

SGA是動態(tài)的

大小由

SGA_MAX_SIZE

參數(shù)指定

SGA組件以粒組為單位進行分配和跟蹤

連續(xù)的虛擬內存分配

粒組大小由估算的

SGA_MAX_SIZE

總計大小確定

Oracle執(zhí)行SQL查詢語句的步驟如果用戶在SQL*Plus下輸入了如下的查詢語句:Select*fromstudent;那么,Oracle又是如何來處理這個語句的呢?Oracle執(zhí)行SQL查詢語句的步驟編譯(parse)執(zhí)行(execute)提取數(shù)據(jù)(fetch)Oracle執(zhí)行SQL查詢語句的步驟

編譯:在進行編譯時,服務器進程會將SQL語句的正文放入共享池(sharedpool)的庫高速緩存(librarycache)中并將完成以下處理:首先在共享池中搜索是否有相同的SQL語句(正文),如果沒有就進行后續(xù)的處理。檢查該SQL語句的語法是否正確。通過查看數(shù)據(jù)字典來檢查表和列的定義。對所操作的對象加編譯鎖以便在編譯語句期間這些對象的定義不能被改變。檢查所引用對象的用戶權限。生成該SQL語句所需的優(yōu)化的執(zhí)行計劃(執(zhí)行步驟)。將SQL語句和執(zhí)行計劃裝入共享的SQL區(qū)。Oracle執(zhí)行SQL查詢語句的步驟執(zhí)行:Oracle服務器進程開始執(zhí)行SQL語句是因為它已獲得了執(zhí)行SQL語句所需的全部資源和信息。提取數(shù)據(jù):Oracle服務器進程選擇所需的數(shù)據(jù)行,并在需要時將其排序,最后將結果返回給用戶(進程)。共享池

用于存儲:

最近執(zhí)行的

SQL語句

最近使用的數(shù)據(jù)定義它包括以下兩個與性能相關的關鍵內存結構:庫高速緩存數(shù)據(jù)字典高速緩存其大小由

SHARED_POOL_SIZE

參數(shù)確定共享池數(shù)據(jù)字典高速緩存庫高速緩存ALTERSYSTEMSETSHARED_POOL_SIZE=64M;庫高速緩存

存儲有關最近使用的

SQL和

PL/SQL語句的信息

啟用常用語句共享由

“最近最少使用算法”

(LRU)管理

包括以下兩個結構:共享的

SQL區(qū)共享的

PL/SQL區(qū)大小由共享池的大小確定

數(shù)據(jù)字典高速緩存

數(shù)據(jù)庫中最近使用的定義的集合

包括與數(shù)據(jù)庫文件、表、索引、列、用戶、權限和其它數(shù)據(jù)庫對象相關的信息

在語法分析階段,服務器進程會在數(shù)據(jù)字典中查找用于解析對象名和驗證訪問的信息

將數(shù)據(jù)字典信息高速緩存到內存中,可縮短查詢和

DML

的響應時間

大小由共享池的大小決定

數(shù)據(jù)庫緩沖區(qū)高速緩存

存儲已從數(shù)據(jù)文件中檢索到的數(shù)據(jù)塊的副本

能夠大幅提高獲取和更新數(shù)據(jù)時的性能

通過

LRU算法管理

主塊的大小由

DB_BLOCK_SIZE

確定

數(shù)據(jù)庫緩沖區(qū)

高速緩存

數(shù)據(jù)庫緩沖區(qū)高速緩存由獨立的子高速緩存組成:

DB_CACHE_SIZEDB_KEEP_CACHE_SIZEDB_RECYCLE_CACHE_SIZE大小可以進行動態(tài)調整

設置

DB_CACHE_ADVICE

可收集用于預測不同

高速緩存大小行為的統(tǒng)計信息

統(tǒng)計信息由

V$DB_CACHE_ADVICE

顯示

ALTERSYSTEMSETDB_CACHE_SIZE=96M;重做日志緩沖區(qū)

記錄對數(shù)據(jù)庫數(shù)據(jù)塊所做的全部更改

主要用于恢復

其中記錄的更改稱作重做條目

重做條目包含用于重新構造或重做更改的信息

大小由

LOG_BUFFER

定義

重做日志

緩沖區(qū)

Oracle執(zhí)行update語句的步驟如果數(shù)據(jù)和回滾數(shù)據(jù)不在數(shù)據(jù)庫高速緩沖區(qū)中,Oracle服務器進程將把它們從數(shù)據(jù)文件中讀到數(shù)據(jù)庫高速緩沖區(qū)中。Oracle服務器進程在要修改的數(shù)據(jù)行上加鎖(行一級的鎖)Oracle服務器進程將數(shù)據(jù)的變化信息和回滾所需的信息都記錄在重做日志緩沖區(qū)中。Oracle服務器進程將回滾所需的原始值和對數(shù)據(jù)所做的修改都寫入數(shù)據(jù)庫高速緩沖區(qū)。之后再數(shù)據(jù)庫高速緩沖區(qū)中所有的這些數(shù)據(jù)塊都將被標為臟緩沖區(qū),因為此時內外存的數(shù)據(jù)是不相同的(不一致的)。Oracle處理insert和delete語句的步驟與處理update語句大體相同。大型共享池

SGA中的可選內存區(qū)

分擔了共享池的一部分工作

用于:

共享服務器的會話內存

(UGA)I/O服務器進程

備份和恢復操作或

RMAN并行執(zhí)行消息緩沖區(qū)

PARALLEL_AUTOMATIC_TUNING

設置為

TRUE不使用

LRU列表

大小由

LARGE_POOL_SIZE

確定

Java池

存儲

Java命令的服務分析要求

在安裝并使用

Java時是必需的

大小由

JAVA_POOL_SIZE

參數(shù)確定

程序全局區(qū)

為連接到

Oracle數(shù)據(jù)庫的每個用戶進程保留的內存

在創(chuàng)建進程時分配在終止進程時回收僅供一個進程使用服務器進程

PGA用戶進程

進程結構

Oracle利用了以下幾種進程的優(yōu)勢:

用戶進程:在數(shù)據(jù)庫用戶請求連接到

Oracle服務器時

啟動服務器進程:與

Oracle例程相連接,在用戶建立會話

時啟動后臺進程:在

Oracle例程啟動時啟動

用戶進程

請求與

Oracle服務器交互的程序必須先建立連接不與

Oracle服務器直接交互

數(shù)據(jù)庫用戶服務器進程

用戶進程建立的連接服務器進程直接與

Oracle服務器交互的程序執(zhí)行生成的調用并返回相關結果可以是專用服務器或共享服務器

建立的連接

創(chuàng)建的會話數(shù)據(jù)庫用戶用戶進程服務器進程Oracle服務器

后臺進程維護并加強物理結構與內存結構之間的關系

必備的后臺進程:

DBWR PMON CKPTLGWR SMON 可選的后臺進程:

ARCn LMDn RECOCJQ0 LMON SnnnDnnn PnnnLCKn QMNn數(shù)據(jù)庫寫入程序

(DBWn)在以下情況下寫入:出現(xiàn)檢查點灰數(shù)據(jù)緩沖區(qū)達到閾值沒有空閑緩沖區(qū)出現(xiàn)超時執(zhí)行了

RACping請求表空間處于

OFFLINE

狀態(tài)表空間處于

READONLY

狀態(tài)對表執(zhí)行

DROP

TRUNCATE

操作對表空間執(zhí)行

BEGINBACKUP

操作例程

SGA控制

文件數(shù)據(jù)

文件重做

日志

文件數(shù)據(jù)庫DBWn數(shù)據(jù)庫

緩沖區(qū)

高速緩存日志寫入器

(LGWR)LGWR在以下情況下寫入:提交時三分之一填滿時有1MB的重做時每隔三秒DBWn寫入前例程SGA控制

文件數(shù)據(jù)

文件

重做

日志

文件數(shù)據(jù)庫重做日志

緩沖區(qū)

DBWnLGWROracle快速提交技術當在SQL*Plus中發(fā)了commit語句之后,Oracle的內部操作步驟如下:服務器進程將把提交的記錄連同所產生的SCN(systemchangenumber)一起寫入重做日志緩沖區(qū)中。重做日志寫進程(LGWR)將把重做日志緩沖區(qū)中一直到所提交的記錄(包括該記錄)的所有記錄連續(xù)地寫到重做日志文件中。Oracle通知用戶(進程)提交已經完成。服務器進程將修改數(shù)據(jù)庫高速緩沖區(qū)中的相關數(shù)據(jù)的狀態(tài)并釋放資源和打開鎖等。系統(tǒng)監(jiān)控程序

(SMON)職責:例程恢復前滾重做日志中的更改打開數(shù)據(jù)庫供用戶訪問回退未提交的事務處理合并空閑空間回收臨時段控制

文件數(shù)據(jù)

文件

重做

日志

文件數(shù)據(jù)庫例程

SGASMON過程監(jiān)視器

(PMON)進程失敗后,通過以下方法進行清理:

回退事務處理釋放鎖釋放其它資源重新啟動已失效的調度

程序

PGA區(qū)

例程SGAPMON檢查點

(CKPT)職責包括:在檢查點發(fā)信號給

DBWn使用檢查點信息更新數(shù)據(jù)文件的標頭使用檢查點信息更新控制文件控制

文件數(shù)據(jù)

文件重做

日志

文件數(shù)據(jù)庫例程SGADBWnLGWRCKPT歸檔程序

(ARCn)可選的后臺進程設置

ARCHIVELOG

模式時自動歸檔聯(lián)機重做日志保留數(shù)據(jù)庫的全部更改記錄

ARCn歸檔的

重做日

志文件控制

文件數(shù)據(jù)

文件重做

日志

文件邏輯結構指示數(shù)據(jù)庫物理空間的使用情況層次結構由表空間、段、區(qū)和塊組成

表空間數(shù)據(jù)文件段塊區(qū)段處理

SQL語句

通過以下進程連接到一個例程:

用戶進程服務器進程所用的

Oracle服務器組件取決于

SQL語句的類型:

查詢語句返回行DML語句記錄更改提交操作確

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論