Oracle的内存结构和进程结构_第1页
Oracle的内存结构和进程结构_第2页
Oracle的内存结构和进程结构_第3页
Oracle的内存结构和进程结构_第4页
Oracle的内存结构和进程结构_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1: HYPERLINK /diannao/List/List_399.html Oraccle实例(IInstannce) 在在一个服务器器中,每一个个运行的 HYPERLINK /diannao/List/List_399.html Orracle数数据库都与一一个数据库实实例相联系,实实例是我们访问数据库库的手段。实例在操操作系统中用用ORACLLE_SIDD来标识,在在 HYPERLINK /diannao/List/List_399.html Oraclle中用参数数INSTAANCE_NNAME来标标识,它们们两个的值是是相同的。数数据库启动时时,系统首先先在服务器内内存中分配系系

2、统全局区(SSGA),构成了Orracle的的内存结构,然然后启动若干干个常驻内存存的操作系统统进程,即组组成了 HYPERLINK /diannao/List/List_399.html Oraacle的进程结构构,内存区域域和后台进程程合称为一个个 HYPERLINK /diannao/List/List_399.html Oraclle实例。 数据库与实实例之间是11对1/n的的关系,在非非并行的数据据库系统中每每个 HYPERLINK /diannao/List/List_399.html Oraccle数据库库与一个实实例相对应;在并行的数数据库系统中中,一个数据据库会对应多多个实例

3、,同同一时间用户户只与一个实例相联系系,当某一个个实例出现故故障时,其他他实例自动服服务,保证数数据库正常运运行。在任何何情况下,每每个实例都只只可以对应一一个数据库。2: HYPERLINK /diannao/List/List_399.html Oraccle10gg动态内存管管理内存存是影响数据据库性能的重重要因素,OOraclee8i使用静静态内存管理理, HYPERLINK /diannao/List/List_399.html Oraccle10gg使用动态内内存管理。所所谓静态内存存管理,就是是在数据库系系统中,无论论是否有用户户连接,也无无论并发用量大小,只只要数据库服服务在运

4、行,就就会分配固定定大小的内存存;动态内存存管理允许在在数据库服务运行时对对内存的大小小进行修改,读读取大数据块块时使用大内内存,小数据据块时使用小小内存,读取标准内存存块时使用标标准内存设置置。按照照系统对内存存使用方法的的不同, HYPERLINK /diannao/List/List_399.html Orracle数数据库的内存存可以分为以以下几个部分分:系系统全局区:SGA(SSystemm Globbal Arrea)程序全局局区:PGAA(Proggrame Globaal Areea)排序池:(SSort AArea)大池:(Largge Poool)Java池池:( HYPE

5、RLINK /diannao/List/List_379.html Javva Poool)2-1:系统统全局区SGGA(Sysstem GGloball Areaa)SSGA是一组组为系统分配配的共享的内内存结构,可可以包含一个个数据库实例例的数据或控控制信息息。如果多个个用户连接到到同一个数据据库实例,在在实例的SGGA中,数据据可以被多个个用户共享。当数据据库实例启动动时,SGAA的内存被自自动分配;当当数据库实例例关闭时,SSGA内存被被回收。SGA是占占用内存最大大的一个区域域,同时也是是影响数据库库性能的重要要因素。SGA的有有关信息可以以通过下面的的语句查询,ssga_maax_

6、sizze的大小是是不可以动态态调整的。= 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= 系统全局区按作作用不同可以以分为:数据缓缓冲区日志缓冲冲区共享池2-1-11:数据缓冲冲区(Dattabasee Bufffer Caache)如果果每次执行

8、一一个操作时, HYPERLINK /diannao/List/List_399.html Oracle都必须从磁盘读取所有数据块并在改变它之后又必须把每一块写入磁盘,显然效率会非常低。数据缓冲区存放需要经常访问的数据,供所有用户使用。修改数据时,首先从数据文件中取出数据,存储在数据缓冲区中,修改/插入数据也存储在缓冲区中,commit或DBWR(下面有详细介绍)进程的其他条件引发时,数据被写入数据文件。数据缓冲区的大小是可以动态调整的,但是不能超过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各各区大小总和和。 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中中各区大小总总和不能超过过sga_mmax_siize。=数据缓缓冲区的大小小对数据库的的存区速度有有直接影响,多多用户时尤为为明显。有些些应用用对速度要求求很高,一般般要求数据缓缓冲区的命中中率在90%以上。下面给给出一种计算算数据缓冲区区命中率的方方法:使用数数据字典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给出数据据缓冲区大小小的建议:= 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:日日志缓冲区(LLog Buuffer Cachee)日志缓冲区区用来存储数数据库的修改改信息。该区区对数据库性性能的影响很很小,有关日日志后后面还会有详详细的介绍。查查询日志缓冲冲区大小:SQL shhow paarametter loog_buffferNAMEE TYPPE VALUUE logg_bufffer intteger 2-1-33:共享池(SShare Pool)共享池是对SQL,PL/ HYPERLINK /diannao/List/List_396.html SQL程序进行语法分析,编译,执行的内存区域。它包含三个部分:(都不可

19、单独定义大小,必须通过share pool间接定义)。库缓冲区(Library Cache)包含SQL,PL/ HYPERLINK /diannao/List/List_396.html SQL语句的分析码,执行计划。数据字典缓冲区(Data Dictionary Cache)表,列定义,权限。用户全局区(Usr Global Area)用户MTS会话信息。共享池的大小可以动态修改:= 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:程序序全局区PGGA(Proogramee Globbal Arrea)程序全局局区是包含单单个用户或服服务器数据和和控制信息的的内存区域,它它是在用户进进程连接接到Oraccle并创建建一个会话时时由 HYPERLINK /diannao/Lis

21、t/List_399.html Oraccle自动分分配的,不可可共享,主要要用于用户在在编程存储变量和数数组。 如上图:Stackk Spacce是用来存存储用户会话话变量和数组组的存储区域域;Userr Sesssion DData是为为用户会话使使用的附加存存储区。|Sesssion IInformmationn|-Soort Arrea|Cursoor Infformattion注注意Sesssion iinformmationn(用户会话话信息)在独独占服务器中中与在共享服服务器中所处处的内存存区域是不同同的。2-3:排序序区,大池, HYPERLINK /diannao/List/

22、List_379.html Java池排序区(Sort Area)为有排序要求的 HYPERLINK /diannao/List/List_396.html SQL语句提供内存空间。系统使用专用的内内存区域域进行数据排排序,这部分分空间就是排排序区。在 HYPERLINK /diannao/List/List_399.html OOraclee数据库中,用用户数据的排排序可使用两个区域域,一个是内内存排序区,一一个是磁盘临临时段,系统统优先使用内内存排序区进进行排序。如果内存存不够,Orrcle自动动使用磁盘临临时表空间进进行排序。为为提高数据排排序的速度,建建议尽量量使用内存排排序区,而不不

23、要使用临时时段。参数sorrt_areea_sizze用来设置置排序区大小小。(好象不不能动态修改改?) 大池(LLarge Pool)用用于数据库备备份工具恢复管理器器(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语言言开发,一般般来说不低于于20M。其大大小由 HYPERLINK /diannao/List/List_379.html Javva_poool_sizze来确确定,可以动动态调整。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中数数据库管理员员必须手动调调整SGA各各区的各个参参数取值,每每个区要根据据负荷轻重重分别设置,如如果设置不当当,比如当某某个区负荷增增大时,没有有调整该区内内存大小,则则可能出现现ORA-44031:uunablee to aallocaate bytees of shareed memmory错误误。在 HYPERLINK /diannao/List/List_399.html Oraacle100g中,将参参数STATTISTICCS_LEVVE

26、L设置为为TYPICCALALLL,使用SSGA_TAARGET指指定SGAA区总大小,数数据库会根据据需要在各个个组件之间自自动分配内存存大小。下下面是系统自自动调整的区区域:固定SGAA区及其他共享池数数据缓冲区 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有什么么区别? 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.#不过后来来又发现sgga_tarrget的值值变成了14

30、40M? 下下面是语句执执行情况。 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:用户进程和服务器进程当数据库用户请求连接到 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)数据据库的物理结结构与内存结结构之间的交交互要通过后后台进程来完完成。数据库库的后台进程程包含两类类,一类是必必须的,一类类是可选的:Maandatoory baackgroound pprocessses|-DDBWn(DDatabaase Wrriter):数据写入|PMON(PProcesss Monniter):进程监控|LGWR(LLog Wrrite

37、r):日志写入|SMON(SSystemm Moniiter):系统监控|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,数数据写入进程程)将数数据缓冲区的的数据写入数数据文件,是是负责数据缓缓冲区管理的的一个后台进进程。当当数据缓冲区区中的一数据据被修改后,就就标记为diirty,DDBWR进程程将数据缓冲冲区中“脏”数据写入入数据文件,保保持数据缓冲冲区的”干净净“。由于数数据缓冲区的的数据被用户户修改并占用,空闲数数据缓冲区会会不断减少,当当用户进程要要从磁盘读取取数据块到数数据缓冲区却却无法找到到足够的空闲闲数据缓冲区区时,DBWWR将数据缓缓冲区内容写写入磁盘,使使用户进程总总可以得到足足够的空闲闲数据缓冲区区。DBBWR

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论