版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Oracle 系統(tǒng)架構(gòu)基本概念 1 Outline Oracle 系統(tǒng)架構(gòu)概觀Overview Oracle Instance Oracle Database Other Processes 漫談Oracle Instance 記憶體結(jié)構(gòu)Background Processes 漫談Oracle Database StructuresPhysical Database StructuresLogical Database Structures2Oracle 系統(tǒng)架構(gòu)概觀關(guān)於Oracle系統(tǒng)架構(gòu),是非常重要的基礎(chǔ)觀念,正所謂君子務(wù)本,本立而道生,有了踏實(shí)的基礎(chǔ)觀念之後,才能在往後學(xué)習(xí)Oracle
2、的路上,無往不利3電腦系統(tǒng) Overview Oracle Server主要是由Oracle Instance與Database所組成,透過Server Process與User Process之間的交互運(yùn)作,藉以達(dá)成使用者交付執(zhí)行的工作。 Oracle ServerOracle Instance DatabaseUser ProcessesServer ProcessesPGA Query4例如,使用者可能想要在Oracle Server上查詢一筆人事資料,使用者將相關(guān)的SQL敘述輸入系統(tǒng)中,此時(shí)系統(tǒng)會(huì)產(chǎn)生相對(duì)應(yīng)的User Process與Server Process,由Server Pro
3、cess負(fù)責(zé)向Oracle Server溝通,並將符合使用者所需的資料,從Oracle Server送至User Process,以完成該使用者下達(dá)的request。5Oracle Instance (Oracle資料庫引擎)Oracle資料庫中的任何動(dòng)作都和它有關(guān),是Oracle DB的心臟地帶。Oracle Instance主要包含: background process (背景處理程序)是一群常駐的服務(wù)常式 (service routine),執(zhí)行I/O Process 與非Oracle Process 的監(jiān)控管理,針對(duì)目前的使用者所提出的request執(zhí)行一些一般性的工作。每一個(gè)Pro
4、cess專責(zé)於一至兩項(xiàng)的工作System Global Area (SGA; 系統(tǒng)全域區(qū))用來存放資料庫系統(tǒng)相關(guān)資訊的一塊共享記憶體資料區(qū)域,讓background process得以利用這些系統(tǒng)資訊,以提供適當(dāng)?shù)姆?wù),處理外部的user request 。 6由於Oracle Instance掌控著處理Oracle Database所有運(yùn)作的相關(guān)資訊。因此,當(dāng)要存取或操作Oracle Database裏的資料時(shí),必須先啟動(dòng)Oracle Instance,才能對(duì)Oracle Database的內(nèi)容加以處理 。 當(dāng)Oracle Instance啟動(dòng)時(shí),電腦系統(tǒng)會(huì)先配置一塊記憶體空間給SGA (S
5、ystem Global Area),並且載入相關(guān)的background process。 7Oracle Database Oracle Database可分為兩個(gè)部份來說明:實(shí)體結(jié)構(gòu)邏輯結(jié)構(gòu) 8實(shí)體結(jié)構(gòu)Oracle Database的實(shí)體結(jié)構(gòu)部份是由一個(gè)個(gè)的檔案所組合,主要的檔案包括Data files (資料檔)Redo Log files (重置日誌檔) - onlineControl files (控制檔)另外尚有:Password file (密碼檔)Parameter file (起始參數(shù)檔)Archived Redo Log files (重置日誌封存檔) - offline9
6、Control filesData files Archived log filesParameterfilePasswordfileRedo log filesDatabase10邏輯結(jié)構(gòu)Oracle Database的邏輯結(jié)構(gòu)部份,主要有Tablespace (表格空間)Segment (區(qū)段)Extent (延伸區(qū)塊)Block (區(qū)塊)11Other Processes 不屬於Oracle Instance內(nèi)的Process皆稱為Other Process。是User和應(yīng)用程式要連接Oracle DB Server的重要橋樑。如User Process、Server Process等主
7、要是反應(yīng)使用者下達(dá)的request (即SQL敘述),將其轉(zhuǎn)化為Oracle Server能看得懂的相關(guān)指令,從Oracle Database裏抓取資料,以反映使用者需求的資料。在Server Process中還有一個(gè)相當(dāng)重要的資料結(jié)構(gòu)PGA(Program Global Area):PGA是一個(gè)memory buffer,存放相關(guān)Server Process的資料與控制資訊。當(dāng)Server Process被呼叫啟動(dòng)後,Oracle Server會(huì)為其建立一個(gè)所屬的PGA,使用者下達(dá)的SQL敘述,就是存放在這裏的。 12漫談Oracle Instance13第一部份我們?cè)劦剿^的Oracle
8、 Instance可分為:SGA(System Global Area)Background Processes 兩部份,並做了概略的說明?,F(xiàn)在就分別針對(duì)SGA與Background Processes做更完整深入的說明。 14 記憶體結(jié)構(gòu)SGA是Oracle Server在系統(tǒng)上所建立的一塊記憶體區(qū)塊,Oracle Server利用這塊記憶體結(jié)構(gòu),協(xié)同Oracle 的各種Processes來完成使用者所交付的工作。SGA主要是由幾種不同的資料區(qū)塊所組成Database Buffer CacheRedo Log BufferShared PoolLarge PoolJava Pool其它 (如
9、:Cursors等)SGADatabaseBufferCacheRedoLogBufferSharedPoolLargePoolJavaPoolOthers15Database Buffer Cache (資料庫緩衝快取區(qū))資料庫系統(tǒng)擷取資料時(shí)的一個(gè)快取空間,其用途在於有效減少存取資料時(shí)造成的磁碟讀寫動(dòng)作。(到硬碟從事I/O是很耗時(shí)的工作!)我們可以透過設(shè)定DB_BLOCK_BUFFERS這個(gè)參數(shù)值來設(shè)定Database Buffer Cache的大小。在Oracle的Database Buffer Cache中,尚有一些sub-caches:DB_CACHE_SIZEDB_KEEP_CACH
10、E_SIZEDB_RECYCLE_CACHE_SIZE我們可以透過DB_CACHE_ADVICE這個(gè)參數(shù),藉由statistics的方式來對(duì)不同的cache size做預(yù)設(shè)。指令:Alter system set db_cache_advice = on16Oracle用所謂的LRU (Least Recently Used) 演算法來管理這塊記憶體空間。LRU:當(dāng)這塊記憶體空間滿載時(shí),Oracle Server將只保留最近有被使用過的資料,最不常用的資料則寫回磁碟中,並將該資料所佔(zhàn)用的記憶體空間釋放出來。 由於Database Buffer Cache關(guān)係著Oracle Server的I/O
11、動(dòng)作頻繁與否,因此如何管理及設(shè)定Database Buffer Cache的大小,對(duì)於Oracle Server的效能調(diào)校,是相當(dāng)重要的一項(xiàng)課題。17Redo Log Buffer (重置日誌緩衝區(qū))當(dāng)資料庫的內(nèi)容有所異動(dòng)時(shí),Redo Log Buffer會(huì)記錄其相關(guān)異動(dòng)的情形:做了什麼改變改變後的舊資料與新資料經(jīng)過一定的時(shí)間週期或者是Redo Log Buffer滿載時(shí),Oracle Server會(huì)將Redo Log Buffer的內(nèi)容寫到Redo Log File裏,以追蹤整個(gè)資料庫的使用情形。當(dāng)Oracle Server不幸當(dāng)?shù)舻脑?,就能利用這些記錄下來的資訊,進(jìn)行資料庫的復(fù)原 (Rec
12、overy)。有關(guān)Redo Log Buffer的大小設(shè)定,可以透過設(shè)定參數(shù)LOG_BUFFER,改變Redo Log Buffer的大小。 18Shared Pool (共享區(qū))當(dāng)使用者將SQL、PL/SQL等操作指令送至Oracle資料庫後,系統(tǒng)會(huì)先解析 (Parse)語法是否正確。解析時(shí),下列兩項(xiàng)資料將會(huì)放入Shared Pool中:解析時(shí)所需要用到的相關(guān)資訊解析後的結(jié)果當(dāng)有不同的使用者執(zhí)行相同的SQL指令,就可以共用Shared Pool中解析好的結(jié)果,以加速SQL指令執(zhí)行的速度。Shared Pool內(nèi)包含數(shù)種不同的區(qū)域,主要有下列兩類:Data Dictionary Cache 存
13、放解析時(shí)所需要的相關(guān)資訊,以供查詢之用Library Cache 存放各類指令解析後的結(jié)果,以供重覆使用Shared Pool亦是採LRU的記憶體管理演算法。Shared Pool的大小設(shè)定,是由SHARED_POOL_SIZE這個(gè)參數(shù)來控制 19Large Pool (大型區(qū)) Large Pool是Oracle針對(duì)一些需要大量記憶體空間的資料庫處理與運(yùn)算工作所提供的一個(gè)額外選項(xiàng),它可以讓SGA配置一個(gè)較大的記憶體空間,提供給處理Oracle的backup/restore、I/O、執(zhí)行Oracle復(fù)原管理程式RMAN、 等。透過指定LARGE_POOL_SIZE這個(gè)參數(shù),設(shè)定Large Po
14、ol的大小。 20Java Pool (Java區(qū))當(dāng)使用者有使用Java時(shí),Oracle Server利用這塊記憶體空間,存放及Parse所使用的Java Code,藉以提供Oracle與Internet更高的整合性。透過指定JAVA_POOL_SIZE這個(gè)參數(shù),來改變Java Pool的大小 。21 Background Processes Oracle Server 所提供的Processes可分為兩類:Server Processes 用以服務(wù)Client Processes,根據(jù)Client Processes的需求,由Oracle Server動(dòng)態(tài)配置所產(chǎn)生的,用以服務(wù)Client
15、 Processes的需求 不被包含在Oracle Instance裏 在Server Processes裏,尚包含另一個(gè)重要的記憶體結(jié)構(gòu)PGA (Program Global Area),存放著Client Processes與Server Processes間的重要資訊 Background Processes用來管理Oracle Server所需的一些系統(tǒng)常式,諸如資料庫的I/O、Oracle Processes的管理等 包含於Oracle Instance中 22主要的Background Processes共有五個(gè),只要有這五個(gè)Background Processes,Oracle
16、Server就可以正常地運(yùn)作了,分別是: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)及Queue Monitor (QMNn) 等Background Processes,它們主要是提供Oracle Server更進(jìn)階的管理。如ARCH,它可以提供比LGWR更強(qiáng)的
17、資料庫回復(fù)能力。 23Database Writer (DBWR) DBWR 主要是負(fù)責(zé)管理Database Buffer Cache,將Database Buffer Cache中修改過的資料,整批寫入Data File裏,透過系統(tǒng)整批寫入的方式,可以提高整個(gè)系統(tǒng)的執(zhí)行效率。 當(dāng)使用者執(zhí)行 DML 指令修改相關(guān)資料欄位,並執(zhí)行commit指令時(shí),Oracle本身並不是直接將修改過的資料直接寫入Data File裏,而是當(dāng)Database Buffer Cache的內(nèi)容即將滿載或是經(jīng)過一定的時(shí)間區(qū)隔 (檢查點(diǎn) Checkpoint; CKPT),才將資料寫入Data File中。藉由減少相關(guān)的
18、I/O動(dòng)作,以提高系統(tǒng)執(zhí)行效能。使用write-ahead 的技術(shù) 24InstanceSGADatabase buffercacheDBWnControl filesData files Redo log filesDatabase25由於在大型線上交易 (OLTP) 系統(tǒng),其資料庫異動(dòng)情況可能十分頻繁。因此:一個(gè)Oracle Server可以有一個(gè)以上的DBWR Background Processes,可以依實(shí)際系統(tǒng)硬體與作業(yè)系統(tǒng)的特性,設(shè)定DB_WRITER_PROCESSES參數(shù)值,以獲得整個(gè)資料庫系統(tǒng)的最佳執(zhí)行效能。當(dāng)設(shè)定DB_WRITER_PROCESSES的內(nèi)容值後,系統(tǒng)上有關(guān)
19、DBWR的名稱將會(huì)變?yōu)镈BWn,n可為 09,如DBW0、DBW1、DBW2等。(系統(tǒng)預(yù)設(shè)只會(huì)啟動(dòng)一個(gè)DBWn,即DBW0)。然而,在單一處理器的伺服器系統(tǒng),配置額外的DBWn並無太多的實(shí)質(zhì)幫助。26Log Writer (LGWR)LGWR主要是負(fù)責(zé)將Redo Log Buffer 的內(nèi)容值,寫入online的Redo Log File中。 它與DBWR的運(yùn)作方式不同點(diǎn)在於:DBWR在Database Buffer Cache即將滿載或是經(jīng)過一定的時(shí)間區(qū)隔,才會(huì)將資料寫入Data File中,且是在有需要的時(shí)候才會(huì)對(duì)相關(guān)檔案做存取的動(dòng)作LGWR是在資料庫的內(nèi)容有異動(dòng)且已被確認(rèn) (commit
20、) 時(shí),如insert、update、delete等,就會(huì)被觸發(fā),將異動(dòng)的情形記錄到online Redo Log File中。因此,當(dāng)資料庫crash時(shí),就可以根據(jù)online Redo Log File內(nèi)容,對(duì)資料庫進(jìn)行還原的動(dòng)作。LGWR一樣可以透過設(shè)定LGWR_IO_SLAVES這個(gè)參數(shù)值,提供非同步I/O模式的功能。 27LGWR 之動(dòng)作時(shí)機(jī):當(dāng)使用者確認(rèn) (commit)某交易時(shí),LGWR會(huì)遵循Write-ahead Protocol (先期寫入?yún)f(xié)定),將Redo log butter內(nèi)的資料異動(dòng)記錄寫入。下列幾種情況:自動(dòng)週期性地動(dòng)作,如:間隔時(shí)間為3秒 (Checkpoint;
21、 CKPT)重置日誌緩衝區(qū)之剩餘空間不到2/3當(dāng)DBWn回寫資料檔時(shí),必要的時(shí)候LGWR也會(huì)動(dòng)作 (Write-ahead Protocol)28InstanceSGADBWnRedo logbufferControl filesData files Redo log filesLGWRDatabase29何謂 Write-ahead?在DBWn回寫資料至Data File之前,Redo Log Buffer內(nèi)相關(guān)資料都必須完成寫入動(dòng)作 (即寫入Redo Log File)。若DBWn發(fā)現(xiàn)某些重置紀(jì)錄尚未寫入Redo Log File時(shí),它會(huì)通知LGWR 前來處理。等到LGWR將Redo Lo
22、g Buffer的紀(jì)錄寫入完畢時(shí),DBWn才會(huì)開始寫入資料檔。30為何要把Redo Log File稱為 online Redo Log File?因?yàn)镺racle把Redo Log File分為兩部份:online Redo Log Filearchive Redo Log File這兩個(gè)都是負(fù)責(zé)記錄、追蹤整個(gè)資料庫的異動(dòng)情形。不同的是,archive Redo Log File是online Redo Log File的備份資料檔,由另一個(gè)Background Process Archiver (ARCH)負(fù)責(zé)管理。在預(yù)設(shè)的情況下,ARCH是不會(huì)啟動(dòng)的,而是由LGWR記錄資料庫的異動(dòng)情形,
23、將這些記錄資料寫到online Redo Log File裏。如果Oracle Server不幸掛了,此時(shí)的資料庫僅能復(fù)原online Redo Log File裏有記錄的資料。可是,其他的呢?這時(shí)候就要靠ARCH將online Redo Log File備份出來。31System Monitor (SMON) 如果是因?yàn)橥k娀蚴瞧渌蛩貙?dǎo)致Oracle資料庫不正常被關(guān)閉, 下一次啟動(dòng)資料庫時(shí)將由SMON進(jìn)行必要的資料庫修復(fù)動(dòng)作。主要的工作有:執(zhí)行一些資料庫必要的修復(fù)工作 (如果有需要的話,SMON會(huì)使用online Redo Log File的內(nèi)容)。定時(shí)清除資料庫系統(tǒng)中一些不必要的殘餘物件
24、,例如上次系統(tǒng)交易進(jìn)行一半的資料或暫時(shí)性區(qū)間。執(zhí)行整個(gè)系統(tǒng)儲(chǔ)存空間的管理,對(duì)於Tablespace上破碎的Extent,它會(huì)將這些較小的Extents予以合併,整理出一個(gè)較大的空間,以供系統(tǒng)日後的使用。 32InstanceSGASMONControl filesData files Redo log filesInstanceSGASMONDatabase33Process Monitor (PMON)當(dāng)某個(gè)User Process異常中止時(shí),PMON會(huì)執(zhí)行程序修復(fù) (Process Recovery)的動(dòng)作,就是把已經(jīng)失效的User Processes給趕出記憶體,並釋放該記憶體空間,留待
25、系統(tǒng)日後使用釋放該P(yáng)rocess之前使用的系統(tǒng)資源,避免Deadlock發(fā)生。 PMON和SMON一樣,都是由Oracle資料庫系統(tǒng)週期性自動(dòng)執(zhí)行,檢查整個(gè)資料庫系統(tǒng)的運(yùn)作情形。 34InstanceSGAPMONPGA area35Checkpoint (CKPT)在一個(gè)指定的時(shí)間區(qū)間裏,DBWR會(huì)對(duì)所有在Database Buffer Cache所做的異動(dòng),將其結(jié)果寫入到相關(guān)的Data Files以及Redo Log Files、Control Files,這樣的動(dòng)作,就稱為產(chǎn)生 (設(shè)定) 一個(gè)checkpoint事件。CKPT Background Process就是扮演著一個(gè)通知者的角
26、色,經(jīng)過一定的時(shí)間後,負(fù)責(zé)通知 DBWR 執(zhí)行Checkpoint的動(dòng)作。 CKPT會(huì)在適常時(shí)候產(chǎn)生一個(gè)Checkpoint事件,其意義為:確保Database Buffer Cache內(nèi)經(jīng)常被異動(dòng)的資料也能夠定期被寫入硬碟的Data File。(LRU演算法)萬一Oracle需要進(jìn)行Instance Recovery時(shí),就不需要Checkpoint之前的Redo record,可縮短資料庫動(dòng)新啟動(dòng)的時(shí)間。36InstanceSGADWW0Redo LogBufferLGWRInstanceSGADBWnLGWRCKPTControl filesData files Redo log file
27、s37執(zhí)行Checkpoint的時(shí)間區(qū)間,可以透過設(shè)定LOG_CHECKPOINT_INTERVAL這個(gè)參數(shù),改變checkpoint的區(qū)間。然而,在設(shè)定LOG_CHECKPOINT_INTERVAL時(shí),要注意的是:這個(gè)值設(shè)得太小的話,會(huì)造成系統(tǒng)額外I/O的負(fù)擔(dān)設(shè)得太大,超過online Redo Log File swap的時(shí)間時(shí),LOG_CHECKPOINT_INTERVAL的值又會(huì)變得沒有意義因?yàn)镺racle會(huì)在swap online Redo Log File時(shí),做一次checkpoint的動(dòng)作。 38 Summary縱觀以上的說明,現(xiàn)在我們可以勾勒出整個(gè)Oracle Instance
28、的整個(gè)架構(gòu)圖:系統(tǒng)記憶體大致上的配置情形有Database Buffer Cache、Redo Log Buffer、Shared Pool、Large Pool、Java Pool等。在Background Processes部份,計(jì)有DBWR、LGWR、SMON、PMON、CKPT等。 Background structuresMemory structuresSGARedo logbufferDatabase buffer cacheShared poolDBWRSMONPMONCKPTLGWROthersData DictionarycacheLibrarycacheInstance3
29、9InstanceSGARedo logbuffer cacheShared poolData Dict.cacheLibrarycacheDBWRSMONPMONCKPTLGWROthersUserprocessServerprocessPGAControl filesData files Archived log filesParameterfilePasswordfileRedo log filesDatabaseDatabasebuffer cache40漫談Oracle Database Structures41第一部份曾談到所謂的Oracle Database可分為:邏輯結(jié)構(gòu)實(shí)體結(jié)
30、構(gòu) 兩部份,並做了概略的說明。如果您有心成為一個(gè)頂尖的Oracle DBA ,那麼不僅要對(duì)以上兩結(jié)構(gòu)內(nèi)的各個(gè)項(xiàng)目如數(shù)家珍般熟悉,還要瞭解其內(nèi)部運(yùn)作與相互關(guān)係才行。現(xiàn)在就分別針對(duì)這兩部份做深入的說明。 42 邏輯結(jié)構(gòu) (Logical Database Structures )邏輯資料庫結(jié)構(gòu)是Oracle所提供的一種抽象化的資料庫管理概念,透過一個(gè)Mapping的機(jī)制,管理Oracle Physical Database Structures。 由外至內(nèi),我們可以看到:整個(gè)Database是由一個(gè)以上的Tablespace (表空間) 組成;每個(gè)Tablespace存在著許多的Segment (
31、區(qū)段);每個(gè)Segment內(nèi)含許多的Extent (延伸區(qū)塊);最後,則是構(gòu)成整個(gè)Oracle Database的最小邏輯單位block (區(qū)塊)。 4344Tablespace (表空間) Oracle 資料庫允許DBA 自行規(guī)劃各種用途的資料表空間(Tablespace),以便存放不同型態(tài)的資料與資料庫物件。例如:存放Oracle系統(tǒng)資訊的資料辭典(data dictionary)可放在 SYSTEM 表空間;使用者所存放的相關(guān)資料可存放在 USER 表空間;所有資料表的索引(Index)則可單獨(dú)存放在INDX 表空間。SYSTEM為Oracle資料庫預(yù)設(shè)的表空間;USER 與INDX 則
32、是由DBA 自行規(guī)劃建置的。45一般來說,Oracle資料庫至少應(yīng)規(guī)劃出五個(gè)以上的資料表空間,如下圖所示:46Oracle Server其他相關(guān)的邏輯結(jié)構(gòu),均是經(jīng)由Tablespace做統(tǒng)一集中的管理。Tablespace依其可存取的狀態(tài),分為兩種狀態(tài):on-line (在線)off-line (離線)再以其可存取的模式區(qū)分,可分為兩種式read-only (唯讀)read-write (讀寫)透過其存取狀態(tài)的控制以及存取模式的切換,將可使整個(gè)資料庫的管理更為方便。 47Tablespace的特性 Oracle Database是由數(shù)個(gè)Tablespace所構(gòu)成。 一個(gè)Tablespace在同
33、一時(shí)間點(diǎn)上,僅能類歸於一個(gè)Database。即,Database與Tablespace之間的關(guān)係,是呈現(xiàn)一對(duì)多的關(guān)係。 除了SYSTEM Tablespace與存在作用中 (active) 的Rollback Segment的Tablespace外,其餘的Tablespace均可在Database尚在執(zhí)行的時(shí)候,將其選擇性的off-line或on-line,以利資料庫的管理。 Tablespace能夠隨意切換其存取模式read-only及read-write模式。48Block (區(qū)塊)Oracle Database邏輯空間概念中最小的邏輯空間單位,有關(guān)Oracle Server對(duì)儲(chǔ)存空間所執(zhí)
34、行的配置(allocate)、讀取 (read) 及寫入 (write),均是以此為單位,進(jìn)行資料庫的種種操作。且在新建Oracle 資料庫時(shí)就必須明確地定義。Oracle的區(qū)塊大小通常是數(shù)倍於 “作業(yè)系統(tǒng)的磁碟讀寫區(qū)塊”(O.S. blocks) 表示, Oracle在存取資料時(shí)是以自身的 block為最小讀取單位,而不是以O(shè).S. block 為單位。它的參數(shù)設(shè)定透過參數(shù)DB_BLOCK_SIZE設(shè)定之。必須將 DB_BLOCK_SIZE 設(shè)定為 O.S.blocks的整數(shù)倍。49Extent (延伸區(qū)塊)雖然資料區(qū)塊是Oracle最小的資料讀寫單位,但值得注意的是:Oracle在 “配置
35、” 儲(chǔ)存空間時(shí),並不是以資料區(qū)塊為單位,而是改採延伸區(qū)塊的方式來配置空間。它是由許多連續(xù)的 blocks所組成。一個(gè)Extent的相關(guān)資訊,僅能存在於同一個(gè)Data file中。50好處:減少資料庫空間配置的動(dòng)作假定您準(zhǔn)備在Oracle 資料庫內(nèi)存放80 KB 的資料:當(dāng)執(zhí)行DDL指令建立資料庫物件時(shí) (例如: CREATE TABLE ),Oracle會(huì)先配置出一連串的Blocks (即: Extent),其大小可為單一Block (假設(shè) 8KB) 的5倍。當(dāng)這些資料區(qū)塊全部存滿資料後,視實(shí)際需要再配置第二個(gè) Extent (大小還是40KB)。只要兩次的空間配置動(dòng)作就可以存放80KB 的資
36、料。反例如果Oracle 每次只配置8KB 的Block讓您存放資料,總共需要10 次空間配置動(dòng)作才能放滿80 KB 的資料,比較沒有效率由此可見,Extent的確有其存在的必要性。51Segment (區(qū)段) Segment是僅次於Tablespace的邏輯空間單位。依照不同的資料處理性質(zhì),您可能需要在表空間內(nèi)劃分出不同Segment,以存放不同資料。依其儲(chǔ)存、管理資料型態(tài)的不同,可大致分為:Data segment (資料區(qū)段)Index segment (索引區(qū)段)Temporary segment (暫時(shí)性區(qū)段)Rollback segment (退回區(qū)段)52從Oracle資料庫的邏
37、輯層面來看,我們知道:資料是存放在每個(gè)Block內(nèi),資料讀寫動(dòng)作也將以Block為單位??臻g配置的動(dòng)作則是引用Extent的概念。一個(gè)Extent由一連串的Blocks所構(gòu)成。依實(shí)際資料量多寡,資料 (或資料庫物件) 由多個(gè)Extent所組成。Tablespace內(nèi)可劃分不同的Segment;而每個(gè)Segment內(nèi)又包含許多Extents。在每個(gè)Oracle資料庫內(nèi)可規(guī)劃不同的Tablespace,用以存放不同型態(tài)的資料。53 實(shí)體結(jié)構(gòu) (Physical Database Structures )Oracle Server實(shí)體結(jié)構(gòu)概觀圖如下:整個(gè)Oracle Database的實(shí)體結(jié)構(gòu),主要
38、由三大部份所組成:Control filesData filesRedo log files其它Password file、Parameter file則是關(guān)於Oracle Server Security 及資料庫啟動(dòng)設(shè)定檔Archived log files則與Database Recovery息息相關(guān)Control filesData files Archived log filesParameterfilePasswordfileRedo log filesOracle Database54資料庫的啟動(dòng)順序如下:55Password file (密碼檔) Password File 是由
39、 DBA 建立的,儲(chǔ)存那些可以管理 Oracle 的登入密碼。可以用一個(gè)叫做 ORAPWD 的工具建立它。 ORAPWD 需要輸入三個(gè)參數(shù): FILE - 這是 Password File 的儲(chǔ)存地方。 PASSWORD - 密碼,留意這個(gè)密碼也會(huì)同時(shí)成為 SYS 的密碼,如果之後您用 SYS 登入,發(fā)出 ALTER USER 的變更密碼指令,那就會(huì)同時(shí)變更 Password File 和 SYS 的密碼。 ENTRIES - 設(shè)定 Password File 有多少個(gè)用戶,即該資料庫最多可擁有多少個(gè)Administrators 。如果之後要增加這個(gè)數(shù)目,就要先把 Password File
40、刪除,然後再建立,這個(gè)動(dòng)作是有風(fēng)險(xiǎn)的。 56Parameter file (參數(shù)檔) 啟動(dòng)Oracle Server時(shí),Oracle Server會(huì)先配置一塊記憶體空間,供Oracle Instance及Background processes使用。在這之前,Oracle Server會(huì)先讀取Parameter file內(nèi)的相關(guān)設(shè)定,做為配置記憶體空間與Background processes時(shí)的設(shè)定值。Parameter file是一個(gè)文字檔,一般均是使用文字編輯器編輯該檔,修改Oracle Instance的設(shè)定值。前兩部份提及的許多參數(shù),如:DB_BLOCK_BUFFERS、LOG_BU
41、FFER、SHARED_POOL_SIZE等,均可以在Parameter file中設(shè)定。參數(shù)名稱沒有大小寫之分,只是一般而言,均是以小寫字母為主。在改變Parameter file的相關(guān)設(shè)定時(shí),要重新啟動(dòng)Oracle的相關(guān)服務(wù),所做的改變才能反映在系統(tǒng)中。 57有關(guān)Parameter file的Initialization parameters,依其使用時(shí)機(jī)、方式,大致可歸納成以下幾類:指定檔案所在位址及名稱,如CONTROL_FILES指定Database Control File的相關(guān)資訊。 設(shè)定區(qū)間限制,如LOG_CHECKPOINT_INTERVAL設(shè)定Database Checkp
42、oint的時(shí)間間隔。 指定有效的容量大小,如DB_BLOCK_BUFFERS設(shè)定Database Buffer Cache記憶空間的大小。這類參數(shù)又稱為Variable Parameter。58起始參數(shù)檔包含以下主要內(nèi)容:SGA相關(guān)的組態(tài)設(shè)定其他各起始參數(shù)之名稱與設(shè)定值Control File的名稱與存放路徑Redo Log File之相關(guān)設(shè)定59Control file (控制檔) 一個(gè)Oracle Database至少要有一個(gè)Control file,記載著用來對(duì)整個(gè)Oracle Database實(shí)體結(jié)構(gòu)maintain 與verify的相關(guān)資訊,如: Database name。 Dat
43、a files、Redo log files的名稱與所在位置。 Database建立的Time stamp。 每當(dāng)資料庫被啟動(dòng)時(shí),Oracle 會(huì)在Instance啟動(dòng)後立刻讀取Control File內(nèi)容,待所有資料庫實(shí)體組成檔案之所在資訊都收集完畢,資料庫才會(huì)被開啟。60Control file掌控著所有Oracle Database實(shí)體檔案結(jié)構(gòu)的相關(guān)資訊,新增、刪除、修改Data files或Redo log files,Oracle Server均會(huì)自動(dòng)維護(hù)Control file的內(nèi)容資訊。 為了避免控制檔毀損導(dǎo)致資料庫系統(tǒng)停擺,建議在實(shí)務(wù)應(yīng)用上至少配置兩個(gè)Control File,
44、存放在不同實(shí)體硬碟,並以mirror (映射) 的方式,提供資料庫備援的機(jī)制。61Parameter file也有類似的系統(tǒng)資訊DB_NAME。Parameter file主要是給Oracle Instance看的,透過CONTROL_FILES 的指定,讓Instance(記憶體)與Database(實(shí)體的檔案結(jié)構(gòu))能夠彼此結(jié)合,提供資料庫的相關(guān)服務(wù)。因此,Parameter file必 須要搭配適當(dāng)?shù)腃ontrol file,否則將造成系統(tǒng)不可預(yù)期的錯(cuò)誤。 62Data file (資料檔) Data Files包含在資料庫中的實(shí)際資料 (Actual Data)。一個(gè)Oracle Dat
45、abase至少會(huì)有一個(gè)以上的Data file來存放資料。 資料庫的資料大致上可以分為兩類:資料庫邏輯結(jié)構(gòu)資訊(資料字典)資料字典包含資料庫邏輯結(jié)構(gòu)的配置資訊,諸如Tables、Columns、Indexes、Tablespaces 等。使用者資料63一般說來,Data file有以下幾個(gè)特點(diǎn): 一個(gè)Data file僅能對(duì)應(yīng)一個(gè)Tablespace。 Data file有其屬性設(shè)定的集合如Auto-extend的設(shè)定: 當(dāng)Data file的容量不足時(shí),Oracle Server會(huì)自 動(dòng)配置一額外的空間供其使用。 一個(gè)Tablespace可包含一或多個(gè)Data file 一個(gè)Segment只能存在於同一個(gè)Tablespace中;而一個(gè)Tablespace可能包含一個(gè)以上的Data file,因此,Segment是得以展延 (Span) 在其Tablespace所屬的Data file內(nèi)。 6465Data file雖然是Oracle Server用來存放大量資料的實(shí)體檔案結(jié)構(gòu),但它並不是以直接存取Data file的模式,達(dá)成資料存取的目的,它是以類似Buffer的機(jī)制,間接存取Data file,以提高系統(tǒng)的整體運(yùn)作效能。讀取資料時(shí),它會(huì)先將Data file的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年高空廣告安裝塔吊吊車租賃及廣告制作合同3篇
- 加強(qiáng)知識(shí)產(chǎn)權(quán)保護(hù)工作報(bào)告
- 2025年度智能設(shè)備關(guān)鍵部件采購合同范本3篇
- 2024除塵設(shè)備工程承包合同
- 2024年行政合同中行政主體特權(quán)行使的程序要求
- 新疆職業(yè)大學(xué)《建筑學(xué)專業(yè)英語》2023-2024學(xué)年第一學(xué)期期末試卷
- 重慶機(jī)電職業(yè)技術(shù)大學(xué)《普通生物學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024高端設(shè)備制造與維修合同
- 2025年度人才公寓購置合同書示例3篇
- 寧波財(cái)經(jīng)學(xué)院《病原生物學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 安全管理計(jì)劃指標(biāo)和指標(biāo)體系
- 倉庫物料盤點(diǎn)作業(yè)規(guī)范培訓(xùn)課件
- 無線網(wǎng)絡(luò)技術(shù)滿分期末大作業(yè)
- 2023無人機(jī)搭載紅外熱像設(shè)備檢測(cè)建筑外墻及屋面作業(yè)
- 《西游記》電子版閱讀-小學(xué)版
- 2021-2022學(xué)年北師大版六年級(jí)(上)數(shù)學(xué)寒假作業(yè)(一)
- 班組安全生產(chǎn)標(biāo)準(zhǔn)化管理手冊(cè)
- 攝影初級(jí)培訓(xùn)教程課件
- 幼兒園裝修合同
- GB/T 42615-2023在用電梯安全評(píng)估規(guī)范
- 2023年成都市生物畢業(yè)會(huì)考知識(shí)點(diǎn)含會(huì)考試題及答案
評(píng)論
0/150
提交評(píng)論