Oracle-系统架构基本概念汇总课件.ppt
《Oracle-系统架构基本概念汇总课件.ppt》由会员分享,可在线阅读,更多相关《Oracle-系统架构基本概念汇总课件.ppt(72页珍藏版)》请在三一办公上搜索。
1、Oracle 系統架構基本概念,1,Oracle 系統架構基本概念 1, Outline,Oracle 系統架構概觀Overview Oracle Instance Oracle Database Other Processes 漫談Oracle Instance 記憶體結構Background Processes 漫談Oracle Database StructuresPhysical Database StructuresLogical Database Structures,2, Outline Oracle 系統架構概觀2,Oracle 系統架構概觀關於Oracle系統架構,是非常重要
2、的基礎觀念,正所謂君子務本,本立而道生,有了踏實的基礎觀念之後,才能在往後學習Oracle的路上,無往不利,3,Oracle 系統架構概觀3,電腦系統, Overview,Oracle Server主要是由Oracle Instance與Database所組成,透過Server Process與User Process之間的交互運作,藉以達成使用者交付執行的工作。,Oracle Server,Oracle Instance,Database,User Processes,Server Processes,PGA,Query,4,電腦系統 Overview Oracle Server主要,例如,
3、使用者可能想要在Oracle Server上查詢一筆人事資料,使用者將相關的SQL敘述輸入系統中,此時系統會產生相對應的User Process與Server Process,由Server Process負責向Oracle Server溝通,並將符合使用者所需的資料,從Oracle Server送至User Process,以完成該使用者下達的request。,5,例如,使用者可能想要在Oracle Server上查詢一筆人,Oracle Instance (Oracle資料庫引擎),Oracle資料庫中的任何動作都和它有關,是Oracle DB的心臟地帶。Oracle Instance主要
4、包含: background process (背景處理程序)是一群常駐的服務常式 (service routine),執行I/O Process 與非Oracle Process 的監控管理,針對目前的使用者所提出的request執行一些一般性的工作。每一個Process專責於一至兩項的工作System Global Area (SGA; 系統全域區)用來存放資料庫系統相關資訊的一塊共享記憶體資料區域,讓background process得以利用這些系統資訊,以提供適當的服務,處理外部的user request 。,6,Oracle Instance (Oracle資料庫引擎)O,由於Or
5、acle Instance掌控著處理Oracle Database所有運作的相關資訊。因此,當要存取或操作Oracle Database裏的資料時,必須先啟動Oracle Instance,才能對Oracle Database的內容加以處理 。 當Oracle Instance啟動時,電腦系統會先配置一塊記憶體空間給SGA (System Global Area),並且載入相關的background process。,7,由於Oracle Instance掌控著處理Oracle D,Oracle Database,Oracle Database可分為兩個部份來說明:實體結構邏輯結構,8,Ora
6、cle Database Oracle Databas,實體結構,Oracle Database的實體結構部份是由一個個的檔案所組合,主要的檔案包括Data files (資料檔)Redo Log files (重置日誌檔) - onlineControl files (控制檔)另外尚有:Password file (密碼檔)Parameter file (起始參數檔)Archived Redo Log files (重置日誌封存檔) - offline,9,實體結構Oracle Database的實體結構部份是由一個,Control files,Data files,Archived log
7、 files,Parameterfile,Passwordfile,Redo log files,Database,10,Control filesData files Archiv,邏輯結構,Oracle Database的邏輯結構部份,主要有Tablespace (表格空間)Segment (區段)Extent (延伸區塊)Block (區塊),11,邏輯結構Oracle Database的邏輯結構部份,主要有,Other Processes,不屬於Oracle Instance內的Process皆稱為Other Process。是User和應用程式要連接Oracle DB Server的
8、重要橋樑。如User Process、Server Process等主要是反應使用者下達的request (即SQL敘述),將其轉化為Oracle Server能看得懂的相關指令,從Oracle Database裏抓取資料,以反映使用者需求的資料。在Server Process中還有一個相當重要的資料結構PGA(Program Global Area):PGA是一個memory buffer,存放相關Server Process的資料與控制資訊。當Server Process被呼叫啟動後,Oracle Server會為其建立一個所屬的PGA,使用者下達的SQL敘述,就是存放在這裏的。,12,O
9、ther Processes 不屬於Oracle Inst,漫談Oracle Instance,13,漫談Oracle Instance13,第一部份我們曾談到所謂的Oracle Instance可分為:SGA(System Global Area)Background Processes 兩部份,並做了概略的說明。現在就分別針對SGA與Background Processes做更完整深入的說明。,14,第一部份我們曾談到所謂的Oracle Instance可分為, 記憶體結構,SGA是Oracle Server在系統上所建立的一塊記憶體區塊,Oracle Server利用這塊記憶體結構,協同
10、Oracle 的各種Processes來完成使用者所交付的工作。SGA主要是由幾種不同的資料區塊所組成Database Buffer CacheRedo Log BufferShared PoolLarge PoolJava Pool其它 (如:Cursors等),SGA,DatabaseBufferCache,RedoLogBuffer,SharedPool,LargePool,JavaPool,Others,15, 記憶體結構SGA是Oracle Server在系統上所建,Database Buffer Cache (資料庫緩衝快取區),資料庫系統擷取資料時的一個快取空間,其用途在於有效減
11、少存取資料時造成的磁碟讀寫動作。(到硬碟從事I/O是很耗時的工作!)我們可以透過設定DB_BLOCK_BUFFERS這個參數值來設定Database Buffer Cache的大小。在Oracle的Database Buffer Cache中,尚有一些sub-caches:DB_CACHE_SIZEDB_KEEP_CACHE_SIZEDB_RECYCLE_CACHE_SIZE我們可以透過DB_CACHE_ADVICE這個參數,藉由statistics的方式來對不同的cache size做預設。指令:Alter system set db_cache_advice = on,16,Databas
12、e Buffer Cache (資料庫緩衝快取,Oracle用所謂的LRU (Least Recently Used) 演算法來管理這塊記憶體空間。LRU:當這塊記憶體空間滿載時,Oracle Server將只保留最近有被使用過的資料,最不常用的資料則寫回磁碟中,並將該資料所佔用的記憶體空間釋放出來。 由於Database Buffer Cache關係著Oracle Server的I/O動作頻繁與否,因此如何管理及設定Database Buffer Cache的大小,對於Oracle Server的效能調校,是相當重要的一項課題。,17,Oracle用所謂的LRU (Least Recentl
13、y,Redo Log Buffer (重置日誌緩衝區),當資料庫的內容有所異動時,Redo Log Buffer會記錄其相關異動的情形:做了什麼改變改變後的舊資料與新資料經過一定的時間週期或者是Redo Log Buffer滿載時,Oracle Server會將Redo Log Buffer的內容寫到Redo Log File裏,以追蹤整個資料庫的使用情形。當Oracle Server不幸當掉的話,就能利用這些記錄下來的資訊,進行資料庫的復原 (Recovery)。有關Redo Log Buffer的大小設定,可以透過設定參數LOG_BUFFER,改變Redo Log Buffer的大小。,1
14、8,Redo Log Buffer (重置日誌緩衝區)當資料庫的,Shared Pool (共享區),當使用者將SQL、PL/SQL等操作指令送至Oracle資料庫後,系統會先解析 (Parse)語法是否正確。解析時,下列兩項資料將會放入Shared Pool中:解析時所需要用到的相關資訊解析後的結果當有不同的使用者執行相同的SQL指令,就可以共用Shared Pool中解析好的結果,以加速SQL指令執行的速度。Shared Pool內包含數種不同的區域,主要有下列兩類:Data Dictionary Cache 存放解析時所需要的相關資訊,以供查詢之用Library Cache 存放各類指令
15、解析後的結果,以供重覆使用Shared Pool亦是採LRU的記憶體管理演算法。Shared Pool的大小設定,是由SHARED_POOL_SIZE這個參數來控制,19,Shared Pool (共享區)當使用者將SQL、PL/S,Large Pool (大型區),Large Pool是Oracle針對一些需要大量記憶體空間的資料庫處理與運算工作所提供的一個額外選項,它可以讓SGA配置一個較大的記憶體空間,提供給處理Oracle的backup/restore、I/O、執行Oracle復原管理程式RMAN、 等。透過指定LARGE_POOL_SIZE這個參數,設定Large Pool的大小。,
16、20,Large Pool (大型區) Large Pool是Or,Java Pool (Java區),當使用者有使用Java時,Oracle Server利用這塊記憶體空間,存放及Parse所使用的Java Code,藉以提供Oracle與Internet更高的整合性。透過指定JAVA_POOL_SIZE這個參數,來改變Java Pool的大小 。,21,Java Pool (Java區)當使用者有使用Java時,, Background Processes,Oracle Server 所提供的Processes可分為兩類:Server Processes 用以服務Client Proces
17、ses,根據Client Processes的需求,由Oracle Server動態配置所產生的,用以服務Client Processes的需求 不被包含在Oracle Instance裏 在Server Processes裏,尚包含另一個重要的記憶體結構PGA (Program Global Area),存放著Client Processes與Server Processes間的重要資訊 Background Processes用來管理Oracle Server所需的一些系統常式,諸如資料庫的I/O、Oracle Processes的管理等 包含於Oracle Instance中,22, B
18、ackground Processes Oracle,主要的Background Processes共有五個,只要有這五個Background Processes,Oracle Server就可以正常地運作了,分別是:Database Writer (DBWR)Log Writer (LGWR)System Monitor (SMON)Process Monitor (PMON)Checkpoint Process (CKPT)其它尚有Archiver (ARCH)、Recoverer (RECO)、Dispatcher (Dnnn)、Lock (LCKn)、Job Queue (SNPn)及
19、Queue Monitor (QMNn) 等Background Processes,它們主要是提供Oracle Server更進階的管理。如ARCH,它可以提供比LGWR更強的資料庫回復能力。,23,主要的Background Processes共有五個,只要,Database Writer (DBWR),DBWR 主要是負責管理Database Buffer Cache,將Database Buffer Cache中修改過的資料,整批寫入Data File裏,透過系統整批寫入的方式,可以提高整個系統的執行效率。 當使用者執行 DML 指令修改相關資料欄位,並執行commit指令時,Orac
20、le本身並不是直接將修改過的資料直接寫入Data File裏,而是當Database Buffer Cache的內容即將滿載或是經過一定的時間區隔 (檢查點 Checkpoint; CKPT),才將資料寫入Data File中。藉由減少相關的I/O動作,以提高系統執行效能。使用write-ahead 的技術,24,Database Writer (DBWR) DBWR 主要,Database,25,InstanceSGADatabaseDBWnControl,由於在大型線上交易 (OLTP) 系統,其資料庫異動情況可能十分頻繁。因此:一個Oracle Server可以有一個以上的DBWR Ba
21、ckground Processes,可以依實際系統硬體與作業系統的特性,設定DB_WRITER_PROCESSES參數值,以獲得整個資料庫系統的最佳執行效能。當設定DB_WRITER_PROCESSES的內容值後,系統上有關DBWR的名稱將會變為DBWn,n可為 09,如DBW0、DBW1、DBW2等。(系統預設只會啟動一個DBWn,即DBW0)。然而,在單一處理器的伺服器系統,配置額外的DBWn並無太多的實質幫助。,26,由於在大型線上交易 (OLTP) 系統,其資料庫異動情況可能,Log Writer (LGWR),LGWR主要是負責將Redo Log Buffer 的內容值,寫入onl
22、ine的Redo Log File中。 它與DBWR的運作方式不同點在於:DBWR在Database Buffer Cache即將滿載或是經過一定的時間區隔,才會將資料寫入Data File中,且是在有需要的時候才會對相關檔案做存取的動作LGWR是在資料庫的內容有異動且已被確認 (commit) 時,如insert、update、delete等,就會被觸發,將異動的情形記錄到online Redo Log File中。因此,當資料庫crash時,就可以根據online Redo Log File內容,對資料庫進行還原的動作。LGWR一樣可以透過設定LGWR_IO_SLAVES這個參數值,提供非
23、同步I/O模式的功能。,27,Log Writer (LGWR)LGWR主要是負責將Red,LGWR 之動作時機:當使用者確認 (commit)某交易時,LGWR會遵循Write-ahead Protocol (先期寫入協定),將Redo log butter內的資料異動記錄寫入。下列幾種情況:自動週期性地動作,如:間隔時間為3秒 (Checkpoint; CKPT)重置日誌緩衝區之剩餘空間不到2/3當DBWn回寫資料檔時,必要的時候LGWR也會動作 (Write-ahead Protocol),28,LGWR 之動作時機:28,Instance,SGA,DBWn,Redo logbuffer
24、,Control files,Data files,Redo log files,LGWR,Database,29,InstanceSGADBWnRedo logControl,何謂 Write-ahead?在DBWn回寫資料至Data File之前,Redo Log Buffer內相關資料都必須完成寫入動作 (即寫入Redo Log File)。若DBWn發現某些重置紀錄尚未寫入Redo Log File時,它會通知LGWR 前來處理。等到LGWR將Redo Log Buffer的紀錄寫入完畢時,DBWn才會開始寫入資料檔。,30,何謂 Write-ahead?30,為何要把Redo Log
25、 File稱為 online Redo Log File?因為Oracle把Redo Log File分為兩部份:online Redo Log Filearchive Redo Log File這兩個都是負責記錄、追蹤整個資料庫的異動情形。不同的是,archive Redo Log File是online Redo Log File的備份資料檔,由另一個Background Process Archiver (ARCH)負責管理。在預設的情況下,ARCH是不會啟動的,而是由LGWR記錄資料庫的異動情形,將這些記錄資料寫到online Redo Log File裏。如果Oracle Serve
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Oracle 系统 架构 基本概念 汇总 课件

链接地址:https://www.31ppt.com/p-1286823.html