Oracle數(shù)據庫體系結構教學課程_第1頁
Oracle數(shù)據庫體系結構教學課程_第2頁
Oracle數(shù)據庫體系結構教學課程_第3頁
Oracle數(shù)據庫體系結構教學課程_第4頁
Oracle數(shù)據庫體系結構教學課程_第5頁
已閱讀5頁,還剩91頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第2章Oracle數(shù)據庫體系結構教師:陳玉明E-Mail:ymchen@1內容簡介本課主要講授Oracle10g體系結構適用于數(shù)據庫管理員(DBA)Oracle9i同樣適用2概要DBA的職責Oracle體系結構由內存結構、進程結構、存儲結構組成內存結構由SGA、PGA組成存儲結構由邏輯存儲、物理存儲組成進程結構由用戶進程和Oracle進程組成.3什么是DBA?數(shù)據庫管理員是一個或一組全面負責管理和控制數(shù)據庫系統(tǒng)的人員。

簡稱:DBA(DataBaseAdministrator)4DBA的主要職責了解ORACLE數(shù)據庫的體系結構負責數(shù)據庫管理系統(tǒng)的安裝和升級啟動和關閉數(shù)據庫管理和監(jiān)控數(shù)據庫用戶管理數(shù)據庫特權管理存儲空間建立數(shù)據庫后備和恢復數(shù)據庫5DBA與理論知識作為一名合格的DBA,必須深入地掌握Oracle10g數(shù)據庫的體系結構.在理論知識的指導下,才會使許多難以理解和掌握的操作變得容易.6Oracle工作原理客戶服務器服務器進程(PGA區(qū))用戶進程(SQL語句)Oracleserver數(shù)據庫系統(tǒng)處理過程示意7處理過程可以簡單的描述為:用戶在其機器上運行基于Oracle的應用程序(如:SQL*PLUS、PL/SQLDeveloper等),即啟動用戶進程.客戶機、服務器之間建立連接(Connect).服務器為用戶建立會話(Session),并為該會話建立一個PGA(ProgramGlobalArea,程序全局區(qū))以存儲與該會話相關的信息.在同一個連接中,不同的用戶有不同的會話.啟動服務進程,由該服務進程負責執(zhí)行該會話的各項任務.用戶進程發(fā)送SQL語句(select、update、commit….)服務器進程解析、編譯、執(zhí)行SQL語句,然后將結果寫入數(shù)據庫并返回結果給用戶進程。用戶進程接收返回的SQL執(zhí)行結果。在應用程序中顯示SQL執(zhí)行結果.Oracle工作原理客戶服務器服務器進程(PGA區(qū))用戶進程(SQL語句)Oracleserver8處理查詢用戶進程服務器進程解析StatementOKHandle執(zhí)行OKHandle提取ResultsSELECT*FROMempORDERBYename;9總體結構總體結構的三大部分10總體結構11總體結構其中:內存結構::包括SGA和PGA.使用內內存最多的的是SGA,同時也也是影響數(shù)數(shù)據庫性能能的最大參參數(shù).進程結構::包括前臺進進程、后臺臺進程.前前臺進程是是指服務進進程和用戶戶進程.前前臺進程是是根據實際際需要而運運行的,并并在需要結結束后立刻刻結束。后后臺進程是是指在Oracle數(shù)據庫啟啟動后,自自動啟動的的幾個操作作系統(tǒng)進程程.存儲結構::包括控制文文件、數(shù)據據結構、日日志文件等等操作系統(tǒng)統(tǒng)文件.12存儲結構Oracle數(shù)據庫庫的存儲結結構分為邏邏輯存儲結結構和物理理存儲結構構,這兩種種存儲結構構既相互獨獨立又相互互聯(lián)系.數(shù)據庫結構數(shù)據文件日志文件控制文件參數(shù)文件物理結構表空間段范圍數(shù)據庫塊邏輯結構13物理存儲結構構物理存儲結構構主要描述Oracle數(shù)據庫的外外部存儲結構構,即在操作作系統(tǒng)種如何何組織、管理理數(shù)據.因此,物理存存儲結構是和和操作系統(tǒng)平平臺有關的.14邏輯存儲結構構邏輯存儲結構構主要描述Oracle數(shù)據庫的內內部存儲結構構,即從技術術概念上描述述在Oracle數(shù)據庫庫種如何組織織、管理數(shù)據據.因此,邏輯存存儲結構是和和操作系統(tǒng)平平臺無關的,是由Oracle數(shù)據據庫創(chuàng)建和管管理的.15DBA注意DBA必須對對這兩種存儲儲結構有清晰晰的理解,并并且要清楚在在一個具體數(shù)數(shù)據庫應用系系統(tǒng)中,這兩兩種存儲結構構的具體對應應關系,否則則就不能進行行正常的管理理操作、數(shù)據據庫備份與恢恢復、性能優(yōu)優(yōu)化等。16存儲結構物理存儲結構構與邏輯存儲儲結構之間的的關系從物理上看,數(shù)據庫由控制文件、數(shù)數(shù)據文件、重重做日志文件件等操作系統(tǒng)文文件組成;從邏輯上來看看,數(shù)據庫是是由系統(tǒng)表空間、、用戶表空間間等組成。表空間是最大大的邏輯單位位,塊是最小小的邏輯單位位。邏輯存儲結構構中的塊最后后對應到操作作系統(tǒng)中的塊塊.17Oracle10g體體系結構--2.1物理結構構18Oracle數(shù)據庫物理理結構數(shù)據文件日志文件控制文件參數(shù)文件19數(shù)據文件(DataFile)是物理存儲Oracle數(shù)據庫數(shù)據據的文件。其其特點如下::每一個數(shù)據文文件只與一個個數(shù)據庫相聯(lián)聯(lián)系。數(shù)據文件一旦旦被建立則不不能修改其大大小。一個表空間可可包含一個或或多個數(shù)據文文件。一個數(shù)據文件件只能屬于一一個表空間.數(shù)據文件(DataFile)20重做日志文件件(RedoFile)重做日志文件件(RedoLogFile)記錄所有對數(shù)數(shù)據庫數(shù)據的的修改,以備備恢復數(shù)據時時使用。其特特點如下:每一個數(shù)據庫庫至少包含兩兩個日志文件件組。日志文件組以以循環(huán)方式進進行寫操作。。每一個日志文文件成員對應應一個物理文文件。21日志切換(LogSwitch)日志切換(LogSwitch)是為實現(xiàn)日志志文件組的循循環(huán)使用而設設置的。出現(xiàn)現(xiàn)日志開關的的情況如下::當一個日志文文件組被填滿滿時關閉數(shù)據庫時時DBA手動切切換日志22日志文件寫操操作LogFile1LogFile2Group1Group2Member2.1Member1.123鏡像日志文件件鏡像日志文件件是為防止日志志文件的丟失失,在不同磁磁盤上同時維維護兩個或多多個聯(lián)機日志志文件的副本本。其特點如下::每個日志文件件組至少包含含兩個日志文文件成員。每組的成員數(shù)數(shù)目相同。同組的所有成成員同時被修修改。同組的成員大大小相同,不不同組的成員員大小可不同同.24鏡像日志文件件操作Group1Group2LogFile1LogFile2Member2.1Member1.1LogFile3LogFile4Member2.2Member1.2Disk1Disk225控制文件控制文件(ControlFile)是一個較小的的二進制文件件,用于描述述數(shù)據庫結構構。描述信息如下下:數(shù)據庫建立的的日期。數(shù)據庫名。數(shù)據庫中所有有數(shù)據文件和和日志文件的的文件名及路路徑?;謴蛿?shù)據庫時時所需的同步步信息。要點注意:在打開和存取取數(shù)據庫時都都要訪問該文文件。鏡像控制文件件。記錄控制文件件名及路徑的的參數(shù)為:CONTROL_FILES26參數(shù)文件參數(shù)文件(ParameterFile)是一個文本文文件,可直接接使用操作系系統(tǒng)下的文本本編輯器對其其內容進行修修改。該文件件只在建立數(shù)數(shù)據庫或啟動動實例時才被被訪問,在修修改該文件之之前必須關閉閉實例。初始參數(shù)文件件:init.ora生成參數(shù)文件件:initSID.oraconfig.ora位于OracleHome下,如::C:\oracle\admin\TestDB\pfile27參數(shù)文件的作作用參數(shù)文件的作作用:確定存儲結構構的大小。設置數(shù)據庫的的全部缺省值值。設置數(shù)據庫的的范圍。設置數(shù)據庫的的各種物理屬屬性。優(yōu)化數(shù)據庫性性能。28參數(shù)文件的數(shù)數(shù)據類型參數(shù)文件中參參數(shù)的數(shù)據類類型:整型例:DB_BLOCK_SIZE=2048字符型例:DB_NAME=‘‘ora9’’邏輯型例:CHECKPOINT_PROCESS=true29Oracle10g體體系結構--2.2邏邏輯結構30Oralce的邏輯結構構組成Oracle的邏輯結構構是由一個或多多個表空間組組成。一個表空間(tablespace)由一組段段組成一個段(segment)由一組區(qū)區(qū)組成一個區(qū)(extent)由一批數(shù)據據庫塊組成一個數(shù)據庫塊塊(block)對應一一個或多個物物理塊31邏輯結構示意意圖TablespaceDatabaseBlocksExtent84KSegment112KDatabaseDataFile表空間段區(qū)塊32數(shù)據庫塊(Block)數(shù)據庫塊(DatabaseBlock)是數(shù)據庫使用用的I/O最最小單元,又又稱邏輯塊或或ORACLE塊。一個數(shù)數(shù)據庫庫塊對對應一一個或或多個個物理理塊,,塊的的大小小由參參數(shù)DB_BLOCK_SIZE確定。。33數(shù)據庫庫塊(Block)塊的大大小是是操作作系統(tǒng)統(tǒng)塊大大小的的整數(shù)數(shù)倍.以Win2K為為例,操作作系統(tǒng)統(tǒng)塊(OSblock)的的大小小為4kb,所所以OracleBlock的的大小小可以以是4kb,8kb,16kb等等等。。如果塊塊的大大小為為4kb,,某表表每行行的數(shù)數(shù)據是是100bytes.,如如果某某查詢詢語句句只返返回1行數(shù)數(shù)據,那么么,在在將數(shù)數(shù)據讀讀入到到數(shù)據據高速速緩存存時,讀取取的數(shù)數(shù)據量量時4kb而不不是100bytes.34區(qū)(extent)區(qū)(Extent)是數(shù)據據庫存存儲空空間分分配的的邏輯輯單位位,一一個區(qū)區(qū)由一一組數(shù)數(shù)據庫庫塊組組成,,區(qū)是是由段段分配配的,,分配配的第第一個個區(qū)稱稱初始區(qū)區(qū),以后后分配配的區(qū)區(qū)稱增量區(qū)區(qū)。35段(segment)段(Segment)是表空空間中中一個個指定定類型型的邏邏輯存存儲結結構,,它由由一個個或多多個區(qū)組成,段將將占用用并增增長存存儲空空間。。36段的分分類引導段(BootstrapSegment)存儲數(shù)據字典表的定義段的分分類回滾段(RollbackSegment)存儲修改之前的位置和值索引段(IndexSegment)存儲表上最佳查詢的所有索引數(shù)據臨時段(TemporarySegment)存儲表排序操作期間建立的臨時表的數(shù)據數(shù)據(表)段(DataSegment)存儲表中的所有數(shù)據37表空間間(tablespace)表空間間是最最大的的邏輯輯單位位,對應一一個或或多個個數(shù)據據文件件,表表空間間的大大小是是它所所對應應的數(shù)數(shù)據文文件大大小的的總和和。38表空間間與數(shù)數(shù)據庫庫之間間的關關系數(shù)據庫庫、表表空間間、數(shù)數(shù)據文文件、、方案案對象象(schemaobject)之之間的的關系系39Oracle10g創(chuàng)創(chuàng)建的的表空空間Oracle10g自自動創(chuàng)創(chuàng)建的的表空空間有有:Example(實實例表表空間間)Sysaux(輔助助系統(tǒng)統(tǒng)表空空間)System(系統(tǒng)統(tǒng)表空空間)Temp(臨時時表空空間)Undotbs(重重做表表空間間)Users(用用戶的的表空空間)40SYSTEM(系統(tǒng)統(tǒng))表表空間間System:系系統(tǒng)統(tǒng)表空空間,存放放關于于表空空間的的名稱稱、控控制文文件、、數(shù)據據文件件等管管理信信息,,是最最重要要的表表空間間.它屬于于Sys、、System兩個個schema(方方案),僅僅被這這兩個個或其其他具具有足足夠權權限的的用戶戶使用用。但是均均不可可刪除除或者者重命命名System表表空間間.41其他表表空間間Temp:臨臨時表表空間間存放放臨時時表和和臨時時數(shù)據據,用用于排排序。。Users:用用戶戶表空空間,,永久久存放放用戶戶對象象和私私有信信息,,也被被成為為數(shù)據據表空空間。。Sysaux:輔助助系統(tǒng)統(tǒng)表空空間,,用于于減少少系統(tǒng)統(tǒng)負荷荷,提提高系系統(tǒng)的的作業(yè)業(yè)效率率.一般地地:系系統(tǒng)用用戶使使用system表表空間間,非非系統(tǒng)統(tǒng)用戶戶使用用Users表表空間間42Oracle10g體體系結結構--2.3軟軟件結結構43例程(instance)Oracle數(shù)數(shù)據庫庫結構構又稱稱為例例程結結構.數(shù)據庫庫啟動動時::Oracle首首先要要在內內存中中獲取取、劃劃分、、保留留各種種用途途的區(qū)區(qū)域,運行行各種種用途途的后后臺,即::創(chuàng)建建一個個例程程(instance);然后由由該例例程裝裝載(mount)、打打開(open)數(shù)數(shù)據庫庫;最后由由這個個例程程來訪訪問和和控制制數(shù)據據庫的的各種種物理理結構構44例程(instance)如果把把Oracle數(shù)據據庫比比作一一部汽汽車,,instance相當當于汽汽車的的發(fā)動動機一一樣,啟動動oracle數(shù)據據庫前前提應應先啟啟動instance.45例程(instance)當用戶戶連接接到數(shù)數(shù)據庫庫并使使用數(shù)數(shù)據庫庫時,,實際際上是是連接接到該該數(shù)據據庫的的例程程,通通過例例程來來連接接、使使用數(shù)數(shù)據庫庫。所以例例程是是用戶戶和數(shù)數(shù)據庫庫之間間的中中間層層。例程與與數(shù)據據庫的的區(qū)別別:數(shù)據庫庫指的的是存存儲數(shù)數(shù)據的的物理理結構構,總總是實實際存存在的的;例程則則是由由內存存結構構和一一系列列進程程組成成,可可以啟啟動和和關閉閉。46OracleInstance的組組成實例(INSTANCE))是存取取和控控制數(shù)數(shù)據庫庫的軟軟件機機制,,它由由系統(tǒng)統(tǒng)全局局區(qū)((SystemGlobalArea,,簡稱稱SGA))和后后臺進進程組組成。。后臺進程實例SGA數(shù)據高速緩緩存共享池池日志高速緩緩存47軟件結結構內存結結構進程結結構內存結結構和進程結結構共同組組成了了軟件件結構構48內存結結構內存結結構是是Oracle數(shù)據據庫體體系中中最為為重要要的一一部分分,內內存也也是影影響數(shù)數(shù)據庫庫性能能的第第一因因素.按照內內存的的使用用方法法的不不同,Oracle數(shù)據據庫的的內存存又可可以分分為SGA(SysteGlobalArea)和和PGA(ProgramGlobalArea).49系統(tǒng)全全局區(qū)區(qū)(SGA)SGA是ORACLE系統(tǒng)統(tǒng)為實實例分分配的的一組組共享享緩沖沖存儲儲區(qū),,用于于存放放數(shù)據據庫數(shù)數(shù)據和和控制制信息息,以以實現(xiàn)現(xiàn)對數(shù)數(shù)據庫庫數(shù)據據的管管理和和操作作。每個例例程都都只有有一個個SGA.它是不不同用用戶進進程與與服務務進程程進行行通信信的中中心,數(shù)據據庫的的各種種操作作主要要在SGA中進進行,所以以稱其其為系系統(tǒng)全全局區(qū)區(qū).創(chuàng)建例例程時時,Oracle為為SGA分分配內內存;終止例例程時時,釋釋放SGA所占占用的的內存存.50系統(tǒng)全全局區(qū)區(qū)(SGA)系統(tǒng)全全局區(qū)區(qū)由以以下幾幾個部部分組組成::51數(shù)據高高速緩緩存(DatabaseBufferCache)保存最最近從從數(shù)據據文件件中讀讀取的的數(shù)據據塊,其中中的數(shù)數(shù)據被被所有有用戶戶共享享.兩個參參數(shù)影影響DBC:DB_BLOCK_SIZE緩緩沖沖區(qū)數(shù)數(shù)據塊塊大小小DB_BLOCK_BUFFERS緩緩沖區(qū)區(qū)數(shù)據據塊個個數(shù)52初次訪訪問數(shù)數(shù)據時時,Oracle將將讀取取磁盤盤上的的數(shù)據據文件件,將將數(shù)據據放入入數(shù)據據高速速緩存存,再再處理理數(shù)據據;如果數(shù)數(shù)據已已經位位于數(shù)數(shù)據高高速緩緩存中中時,Oracle直接接操作作數(shù)據據。數(shù)據緩沖區(qū)數(shù)據文件數(shù)據據高高速速緩緩存存(DatabaseBufferCache)53數(shù)據據高高速速緩緩存存(DBC)DBC的的緩緩存存塊塊分分為為三三類類:臟緩緩存存塊塊存放放已已經經被被修修改改過過的的緩緩存存塊塊.當SQL修修改改某某個個緩緩存存塊塊中中的的數(shù)數(shù)據據,,則則這這個個緩緩存存塊塊被被標標記記為為臟臟緩緩存存塊塊空閑閑緩緩存存塊塊等待待寫寫入入數(shù)數(shù)據據的的空空閑閑緩緩存存塊塊.命中中緩緩存存塊塊最近近正正在在被被訪訪問問的的緩緩存存塊塊.54管理理緩緩存存塊塊的的列列表表Oracle通通過過2個個列列表表來來管管理理上上述述緩緩存存塊塊:臟列列表表(DIRTY)包括括被被修修改改過過但但尚尚未未寫寫到到數(shù)數(shù)據據文文件件的的緩緩沖沖塊塊。。LRU(LeastRecentlyUsed)列列表表包括括空空閑閑緩緩沖沖塊塊、、命命中中緩緩存存塊塊,以以及及還還沒沒有有移移到到臟臟列列表表的的緩緩沖沖塊塊。。55數(shù)據據高高速速緩緩存存工工作作原原理理讀數(shù)數(shù)據據入入DBC之之前前,先先在在LRU中中搜搜索索空空閑閑緩緩存存塊塊;在在搜搜索索過過程程中中如如果果發(fā)發(fā)現(xiàn)現(xiàn)臟臟緩緩存存塊塊,則則將將其其移移入入DIRTY;找到到足足夠夠的的空空閑閑塊塊,將將所所有有數(shù)數(shù)據據讀讀入入;;3,,4.如如果果空空閑閑塊塊不不足足,,則則暫暫停停搜搜索索,,Oralce立立刻刻啟啟動動DBWR進進程程,將將DIRTY中中的的臟臟緩緩存存塊塊數(shù)數(shù)據據寫寫入入數(shù)數(shù)據據文文件件釋釋放放足足夠夠的的空空閑閑緩緩存存塊塊。。數(shù)據據庫庫寫寫進進程程56重做做日日志志高高速速緩緩存存當執(zhí)執(zhí)行行DML(DataManipulationLanguage,數(shù)數(shù)據據操操縱縱語語言言)如如:update、、delete、、insert或或者者create、、alter、、drop等等語語句句時時,Oracle都都會會為為這這些些操操作作生生成成重重做做記記錄錄.重做做日日志志高高速速緩緩存存就就是是用用于于存存儲儲重重做做記記錄錄的的緩緩存存.57重做做日日志志高高速速緩緩存存工工作作原原理理為提提高高效效率率,重重做做記記錄錄并并不不直直接接寫寫入入磁磁盤盤的的重重做做日日志志文文件件,而而是是先先寫寫入入重重做做日日志志緩緩存存;當重重做做日日志志緩緩存存中中的的重重做做記記錄錄達達到到一一定定數(shù)數(shù)量量時時,由由LGWR進進程程寫寫入入重重做做日日志志.(先先內內存存后后磁磁盤盤)當2個個(至至少少2個個)重重做做日日志志切切換換時時,由由ARCH將將重重做做日日志志中中的的數(shù)數(shù)據據寫寫入入歸歸檔檔日日志志文文件件,,以以做做備備份份.日志志寫寫進進程程歸檔檔進進程程58共享享池池(SharedPool)共享享池池保保存存了了最最近近執(zhí)執(zhí)行行的的SQL語語句句、、PL/SQL程程序序和和數(shù)數(shù)據據字字典典信信息息,是是對對SQL語語句句和和PL/SQL程程序序進進行行語語法法分分析析、、編編譯譯、、執(zhí)執(zhí)行行的的內內存存區(qū)區(qū).59共享池池(SharedPool)共享池池由庫緩存存和數(shù)據字字典緩緩存組成。。參數(shù)SHARED_POOL_SIZE確定共共享池池的大大小。。庫緩存存(LibraryCache)區(qū)區(qū)包括括解析用用戶進進程提提交的的SQL語語句或或PL/SQL程序序保存最最近解解析過過的SQL語句句或PL/SQL程程序數(shù)據字字典區(qū)區(qū)(Dictionarycache)用于于存放放數(shù)據據字典典信息息行。。60OracleDBMS執(zhí)行行各種種SQL、、PL/SQL之前前,要要對其其進行行語法法上的的解析析、對對象上上的確確認、、權限限上的的判斷斷、操操作上上的優(yōu)優(yōu)化等等一系系列操操作,,并生生成執(zhí)執(zhí)行計計劃。。庫緩存存保存存了已已經解解析的的SQL和和PL/SQL。庫緩存存61數(shù)據字字典緩緩存在Oracle運行行過程程中,Oracle會頻頻繁的的對數(shù)數(shù)據字字典中中的表表、視視圖進進行訪訪問,,以便便確定定操作作的數(shù)數(shù)據對對象是是否存存在、、是否否具有有合適適的權權限等等信息息。數(shù)據字字典緩緩保存存了最最常用用的數(shù)數(shù)據字字典信信息。。數(shù)據字字典緩緩存中中存放放的記記錄是是一條條一條條的,而其他他緩存存區(qū)中中保存存的是是數(shù)據據塊.62大池大池用用于需需要大大內存存操作作提供供相對對獨立立的內內存空空間,,以便便提高高性能能。大池是是可選選的內內存結結構。。DBA可以以決定定是否否需要要在SGA中創(chuàng)創(chuàng)建大大池。。需要大大池的的操作作:數(shù)據庫庫備份份和恢恢復大量排排序的的SQL語語句并行化化的數(shù)數(shù)據庫庫操作作63Java池池8i以以后提提供的的對Java的的支持持,用用于存存放Java代代碼、、Java程序序等.一般不不小于于20M,以便便虛擬擬機運運行.64PGA(ProgramGlobalArea)PGA是用用戶進進程連連接到到數(shù)據據庫,并創(chuàng)創(chuàng)建一一個對對應的的會話話時,,由Oracle為為服務務進程程分配配的,,專門門用于于當前前用戶戶會話話的內內存區(qū)區(qū)。PGA是非非共享享的,,而SGA是共共享的的。PGA大小小由操操作系系統(tǒng)決決定,,并且且分配配后保保持不不變;;會話終終止時時,自自動釋釋放PGA所占占的內內存。。65PGA的組組成排序區(qū)區(qū)會話區(qū)區(qū)游標區(qū)區(qū)堆棧區(qū)區(qū)PGA服務器進程66排序區(qū)區(qū)執(zhí)行orderby、、groupby等包包含排排序操操作的的SQL語語句時時所產產生的的臨時時數(shù)據據.Oracle將將準備備排序序的數(shù)數(shù)據先先臨時時存儲儲到排排序區(qū)區(qū)中,,并在在排序序區(qū)中中排序序,然然后將將排序序好的的數(shù)據據返回回給用用戶.67會話區(qū)區(qū)保存會會話所所具有有的權權限、、角色色、性性能統(tǒng)統(tǒng)計信信息.68游標區(qū)區(qū)當運行行帶有有游標標(course)的PL/SQL語語句時時,Oracle會會在共共享池池中為為該語語句分分配上上下文文(Context),,游標標實際際上是是指向向該上上下文文的指指針。。69堆棧區(qū)區(qū)保存會會話中中的綁綁定變變量、、會話話變量量以及及SQL語語句運運行時時的內內存結結構信信息。。例如:select*fromempwhereemp=:a;:a就是綁綁定變量,提示用戶戶輸入.在等待用戶戶輸入時,,先將該變變量存入堆堆棧,以便便可以同時時運行其他他語句.70進程結構進程時操作作系統(tǒng)中的的一個概念念,是一個個可以獨立立調用的活活動,用于于完成指定定的任務。。進程與程序序的區(qū)別是是:進程是動態(tài)態(tài)創(chuàng)建的,,完成后銷銷毀;程序序是靜態(tài)的的實體,可可以復制、、編輯。進程強調執(zhí)執(zhí)行過程,,程序僅僅僅是指令的的有序集合合。進程在內存存中,程序序在外存中中。71進程種類Oracle包括用用戶進程和和Oracle進程程兩類:用戶進進程服務器進程程后臺進進程Oracle進程72用戶進程當用戶運行行一個應用用程序時,,就建立一一個用戶進進程。73服務器進程程服務器進程程:處理用戶進進程的請求求。處理過程:分析SQL命令并生生成執(zhí)行方方案。從數(shù)據緩沖沖存儲區(qū)中中讀取數(shù)據據。將執(zhí)行結果果返回給用用戶。74后臺進程后臺進程為所有數(shù)據據庫用戶異異步完成各各種任務。。主要的后臺進程有

DBWR數(shù)據庫寫進程LGWR日志寫進程CKPT檢查點寫進程SMON系統(tǒng)監(jiān)控進程PMON進程監(jiān)控進程ARCH歸檔進程RECO恢復進程LCKn封鎖進程75DBWR(數(shù)據寫)DBWR(DataBaseWriter)將數(shù)據緩沖沖區(qū)中所有有修改過的的緩沖塊數(shù)數(shù)據寫到數(shù)數(shù)據文件中中,并使用用LRU算算法來保持持緩沖區(qū)中中的數(shù)據塊塊為最近經經常使用的的,以減少少I/O次次數(shù)。該進程在啟啟動實例時時自動啟動動。76LGWR(日志寫)LGWR((LogWriter)將日志緩沖沖區(qū)中的所所有記錄項項寫到日志志文件中。。該進程在啟啟動實例時時自動啟動動。77啟動LGWR進行寫寫操作的條條件用戶進程提提交一個事事務(Commit)日志緩沖區(qū)區(qū)達到1/3范圍DBWR對對一個檢查查點需要清清除緩沖塊塊出現(xiàn)超時((3秒鐘內內未活動,,則進行一一次寫操作作。)78ARCH(歸檔進程程)ARCH(Archiver)在日志文件件組出現(xiàn)切切換時,將將舊日志文文件的內容容拷貝到脫脫機存儲介介質上,出出現(xiàn)介質失失敗時用于于恢復數(shù)據據。ARCH存儲介質79其他后臺進進程SMON((SystemMonitor,系統(tǒng)監(jiān)控進進程)負責完成自自動實例恢恢復。該進進程在啟動動實例時自自動啟動。。PMON((ProcessMonitor,進程監(jiān)控進進程)撤消異常中中斷的用戶戶進程,并并釋放該進進程已獲得得的系統(tǒng)資資源或鎖。。80RECO((Recover,恢復進程)在分布式操操作的情況況下,恢復復一個事務務的失敗。。LCKn((Lock,鎖進程)在并行服務務器系統(tǒng)間間加鎖,最最多可加10個鎖,,分別為LCK0,LCK1,,LCK9。其他后臺進進程81體系結構的的示例處理SQL語句的三三個階段語法分析執(zhí)行返回指令Server共享池數(shù)據緩沖區(qū)日志緩沖區(qū)SGAUserUserUserSQL>SELECTenameFROMemp;Server共享池數(shù)據緩沖區(qū)日志緩沖區(qū)SGAUserUserUserSMITHALLENWARDServer共享池數(shù)據緩沖區(qū)日志緩沖區(qū)SGA82體系結構的的示例SELECT操作SQL>SELECTsalFROMempWHEREjob=‘‘CLERK’’;Server共享池數(shù)據緩沖區(qū)SGAUserUserUserB1B2EMPTableBlock1Block283體系結構的的示例UPDATE操作為了支持讀讀一致性,,恢復和回回滾,所有有修改操作作需要回滾滾段。修改改操作執(zhí)行行:將數(shù)據塊送送到數(shù)據緩緩沖區(qū)將回滾塊送送到數(shù)據緩緩沖區(qū)在修改行上上設置行鎖鎖保存回滾數(shù)數(shù)據到回滾滾段塊將修改寫到到數(shù)據塊84體系結構的的示例SQL>SELECTsalFROMempWHEREjob=‘‘CLERK’’;Server1UserUserUser1Server2UserUserUser2共享池數(shù)據緩沖區(qū)SGAB1B2R2R1EMPTableBlock1Block2RB01R1R2DataFile1DataFile2SQL>UPDATEempSETsal=sal*1.1WHEREjob=‘‘CLERK’’;UPDATE操作85Oracle10g體系結結構--2.4數(shù)據字字典86數(shù)據字典數(shù)據字典是是Oracle數(shù)據據庫的核心心組件,它它由一系列列只讀的數(shù)數(shù)據字典表表和數(shù)據字字典視圖組組成.數(shù)據字典中中記錄了數(shù)數(shù)據庫的系系統(tǒng)信息、

溫馨提示

  • 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

提交評論