1. 首页
  2. 文档大全

Oracle系統架构基本概念

上传者:bh****0 2022-05-29 14:22:32上传 PPTX文件 8.19MB
Oracle系統架构基本概念_第1页 Oracle系統架构基本概念_第2页 Oracle系統架构基本概念_第3页

《Oracle系統架构基本概念》由会员分享,可在线阅读,更多相关《Oracle系統架构基本概念(74页珍藏版)》请在文档大全上搜索。

1、國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)1第一页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰) Outline Oracle 系統架構概觀Overview Oracle Instance Oracle Database Other Processes 漫談Oracle Instance 記憶體結構Background Processes 漫談Oracle Database StructuresPhysical Database StructuresLogical Database Structures2第二页,共七十四页。國立聯合大學 資訊管理學系 資料庫系

2、統課程 (陳士杰)Oracle 系統架構概觀關於Oracle系統架構,是非常重要的基礎觀念,正所謂君子務本,本立而道生,有了踏實的基礎觀念之後,才能在往後學習Oracle的路上,無往不利3第三页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰) Overview Oracle Server主要是由Oracle Instance與Database所組成,透過Server Process與User Process之間的交互運作,藉以達成使用者交付執行的工作。 Oracle ServerOracle Instance DatabaseUser ProcessesServer Pro

3、cessesPGA 4第四页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)例如,使用者可能想要在Oracle Server上查詢一筆人事資料,使用者將相關的SQL敘述輸入系統中,此時系統會產生相對應的User Process與Server Process,由Server Process負責向Oracle Server溝通,並將符合使用者所需的資料,從Oracle Server送至User Process,以完成該使用者下達的request。5第五页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)Oracle Instance (Oracle資料庫引擎)

4、Oracle資料庫中的任何動作都和它有關,是Oracle DB的心臟地帶。Oracle Instance主要包含: background process (背景處理程序)是一群,執行I/O Process 與非Oracle Process 的監控管理,針對目前的使用者所提出的request執行一些。每一個Process專責於一至兩項的工作System Global Area (SGA; 系統全域區)用來存放資料庫系統相關資訊的一塊,讓background process得以利用這些系統資訊,以提供適當的服務,處理外部的user request 。 6第六页,共七十四页。國立聯合大學 資訊管理學

5、系 資料庫系統課程 (陳士杰)由於Oracle Instance掌控著處理Oracle Database所有運作的相關資訊。因此,當要存取或操作Oracle Database裏的資料時,必須先啟動Oracle Instance,才能對Oracle Database的內容加以處理 。 當Oracle Instance啟動時,電腦系統會先配置一塊給SGA (System Global Area),並且載入相關的background process。 7第七页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)Oracle Database可分為兩個部份來說明:實體結構邏輯結構 8第

6、八页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)Oracle Database的實體結構部份是由一個個的檔案所組合,主要的檔案包括另外尚有:9第九页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)Control filesData files Archived log filesParameterfilePasswordfileRedo log filesDatabase10第十页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)Oracle Database的邏輯結構部份,主要有11第十一页,共七十四页。國立聯合大學 資訊管理學系

7、 資料庫系統課程 (陳士杰)不屬於Oracle Instance內的Process皆稱為Other Process。是User和應用程式要連接Oracle DB Server的重要橋樑。如User Process、Server Process等主要是反應使用者下達的request (即SQL敘述),將其轉化為Oracle Server能看得懂的相關指令,從Oracle Database裏抓取資料,以反映使用者需求的資料。在Server Process中還有一個相當重要的資料結構PGAProgram Global Area):PGA是一個memory buffer,存放相關Server Proc

8、ess的資料與控制資訊。當Server Process被呼叫啟動後,Oracle Server會為其建立一個所屬的PGA,使用者下達的SQL敘述,就是存放在這裏的。 12第十二页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)漫談Oracle Instance13第十三页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)第一部份我們曾談到所謂的Oracle Instance可分為:SGASystem Global AreaBackground Processes 兩部份,並做了概略的說明。現在就分別針對SGA與Background Processes做更完

9、整深入的說明。 14第十四页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰) 記憶體結構SGA是Oracle Server在系統上所建立的一塊,Oracle Server利用這塊記憶體結構,協同Oracle 的各種Processes來完成使用者所交付的工作。SGA主要是由幾種不同的資料區塊所組成Database Buffer CacheRedo Log BufferShared PoolLarge PoolJava Pool其它 (如:Cursors等)SGADatabaseBufferCacheRedoLogBufferSharedPoolLargePoolJavaPoo

10、lOthers15第十五页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)Database Buffer Cache (資料庫緩衝快取區)資料庫系統擷取資料時的一個快取空間,其用途在於。(到硬碟從事I/O是很耗時的工作!)我們可以透過設定這個參數值來設定Database Buffer Cache的大小。在Oracle的Database Buffer Cache中,尚有一些sub-caches:DB_CACHE_SIZEDB_KEEP_CACHE_SIZEDB_RECYCLE_CACHE_SIZE我們可以透過這個參數,藉由statistics的方式來對不同的cache siz

11、e做預設。指令:Alter system set db_cache_advice = on16第十六页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)Oracle用所謂的LRU (Least Recently Used) 演算法來管理這塊記憶體空間。LRU:當這塊記憶體空間滿載時,Oracle Server將只保存最近有被使用過的資料,最不常用的資料則寫回磁碟中,並將該資料所佔用的記憶體空間釋放出來。 由於Database Buffer Cache關係著Oracle Server的I/O動作頻繁與否,因此如何管理及設定Database Buffer Cache的大小,對於O

12、racle Server的效能調校,是相當重要的一項課題。17第十七页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)當資料庫的內容有所異動時,Redo Log Buffer會記錄其經過一定的時間週期或者是Redo Log Buffer滿載時,Oracle Server會將Redo Log Buffer的內容寫到裏,以追蹤整個資料庫的使用情形。當Oracle Server不幸當掉的話,就能利用這些記錄下來的資訊,進行資料庫的。有關Redo Log Buffer的大小設定,可以透過設定參數,改變Redo Log Buffer的大小。 18第十八页,共七十四页。國立聯合大學 資

13、訊管理學系 資料庫系統課程 (陳士杰)當使用者將SQL、PL/SQL等操作指令送至Oracle資料庫後,系統會先解析 (Parse)語法是否正確。解析時,如下兩項資料將會放入Shared Pool中:解析時所需要用到的相關資訊解析後的結果當有不同的使用者執行一样的SQL指令,就可以共用Shared Pool中解析好的結果,以加速SQL指令執行的速度。Shared Pool內包含數種不同的區域,主要有如下兩類:Data Dictionary Cache 存放解析時所需要的相關資訊,以供查詢之用Library Cache 存放各類指令解析後的結果,以供重覆使用Shared Pool亦是採LRU的記

14、憶體管理演算法。Shared Pool的大小設定,是由SHARED_POOL_SIZE這個參數來控制 19第十九页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰) Large Pool是Oracle針對一些的資料庫處理與運算工作所提供的一個額外選項,它可以讓SGA配置一個較大的記憶體空間,提供給處理Oracle的backup/restore、I/O、執行Oracle復原管理程式RMAN、 等。透過指定這個參數,設定Large Pool的大小。 20第二十页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)當使用者有使用Java時,Oracle Server

15、利用這塊記憶體空間,及所使用的Java Code,藉以提供Oracle與Internet更高的整合性。透過指定這個參數,來改變Java Pool的大小 。21第二十一页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰) Background Processes Oracle Server 所提供的Processes可分為兩類: 用以,根據Client Processes的需求,由Oracle Server動態配置所產生的,用以服務Client Processes的需求 裏 在Server Processes裏,尚包含另一個重要的記憶體結構PGA (Program Global

16、 Area),存放著Client Processes與Server Processes間的重要資訊 用來所需的一些系統常式,諸如資料庫的I/O、Oracle Processes的管理等 中 22第二十二页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)主要的Background Processes共有五個,只要有這五個Background Processes,Oracle Server就可以正常地運作了,分別是:其它尚有Archiver (ARCHARCH)、Recoverer (RECORECO)、Dispatcher (DnnnDnnn)、Lock (LCKnLCKn)

17、、Job Queue (SNPnSNPn)及Queue Monitor (QMNnQMNn) 等Background Processes,它們主要是提供Oracle Server。如ARCH,它可以提供比LGWR更強的資料庫回復能力。 23第二十三页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)DBWR 主要是負責管理,將Database Buffer Cache中修改過的資料,Data File裏,透過系統整批寫入的方式,可以提高整個系統的執行效率。 當使用者執行 DML 指令修改相關資料欄位,並執行commit指令時,Oracle本身並不是直接將修改過的資料直接寫入D

18、ata File裏,而是當Database Buffer Cache的內容或是,才將資料寫入Data File中。藉由,以提高系統執行效能。使用的技術 24第二十四页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)InstanceSGADatabase buffercacheDBWnControl filesData files Redo log filesDatabase25第二十五页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)由於在大型線上交易 (OLTP) 系統,其資料庫異動情況可能十分頻繁。因此:一個Oracle Server可以有一個以上的

19、DBWR Background Processes,可以依實際系統硬體與作業系統的特性,設定DB_WRITER_PROCESSES參數值,以獲得整個資料庫系統的最优執行效能。當設定DB_WRITER_PROCESSES的內容值後,系統上有關DBWR的名稱將會變為DBWn,n可為 09,如DBW0、DBW1、DBW2等。(系統預設只會啟動一個DBWn,即DBW0)。然而,在單一處理器的伺服器系統,配置額外的DBWn並無太多的實質幫助。26第二十六页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)LGWR主要是負責將Redo Log Buffer 的內容值,寫入的Redo Lo

20、g File中。 它與DBWR的運作方式不同點在於:DBWR在Database Buffer Cache即將滿載或是經過一定的時間區隔,才會將資料寫入Data File中,且是在有需要的時候才會對相關檔案做存取的動作LGWR是在資料庫的內容有時,如insert、update、delete等,就會被觸發,將異動的情形記錄到online Redo Log File中。因此,當資料庫crash時,就可以根據online Redo Log File內容,對資料庫進行還原的動作。LGWR一樣可以透過設定這個參數值,提供非同步I/O模式的功能。 27第二十七页,共七十四页。國立聯合大學 資訊管理學系 資料

21、庫系統課程 (陳士杰)LGWR 之動作時機:當使用者確認 (commit)某交易時,LGWR會遵循Write-ahead Protocol (先期寫入協定),將Redo log butter內的資料異動記錄寫入。如下幾種情況:自動週期性地動作,如:間隔時間為3秒 (Checkpoint; CKPT)重置日誌緩衝區之剩餘空間不到2/3當DBWn回寫資料檔時,必要的時候LGWR也會動作 (Write-ahead Protocol)28第二十八页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)InstanceSGADBWnRedo logbufferControl filesDa

22、ta files Redo log filesLGWRDatabase29第二十九页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)何謂 Write-ahead?在DBWn回寫資料至Data File之前,Redo Log Buffer內相關資料都必須完成寫入動作 (即寫入Redo Log File)。假设DBWn發現某些重置紀錄尚未寫入Redo Log File時,它會通知LGWR 前來處理。等到LGWR將Redo Log Buffer的紀錄寫入完畢時,DBWn才會開始寫入資料檔。30第三十页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)為何要把Re

23、do Log File稱為 online Redo Log File?因為Oracle把Redo Log File分為兩部份:這兩個都是負責、整個資料庫的。不同的是,是online Redo Log File的,由另一個Background Process Archiver ()負責管理。在預設的情況下,ARCH是的,而是由LGWR記錄資料庫的異動情形,將這些記錄資料寫到online Redo Log File裏。如果Oracle Server不幸掛了,此時的資料庫僅能復原online Redo Log File裏有記錄的資料。可是,其他的呢?這時候就要靠ARCH將online Redo Lo

24、g File備份出來。31第三十一页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)如果是因為停電或是其它因素導致Oracle資料庫不正常被關閉, 下一次啟動資料庫時將由SMON進行必要的資料庫修復動作。主要的工作有:執行一些資料庫必要的修復工作 (如果有需要的話,SMON會使用online Redo Log File的內容)。定時去除資料庫系統中一些不必要的殘餘物件,例如上次系統交易進行一半的資料或暫時性區間。執行整個系統儲存空間的管理,對於Tablespace上破碎的Extent,它會將這些較小的Extents予以合併,整理出一個較大的空間,以供系統日後的使用。 32第

25、三十二页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)InstanceSGASMONControl filesData files Redo log filesInstanceSGASMONDatabase33第三十三页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)當某個User Process異常中止時,PMON會執行程序修復 (Process Recovery)的動作,就是把已經失效的User Processes給趕出記憶體,並釋放該記憶體空間,留待系統日後使用釋放該Process之前使用的系統資源,防止Deadlock發生。 PMON和SMON

26、一樣,都是由Oracle資料庫系統週期性自動執行,檢查整個資料庫系統的運作情形。 34第三十四页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)InstanceSGAPMONPGA area35第三十五页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)在一個裏,DBWR會對所有在Database Buffer Cache所做的異動,將其結果寫入到相關的Data Files以及Redo Log Files、Control Files,這樣的動作,就稱為。CKPT Background Process就是扮演著一個的角色,經過一定的時間後,負責通知 DBWR

27、 執行Checkpoint的動作。 CKPT會在適常時候產生一個Checkpoint事件,其意義為:確保Database Buffer Cache內也能夠定期被寫入硬碟的Data File。()萬一Oracle需要進行Instance Recovery時,就不需要Checkpoint之前的Redo record,可縮短資料庫動新啟動的時間。36第三十六页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)InstanceSGADWW0Redo LogBufferLGWRInstanceSGADBWnLGWRCKPTControl filesData files Redo log

28、 files37第三十七页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)執行Checkpoint的時間區間,可以透過設定這個參數,改變checkpoint的區間。然而,在設定LOG_CHECKPOINT_INTERVAL時,要注意的是:這個值設得的話,會造成系統設得,超過的時間時,LOG_CHECKPOINT_INTERVAL的值又會變得因為Oracle會在swap 時,做一次checkpoint的動作。 38第三十八页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰) Summary縱觀以上的說明,現在我們可以勾勒出整個Oracle Instance的

29、整個架構圖:系統記憶體大致上的配置情形有Database Buffer Cache、Redo Log Buffer、Shared Pool、Large Pool、Java Pool等。在Background Processes部份,計有DBWR、LGWR、SMON、PMON、CKPT等。 Redo logbufferDatabase buffer cacheShared poolDBWRSMONPMONCKPTLGWROthersData DictionarycacheLibrarycache39第三十九页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)Redo logbu

30、ffer cacheData Dict.cacheLibrarycacheDBWRSMONPMONCKPTLGWROthersUserprocessServerprocessPGAControl filesData files Archived log filesParameterfilePasswordfileRedo log filesDatabasebuffer cache40第四十页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)漫談Oracle Database Structures41第四十一页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)

31、第一部份曾談到所謂的Oracle Database可分為: 兩部份,並做了概略的說明。如果您有心成為一個頂尖的Oracle DBA ,那麼不僅要對以上兩結構內的如數家珍般熟悉,還要瞭解其才行。現在就分別針對這兩部份做深入的說明。 42第四十二页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)邏輯資料庫結構是Oracle所提供的一種概念,透過一個Mapping的機制,管理Oracle Physical Database Structures。 由外至內,我們可以看到:整個Database是由組成;每個Tablespace存在著許多的;每個Segment內含許多的;最後,則是構

32、成整個Oracle Database的最小邏輯單位。 43第四十三页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)44第四十四页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰) Oracle 資料庫允許DBA 自行規劃各種用途的資料表空間(Tablespace),以便存放不同型態的資料與資料庫物件。例如:存放可放在 ;可存放在 ;所有資料表的則可單獨存放在。SYSTEM為Oracle資料庫預設的表空間;USER 與INDX 則是由DBA 自行規劃建置的。45第四十五页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)一般來說,Orac

33、le資料庫至少應規劃出五個以上的資料表空間,如下圖所示:46第四十六页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)Oracle Server其他相關的邏輯結構,均是經由Tablespace做統一集中的管理。Tablespace依其可存取的,分為兩種狀態:再以其可存取的區分,可分為兩種式透過其存取狀態的控制以及存取模式的切換,將可使整個資料庫的管理更為方便。 47第四十七页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)Tablespace的特性 Oracle Database是由所構成。 一個Tablespace在同一時間點上,僅能類歸於一個Data

34、base。即,Database與Tablespace之間的關係,是呈現一對多的關係。 除了與外,其餘的Tablespace均可在Database尚在執行的時候,將其選擇性的或,以利資料庫的管理。 Tablespace能夠隨意切換其存取模式及模式。48第四十八页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)Oracle Database邏輯空間概念中最小的邏輯空間單位,有關Oracle Server對儲存空間所執行的配置(allocate)、讀取 (read) 及寫入 (write),均是以此為單位,進行資料庫的種種操作。且在新建Oracle 資料庫時就必須明確地定義。Or

35、acle的區塊大小通常是數倍於 “作業系統的磁碟讀寫區塊(O.S. blocks) 表示, Oracle在存取資料時是以自身的 block為最小讀取單位,而不是以O.S. block 為單位。它的參數設定透過參數DB_BLOCK_SIZE設定之。必須將 DB_BLOCK_SIZE 設定為 O.S.blocks的整數倍。49第四十九页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)雖然資料區塊是Oracle最小的資料讀寫單位,但值得注意的是:Oracle在 “配置 儲存空間時,並不是以資料區塊為單位,而是改採延伸區塊的方式來配置空間。它是由許多連續的 blocks所組成。一個

36、Extent的相關資訊,僅能存在於同一個Data file中。50第五十页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)好處:減少資料庫的動作假定您準備在Oracle 資料庫內存放80 KB 的資料:當執行DDL指令建立資料庫物件時 (例如: CREATE TABLE ),Oracle會先配置出 (即: Extent),其大小可為單一Block (假設 8KB) 的5倍。當這些資料區塊全部存滿資料後,視實際需要再配置 (大小還是40KB)。只要就可以存放80KB 的資料。如果Oracle 每次只配置8KB 的Block讓您存放資料,總共需要空間配置動作才能放滿80 KB

37、的資料,比較沒有效率由此可見,Extent的確有其存在的必要性。51第五十一页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)Segment是僅次於Tablespace的邏輯空間單位。依照不同的資料處理性質,您可能需要在表空間內劃分出不同Segment,以存放不同資料。依其儲存、管理資料型態的不同,可大致分為:52第五十二页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)從Oracle資料庫的邏輯層面來看,我們知道:資料是存放在每個Block內,資料讀寫動作也將以為單位。的動作則是引用的概念。一個Extent由一連串的Blocks所構成。依實際資料量多寡

38、,資料 (或資料庫物件) 由所組成。Tablespace內可劃分不同的Segment;而每個Segment內又包含許多Extents。在每個Oracle資料庫內可規劃不同的Tablespace,用以存放不同型態的資料。53第五十三页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)Oracle Server實體結構概觀圖如下:整個Oracle Database的實體結構,主要由三大部份所組成:其它、則是關於Oracle Server Security 及資料庫啟動設定檔則與Database Recovery息息相關Control filesData files Archive

39、d log filesParameterfilePasswordfileRedo log files54第五十四页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)資料庫的啟動順序如下:55第五十五页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰) Password File 是由 DBA 建立的,儲存那些可以管理 Oracle 的登入密碼。可以用一個叫做 的工具建立它。 ORAPWD 需要輸入三個參數: - 這是 Password File 的儲存地方。 - 密碼,留意這個密碼也會同時成為 SYS 的密碼,如果之後您用 SYS 登入,發出 ALTER U

40、SER 的變更密碼指令,那就會同時變更 Password File 和 SYS 的密碼。 - 設定 Password File 有多少個用戶,即該資料庫最多可擁有多少個Administrators 。如果之後要增加這個數目,就要先把 Password File 刪除,然後再建立,這個動作是有風險的。 56第五十六页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)啟動Oracle Server時,Oracle Server會先配置一塊記憶體空間,供Oracle Instance及Background processes使用。在這之前,Oracle Server會先,做為配置記

41、憶體空間與Background processes時的設定值。Parameter file是一個,一般均是使用文字編輯器編輯該檔,修改Oracle Instance的設定值。前兩部份提及的許多參數,如:DB_BLOCK_BUFFERS、LOG_BUFFER、SHARED_POOL_SIZE等,均可以在Parameter file中設定。參數名稱,只是一般而言,均是以為主。在改變Parameter file的相關設定時,要,所做的改變才能反映在系統中。 57第五十七页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)有關Parameter file的Initialization

42、 parameters,依其使用時機、方式,大致可歸納成以下幾類:指定,如指定Database Control File的相關資訊。 設定,如設定Database Checkpoint的時間間隔。 指定,如設定Database Buffer Cache記憶空間的大小。這類參數又稱為Variable Parameter。58第五十八页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)起始參數檔包含以下主要內容:SGA相關的組態設定其他各起始參數之名稱與設定值Control File的名稱與存放路徑Redo Log File之相關設定59第五十九页,共七十四页。國立聯合大學 資訊

43、管理學系 資料庫系統課程 (陳士杰)一個Oracle Database至少要有一個Control file,記載著用來對,如: Database name。 Data files、Redo log files的名稱與所在位置。 Database建立的Time stamp。 每當資料庫被啟動時,Oracle 會在Instance啟動後立刻讀取Control File內容,待所有都收集完畢,資料庫才會被開啟。60第六十页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)Control file掌控著所有Oracle Database實體檔案結構的相關資訊,新增、刪除、修改Data

44、 files或Redo log files,Oracle Server均會自動維護Control file的內容資訊。 為了防止控制檔毀損導致資料庫系統停擺,建議在實務應用上至少配置兩個Control File,存放在不同實體硬碟,並以mirror (映射) 的方式,提供資料庫備援的機制。61第六十一页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)Parameter file也有類似的系統資訊DB_NAME。Parameter file主要是給Oracle Instance看的,透過CONTROL_FILES 的指定,讓Instance記憶體與Database實體的檔案結

45、構能夠彼此結合,提供資料庫的相關服務。因此,Parameter file必 須要搭配適當的Control file,否則將造成系統不可預期的錯誤。 62第六十二页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰) Data Files包含在資料庫中的實際資料 (Actual Data)。一個Oracle Database至少會有一個以上的Data file來存放資料。 資料庫的資料大致上可以分為兩類:資料庫邏輯結構資訊資料字典資料字典包含資料庫邏輯結構的配置資訊,諸如Tables、Columns、Indexes、Tablespaces 等。使用者資料63第六十三页,共七十四页

46、。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)一般說來,Data file有以下幾個特點: 一個Data file僅能對應一個Tablespace。 Data file有其屬性設定的集合如Auto-extend的設定: 當Data file的容量缺乏時,Oracle Server會自 動配置一額外的空間供其使用。 一個Tablespace可包含一或多個Data file 一個Segment只能存在於同一個Tablespace中;而一個Tablespace可能包含一個以上的Data file,因此,Segment是得以展延 (Span) 在其Tablespace所屬的Data file

47、內。 64第六十四页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)65第六十五页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)Data file雖然是Oracle Server用來存放大量資料的實體檔案結構,但它並不是以直接存取Data file的模式,達成資料存取的目的,它是以的機制,間接存取Data file,以提高系統的。讀取資料時,它會先將Data file的資料載入至,使用者實際上是經由Database buffer cache中讀取資料的。寫入資料時,也是先對Database buffer cache做寫入的動作,再經由DBWRn在適當的

48、時機 下,寫回至Data file。 66第六十六页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰) Redo log file也就是大家俗稱的交易日誌 (Transaction log)。負責記錄資料庫內任何資料處理的情況 (即所有的異動情形,如:新增、修改、刪除,查詢動作除外)。當資料被異動時,所有異動紀錄會先保存在記憶體的Redo log buffer,並在適當時機由LGWR這個Background process寫入至硬碟上的Redo log file。它主要的功能是當資料庫毀損時,提供資料庫回復的相關資訊,這個動作又稱為 Roll Forward。 67第六十七页

49、,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)與Control file不同的是,Control file記錄的是資料庫實體檔案結構,而Redo log file則是記錄著每一筆資料庫的異動資訊。由交替使用,當其中一個Redo log file的空間被使用完後,Oracle Server會自動swap到另一個Redo log file,此動作稱為。 在一個大型線上交易(OLTP)系統下,如果資料交易量十分頻繁,建議不妨配置重置日誌檔。68第六十八页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)需特別注意的是,所有的Redo log file均是交替使

50、用的。因此,假設系統上有二個Redo log file:當第一個Redo log file的儲存空間已滿時,Oracle Server會自動swap到第二個Redo log file。當第二個Redo log file也滿了,Oracle Server 會自動再swap到第一個Redo log file,先前記錄在第一個Redo log file的異動記錄就會被。以的方式重覆使用。這時,就會發生系統回復的盲點: 先前的異動記錄被覆蓋掉了。關於這點,Oracle Server提供另外一個機制 ,相對於 redo log file, archived log files可以提供更好的資料庫回復機制

51、。 69第六十九页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰) 又稱 Archived log file對Oracle Database而言,是屬於Optional (非必要) 的選項,主要是提供資料庫及的機制。Oracle Database提供兩種控制Redo log file的模式如下:Redo log file在被重覆使用之前,會先存放至Archived log files。 :Redo log file不會有任何Archive的額外動作。70第七十页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)Oracle Database中實體資料庫結構

52、與邏輯資料庫結構之間的關係:71第七十一页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)事實上,Oracle Database中的邏輯資料庫結構與其實體資料庫結構中的Data file存在著較大的依存關係,因為:除了Data file與資料庫中的資料物件有較大的關係外,其他諸如Password file、Control file、Redo log file、Archived redo log file等,均是用以提供資料庫系統的平安性、一致性以及回復性的應用上。 72第七十二页,共七十四页。國立聯合大學 資訊管理學系 資料庫系統課程 (陳士杰)演讲完毕,谢谢观看!第七十三页,共七十四页。内容总结Oracle 系統架構根本概念。我們可以透過設定DB_BLOCK_BUFFERS這個參數值來設定Database Buffer Cache的大小。由於Database Buffer Cache關係著Oracle Server的I/O動作頻繁與否,因此如何管理及設定Database Buffer Cache的大小,對於Oracle Server的效能調校,是相當重要的一項課題第七十四页,共七十四页。


文档来源:https://www.renrendoc.com/paper/212487271.html

文档标签:

下载地址