Oracle的內存結構和進程結構_第1頁
Oracle的內存結構和進程結構_第2頁
Oracle的內存結構和進程結構_第3頁
Oracle的內存結構和進程結構_第4頁
Oracle的內存結構和進程結構_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1: HYPERLINK /diannao/List/List_399.html Oraccle實例(IInstannce) 在在一個服務器器中,每一個個運行的 HYPERLINK /diannao/List/List_399.html Orracle數(shù)數(shù)據(jù)庫都與一一個數(shù)據(jù)庫實實例相聯(lián)系,實實例是我們訪問數(shù)據(jù)庫庫的手段。實例在操操作系統(tǒng)中用用ORACLLE_SIDD來標識,在在 HYPERLINK /diannao/List/List_399.html Oraclle中用參數(shù)數(shù)INSTAANCE_NNAME來標標識,它們們兩個的值是是相同的。數(shù)數(shù)據(jù)庫啟動時時,系統(tǒng)首先先在服務器內內存中分配系系

2、統(tǒng)全局區(qū)(SSGA),構成了Orracle的的內存結構,然然后啟動若干干個常駐內存存的操作系統(tǒng)統(tǒng)進程,即組組成了 HYPERLINK /diannao/List/List_399.html Oraacle的進程結構構,內存區(qū)域域和后臺進程程合稱為一個個 HYPERLINK /diannao/List/List_399.html Oraclle實例。 數(shù)據(jù)庫與實實例之間是11對1/n的的關系,在非非并行的數(shù)據(jù)據(jù)庫系統(tǒng)中每每個 HYPERLINK /diannao/List/List_399.html Oraccle數(shù)據(jù)庫庫與一個實實例相對應;在并行的數(shù)數(shù)據(jù)庫系統(tǒng)中中,一個數(shù)據(jù)據(jù)庫會對應多多個實例

3、,同同一時間用戶戶只與一個實例相聯(lián)系系,當某一個個實例出現(xiàn)故故障時,其他他實例自動服服務,保證數(shù)數(shù)據(jù)庫正常運運行。在任何何情況下,每每個實例都只只可以對應一一個數(shù)據(jù)庫。2: HYPERLINK /diannao/List/List_399.html Oraccle10gg動態(tài)內存管管理內存存是影響數(shù)據(jù)據(jù)庫性能的重重要因素,OOraclee8i使用靜靜態(tài)內存管理理, HYPERLINK /diannao/List/List_399.html Oraccle10gg使用動態(tài)內內存管理。所所謂靜態(tài)內存存管理,就是是在數(shù)據(jù)庫系系統(tǒng)中,無論論是否有用戶戶連接,也無無論并發(fā)用量大小,只只要數(shù)據(jù)庫服服務在運

4、行,就就會分配固定定大小的內存存;動態(tài)內存存管理允許在在數(shù)據(jù)庫服務運行時對對內存的大小小進行修改,讀讀取大數(shù)據(jù)塊塊時使用大內內存,小數(shù)據(jù)據(jù)塊時使用小小內存,讀取標準內存存塊時使用標標準內存設置置。按照照系統(tǒng)對內存存使用方法的的不同, HYPERLINK /diannao/List/List_399.html Orracle數(shù)數(shù)據(jù)庫的內存存可以分為以以下幾個部分分:系系統(tǒng)全局區(qū):SGA(SSystemm Globbal Arrea)程序全局局區(qū):PGAA(Proggrame Globaal Areea)排序池:(SSort AArea)大池:(Largge Poool)Java池池:( HYPE

5、RLINK /diannao/List/List_379.html Javva Poool)2-1:系統(tǒng)統(tǒng)全局區(qū)SGGA(Sysstem GGloball Areaa)SSGA是一組組為系統(tǒng)分配配的共享的內內存結構,可可以包含一個個數(shù)據(jù)庫實例例的數(shù)據(jù)或控控制信息息。如果多個個用戶連接到到同一個數(shù)據(jù)據(jù)庫實例,在在實例的SGGA中,數(shù)據(jù)據(jù)可以被多個個用戶共享。當數(shù)據(jù)據(jù)庫實例啟動動時,SGAA的內存被自自動分配;當當數(shù)據(jù)庫實例例關閉時,SSGA內存被被回收。SGA是占占用內存最大大的一個區(qū)域域,同時也是是影響數(shù)據(jù)庫庫性能的重要要因素。SGA的有有關信息可以以通過下面的的語句查詢,ssga_maax_

6、sizze的大小是是不可以動態(tài)態(tài)調整的。= HYPERLINK /diannao/List/List_396.html SQLL shoow parrameteer sgaaNAAME TYPE VALLUE loc您正在看的Orracle是是:Oraccle的內存存結構和進程程結構。 k_sga booolean FFALSEpree_pagee_sga bbooleaan FALSSEssga_maax_sizze big integger 1664Msga_ttargett bigg inteeger 00 HYPERLINK /diannao/List/List_396.html SQ

7、L aalter systeem sett sga_max_ssize=1100m;allter ssystemm set sga_mmax_siize=1000m *ERRROR aat linne 1:ORAA-020995: sppecifiied innitiallizatiion paarametter caannot be moodif HYPERLINK /diannao/List/List_1164.html ieed= 系統(tǒng)全局區(qū)按作作用不同可以以分為:數(shù)據(jù)緩緩沖區(qū)日志緩沖沖區(qū)共享池2-1-11:數(shù)據(jù)緩沖沖區(qū)(Dattabasee Bufffer Caache)如果果每次執(zhí)行

8、一一個操作時, HYPERLINK /diannao/List/List_399.html Oracle都必須從磁盤讀取所有數(shù)據(jù)塊并在改變它之后又必須把每一塊寫入磁盤,顯然效率會非常低。數(shù)據(jù)緩沖區(qū)存放需要經(jīng)常訪問的數(shù)據(jù),供所有用戶使用。修改數(shù)據(jù)時,首先從數(shù)據(jù)文件中取出數(shù)據(jù),存儲在數(shù)據(jù)緩沖區(qū)中,修改/插入數(shù)據(jù)也存儲在緩沖區(qū)中,commit或DBWR(下面有詳細介紹)進程的其他條件引發(fā)時,數(shù)據(jù)被寫入數(shù)據(jù)文件。數(shù)據(jù)緩沖區(qū)的大小是可以動態(tài)調整的,但是不能超過sga_max_size的限制。= HYPERLINK /diannao/List/List_396.html SQL show paramete

9、r db_cache_sizeNAME TYPE VALUE db_cache_size big integer 24M HYPERLINK /diannao/List/List_396.html SQL alter system set db_cache_size=128m;alter system set db_cache_size=128m*ERROR at line 1:ORA-02097: parameter cannot be modified because specif HYPERLINK /diannao/List/List_1164.html ied value is in

10、validORA-00384: Insuffic HYPERLINK /diannao/List/List_1164.html t _blank 您正在看的Orracle是是:Oraccle的內存存結構和進程程結構。 ient meemory to grrow caache HYPERLINK /diannao/List/List_396.html SQL alteer sysstem sset dbb_cachhe_sizze=20mm;Syystem alterred. HYPERLINK /diannao/List/List_396.html SQLL shoow parrameteer

11、 db_cachee_sizee;NNAME TYPEE VAALUE db_caache_ssize bigg inteeger 220M#此處處我僅增加了了1M都不行? HYPERLINK /diannao/List/List_396.html SQLL altter syystem set ddb_cacche_siize=255m;allter ssystemm set db_caache_ssize=225m*EERROR at liine 1:ORRA-020097: pparameeter ccannott be mmodifiied beecausee speccif HYPE

12、RLINK /diannao/List/List_1164.html ied vaalue iis invvalidORAA-003884: Innsuffiic HYPERLINK /diannao/List/List_1164.html ient mmemoryy to ggrow ccache#修改顯顯示格式,方方便查看。 HYPERLINK /diannao/List/List_396.html SQLL collumn nname fformatt a40 wrap HYPERLINK /diannao/List/List_396.html SQLL collumn vvalue f

13、ormaat a200 wrapp#下面語句句可以用來查查看內存空間間分配情況,注注意SGA各各區(qū)大小總和和。 HYPERLINK /diannao/List/List_396.html SQLL sellect nname,vvalue from v$parrameteer wheere naame liike %size and valuee 0;#先將 HYPERLINK /diannao/List/List_379.html Javva_poool_sizze調小,然然后再修改ddb_cacche_siize HYPERLINK /diannao/List/List_396.html

14、SQL sshow pparameeter HYPERLINK /diannao/List/List_379.html JJava_ppool_ssize;NAMME TTYPE VALUUE HYPERLINK /diannao/List/List_379.html Javaa_pooll_sizee biig intteger 48MSQL allter ssystemm set HYPERLINK /diannao/List/List_379.html Java_ppool_ssize=220m;Syystem alterred. HYPERLINK /diannao/List/List

15、_396.html SQL alteer sysstem sset HYPERLINK /diannao/List/List_379.html Jaava_poool_siize=300m;Syystem alterred.#上面說說明SGA中中各區(qū)大小總總和不能超過過sga_mmax_siize。=數(shù)據(jù)緩緩沖區(qū)的大小小對數(shù)據(jù)庫的的存區(qū)速度有有直接影響,多多用戶時尤為為明顯。有些些應用用對速度要求求很高,一般般要求數(shù)據(jù)緩緩沖區(qū)的命中中率在90%以上。下面給給出一種計算算數(shù)據(jù)緩沖區(qū)區(qū)命中率的方方法:使用數(shù)數(shù)據(jù)字典v$syssttat= HYPERLINK /diannao/List/List_3

16、96.html SQLL sellect nname, valuee fromm v$syysstatt 22 wheere naame inn(sesssion logiccal reeads, 33 phhysicaal reaads, 4 phyysicall readds dirrect, 55 phhysicaal reaads diirect (lob)NAMEE VALUEE sessiion loogicall readds physiical rreads 149992physsical readss direect 34phyysicall readds dirrect (

17、lob) 0=命中率=11-(149992-344-0)/可以讓讓 HYPERLINK /diannao/List/List_399.html Oraclle給出數(shù)據(jù)據(jù)緩沖區(qū)大小小的建議:= HYPERLINK /diannao/List/List_396.html SQL aalter systeem sett db_ccache_advicce=on;#打開該功功能Systeem alttered. HYPERLINK /diannao/List/List_396.html SQLL altter syystem set ddb_cacche_addvice=off;#關閉該功能能SSys

18、temm alteered.=2-1-2:日日志緩沖區(qū)(LLog Buuffer Cachee)日志緩沖區(qū)區(qū)用來存儲數(shù)數(shù)據(jù)庫的修改改信息。該區(qū)區(qū)對數(shù)據(jù)庫性性能的影響很很小,有關日日志后后面還會有詳詳細的介紹。查查詢日志緩沖沖區(qū)大?。篠QL shhow paarametter loog_buffferNAMEE TYPPE VALUUE logg_bufffer intteger 2-1-33:共享池(SShare Pool)共享池是對SQL,PL/ HYPERLINK /diannao/List/List_396.html SQL程序進行語法分析,編譯,執(zhí)行的內存區(qū)域。它包含三個部分:(都不可

19、單獨定義大小,必須通過share pool間接定義)。庫緩沖區(qū)(Library Cache)包含SQL,PL/ HYPERLINK /diannao/List/List_396.html SQL語句的分析碼,執(zhí)行計劃。數(shù)據(jù)字典緩沖區(qū)(Data Dictionary Cache)表,列定義,權限。用戶全局區(qū)(Usr Global Area)用戶MTS會話信息。共享池的大小可以動態(tài)修改:= HYPERLINK /diannao/List/List_396.html SQL show parameter shared_pool_sizeNAME TYPE VALUE _shared_pool_siz

20、e big integer 80Mshared_pool_size big integer 80M HYPERLINK /diannao/List/List_396.html SQL alter system set shared_pool_size=78m System altered.=#上面的_shared_pool_size一行奇怪?2-2:程序序全局區(qū)PGGA(Proogramee Globbal Arrea)程序全局局區(qū)是包含單單個用戶或服服務器數(shù)據(jù)和和控制信息的的內存區(qū)域,它它是在用戶進進程連接接到Oraccle并創(chuàng)建建一個會話時時由 HYPERLINK /diannao/Lis

21、t/List_399.html Oraccle自動分分配的,不可可共享,主要要用于用戶在在編程存儲變量和數(shù)數(shù)組。 如上圖:Stackk Spacce是用來存存儲用戶會話話變量和數(shù)組組的存儲區(qū)域域;Userr Sesssion DData是為為用戶會話使使用的附加存存儲區(qū)。|Sesssion IInformmationn|-Soort Arrea|Cursoor Infformattion注注意Sesssion iinformmationn(用戶會話話信息)在獨獨占服務器中中與在共享服服務器中所處處的內存存區(qū)域是不同同的。2-3:排序序區(qū),大池, HYPERLINK /diannao/List/

22、List_379.html Java池排序區(qū)(Sort Area)為有排序要求的 HYPERLINK /diannao/List/List_396.html SQL語句提供內存空間。系統(tǒng)使用專用的內內存區(qū)域域進行數(shù)據(jù)排排序,這部分分空間就是排排序區(qū)。在 HYPERLINK /diannao/List/List_399.html OOraclee數(shù)據(jù)庫中,用用戶數(shù)據(jù)的排排序可使用兩個區(qū)域域,一個是內內存排序區(qū),一一個是磁盤臨臨時段,系統(tǒng)統(tǒng)優(yōu)先使用內內存排序區(qū)進進行排序。如果內存存不夠,Orrcle自動動使用磁盤臨臨時表空間進進行排序。為為提高數(shù)據(jù)排排序的速度,建建議盡量量使用內存排排序區(qū),而不不

23、要使用臨時時段。參數(shù)sorrt_areea_sizze用來設置置排序區(qū)大小小。(好象不不能動態(tài)修改改?) 大池(LLarge Pool)用用于數(shù)據(jù)庫備備份工具恢復管理器器(RMANN:Recoovery Managger)。Largge Poool的大小由由largee_pooll_sizee確定,可用用下面語句查查詢和修改:= HYPERLINK /diannao/List/List_396.html SQL sshow pparameeter llarge_pool_sizeNAMEE TYYPE VALUEE laarge_ppool_ssize biig intteger 8M HYP

24、ERLINK /diannao/List/List_396.html SQL alterr systtem seet larrge_poool_siize=7mm;Sysstem aaltereed.=Java池池主要用于JJava語言言開發(fā),一般般來說不低于于20M。其大大小由 HYPERLINK /diannao/List/List_379.html Javva_poool_sizze來確確定,可以動動態(tài)調整。2-4: HYPERLINK /diannao/List/List_399.html Orracle自自動共享內存存管理(Auutomattic Shhared Memorry(SG

25、AA) Mannagemeent)在 HYPERLINK /diannao/List/List_399.html Oraccle 8ii/9i中數(shù)數(shù)據(jù)庫管理員員必須手動調調整SGA各各區(qū)的各個參參數(shù)取值,每每個區(qū)要根據(jù)據(jù)負荷輕重重分別設置,如如果設置不當當,比如當某某個區(qū)負荷增增大時,沒有有調整該區(qū)內內存大小,則則可能出現(xiàn)現(xiàn)ORA-44031:uunablee to aallocaate bytees of shareed memmory錯誤誤。在 HYPERLINK /diannao/List/List_399.html Oraacle100g中,將參參數(shù)STATTISTICCS_LEVVE

26、L設置為為TYPICCALALLL,使用SSGA_TAARGET指指定SGAA區(qū)總大小,數(shù)數(shù)據(jù)庫會根據(jù)據(jù)需要在各個個組件之間自自動分配內存存大小。下下面是系統(tǒng)自自動調整的區(qū)區(qū)域:固定SGAA區(qū)及其他共享池數(shù)數(shù)據(jù)緩沖區(qū) HYPERLINK /diannao/List/List_379.html Javaa池大池。注意:如果不設置置SGA_TTARGETT,則自動共共享內存管理理功能被禁止止。= HYPERLINK /diannao/List/List_396.html SQL sshow pparameeter sstatisstics_levellNAMME TYPPE VVALUE ssta

27、tisstics_levell striing TYYPICALL HYPERLINK /diannao/List/List_396.html SQL aalter systeem sett stattisticcs_levvel=alll;SSystemm alteered.#typiical和aall有什么么區(qū)別? HYPERLINK /diannao/List/List_396.html SQL aalter systeem sett stattisticcs_levvel=tyypicall;BRSysttem allteredd. HYPERLINK /diannao/List/Li

28、st_396.html SQL show parammeter sga_ttargettNAMME TYYPE VALUEE sga_ttargett bbig inntegerr 0 HYPERLINK /diannao/List/List_396.html SQL alterr systtem seet sgaa_targget=1770m;altter syystem set ssga_taarget=170m*ERRROR aat linne 1:ORA-020977: parrameteer cannnot bbe moddifiedd becaause sspeciff HYPER

29、LINK /diannao/List/List_1164.html ied vaalue iis invvalidORA-008233: Speecif HYPERLINK /diannao/List/List_1164.html ieed vallue off sga_targeet greeater than sga_mmax_siize HYPERLINK /diannao/List/List_396.html SQL alterr systtem seet sgaa_targget=200m;Sysstem aaltereed.#不過后來來又發(fā)現(xiàn)sgga_tarrget的值值變成了14

30、40M? 下下面是語句執(zhí)執(zhí)行情況。 HYPERLINK /diannao/List/List_396.html SQL sshow pparameeter ssga_taargetNAMEE TYPE VALLUE ssga_taarget biig intteger 140M HYPERLINK /diannao/List/List_396.html SQL aalter systeem sett sga_targeet=0;Systtem allteredd. HYPERLINK /diannao/List/List_396.html SQL show parammeter sga_tta

31、rgettNAMME TTYPE VALUUE sga_ttargett bigg inteeger 00#改為200M HYPERLINK /diannao/List/List_396.html SQL aalter systeem sett sga_targeet=20mm;Sysstem aaltereed.#顯示的是是140M HYPERLINK /diannao/List/List_396.html SQL sshow pparameeter ssga_taargetNAMEE TYYPE VALUEE ssga_taarget&nbssp; bbig inntegerr 140MM

32、#不可縮減減? HYPERLINK /diannao/List/List_396.html SQL aalter systeem sett sga_targeet=1300m;altter syystem set ssga_taarget=130m*ERRROR aat linne 1:ORA-020977: parrameteer cannnot bbe moddifiedd becaause sspeciff HYPERLINK /diannao/List/List_1164.html ied vaalue iis invvalidORA-008277: couuld noot shrri

33、nk ssga_taarget to sppecif HYPERLINK /diannao/List/List_1164.html iied vaalue#不可可增加 HYPERLINK /diannao/List/List_396.html SQL aalter systeem sett sga_targeet=1411m;altter syystem set ssga_taarget=141m*ERRROR aat linne 1:ORA-020977: parrameteer cannnot bbe moddifiedd becaause sspeciff HYPERLINK /dian

34、nao/List/List_1164.html ied vaalue iis invvalidORA-008233: Speecif HYPERLINK /diannao/List/List_1164.html ieed vallue off sga_targeet greeater than sga_mmax_siize3: HYPERLINK /diannao/List/List_399.html Oraccle實例的的進程結構(PProcesss Strructurre) HYPERLINK /diannao/List/List_399.html Oraclle包含三類類進程:用戶進程(

35、UUser PProcesss)服服務器進程(SServerr Proccess)后臺進程程(Backkgrounnd Proocess)3-1:用戶進程和服務器進程當數(shù)據(jù)庫用戶請求連接到 HYPERLINK /diannao/List/List_399.html Oracle的服務時啟動用戶進程(比如啟動 HYPERLINK /diannao/List/List_396.html SQLPlus時)。用戶進程首先必須建立一個連接。用戶不能直接與 HYPERLINK /diannao/List/List_399.html Oracle服務器,必須通過服務器進程交互。服務器進程是用戶進程與服務器

36、交互的橋梁,它可以與 HYPERLINK /diannao/List/List_399.html Oracle Server直接交互。服務器進程可以有共享和獨占兩種形式。3-2:后臺進進程(Bacckgrouung Prrocesss)數(shù)據(jù)據(jù)庫的物理結結構與內存結結構之間的交交互要通過后后臺進程來完完成。數(shù)據(jù)庫庫的后臺進程程包含兩類類,一類是必必須的,一類類是可選的:Maandatoory baackgroound pprocessses|-DDBWn(DDatabaase Wrriter):數(shù)據(jù)寫入|PMON(PProcesss Monniter):進程監(jiān)控|LGWR(LLog Wrrite

37、r):日志寫入|SMON(SSystemm Moniiter):系統(tǒng)監(jiān)控|RECO(RRecoveery):恢恢復|-CKPPT(Cheekpoinnt):檢查查點OOptionnal baackgroound pprocessses|-AARCn(AArchivver):歸歸檔|-LCKKn(Locck):鎖|Dnnn(DDispattcher):調度|-可以用下下面的語句查查看正在運行行的后臺進程程:=SQL seelect * froom v$bbgproccess wwhere paddrr000;PPADDR PSERIIAL# NNAME DESCRRIPTIOON 66B0ED0

38、064 1 PPMON proceess clleanupp 6B0EDD4E4 1 MMAN Memoory Maanagerr 6B0EED964 11 DBW00 db writeer proocess 0 6B00EDDE44 1 LGWWR Reedo ettc. 6BB0EE2664 1 CKKPT ccheckppoint 66B0EE66E4 1 SSMON Systeem Monnitor Proceess 6B0EEEB64 1 RECO disttributted reecoverry 6B0EEEFE4 11 CJQ00 Jobb Queuue Cooordinaato

39、r 6B0FF01E4 11 QMNCC AQ Coorddinatoor 6B0FF0664 11 MMONN Mannageabbilityy Moniitor PProcesss 6B0FF0AE4 11 MMNLL Mannageabbilityy Moniitor PProcesss 2= 3-2-1:DBWR(DDatabaase Wrriter,數(shù)數(shù)據(jù)寫入進程程)將數(shù)數(shù)據(jù)緩沖區(qū)的的數(shù)據(jù)寫入數(shù)數(shù)據(jù)文件,是是負責數(shù)據(jù)緩緩沖區(qū)管理的的一個后臺進進程。當當數(shù)據(jù)緩沖區(qū)區(qū)中的一數(shù)據(jù)據(jù)被修改后,就就標記為diirty,DDBWR進程程將數(shù)據(jù)緩沖沖區(qū)中“臟”數(shù)據(jù)寫入入數(shù)據(jù)文件,保保持數(shù)據(jù)緩沖沖區(qū)的”干凈凈“。由于數(shù)數(shù)據(jù)緩沖區(qū)的的數(shù)據(jù)被用戶戶修改并占用,空閑數(shù)數(shù)據(jù)緩沖區(qū)會會不斷減少,當當用戶進程要要從磁盤讀取取數(shù)據(jù)塊到數(shù)數(shù)據(jù)緩沖區(qū)卻卻無法找到到足夠的空閑閑數(shù)據(jù)緩沖區(qū)區(qū)時,DBWWR將數(shù)據(jù)緩緩沖區(qū)內容寫寫入磁盤,使使用戶進程總總可以得到足足夠的空閑閑數(shù)據(jù)緩沖區(qū)區(qū)。DBBWR

溫馨提示

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

評論

0/150

提交評論