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

下载本文档

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

文档简介

1、.:.;1: HYPERLINK ttadd/diannao/List/List_399.html t _blank Oracle实例Instance 在一个效力器中,每一个运转的 HYPERLINK ttadd/diannao/List/List_399.html t _blank Oracle数据库都与一个数据库实例相联络,实例是我们访问数据库的手段。实例在操作系统中用ORACLE_SID来标识,在 HYPERLINK ttadd/diannao/List/List_399.html t _blank Oracle中用参数INSTANCE_NAME来标识,它们两个的值是一样的。数据库启动时

2、,系统首先在效力器内存中分配系统全局区SGA,构成了Oracle的内存构造,然后启动假设干个常驻内存的操作系统进程,即组成了 HYPERLINK ttadd/diannao/List/List_399.html t _blank Oracle的进程构造,内存区域和后台进程合称为一个 HYPERLINK ttadd/diannao/List/List_399.html t _blank Oracle实例。 数据库与实例之间是1对1/n的关系,在非并行的数据库系统中每个 HYPERLINK ttadd/diannao/List/List_399.html t _blank Oracle数据库与一个

3、实例相对应;在并行的数据库系统中,一个数据库会对应多个实例,同一时间用户只与一个实例相联络,当某一个实例出现缺点时,其他实例自动效力,保证数据库正常运转。在任何情况下,每个实例都只可以对应一个数据库。2: HYPERLINK ttadd/diannao/List/List_399.html t _blank Oracle 10g动态内存管理内存是影响数据库性能的重要要素,Oracle8i运用静态内存管理, HYPERLINK ttadd/diannao/List/List_399.html t _blank Oracle 10g运用动态内存管理。所谓静态内存管理,就是在数据库系统中,无论能否有

4、用户衔接,也无论并发用量大小,只需数据库效力在运转,就会分配固定大小的内存;动态内存管理允许在数据库服务运转时对内存的大小进展修正,读取大数据块时运用大内存,小数据块时运用小内存,读取规范内存块时运用规范内存设置。按照系统对内存运用方法的不同, HYPERLINK ttadd/diannao/List/List_399.html t _blank Oracle数据库的内存可以分为以下几个部分:系统全局区:SGASystem Global Area程序全局区:PGAPrograme Global Area排序池:Sort Area大池:Large PoolJava池: HYPERLINK tta

5、dd/diannao/List/List_379.html t _blank Java Pool2-1:系统全局区SGASystem Global AreaSGA是一组为系统分配的共享的内存构造,可以包含一个数据库实例的数据或控制信息。假设多个用户衔接到同一个数据库实例,在实例的SGA中,数据可以被多个用户共享。当数据库实例启动时,SGA的内存被自动分配;当数据库实例封锁时,SGA内存被回收。SGA是占用内存最大的一个区域,同时也是影响数据库性能的重要要素。SGA的有关信息可以经过下面的语句查询,sga_max_size的大小是不可以动态调整的。= HYPERLINK ttadd/dianna

6、o/List/List_396.html t _blank SQL show parameter sgaNAME TYPE VALUE loc您正在看的Oracle是:Oracle的内存构造和进程构造。 k_sga boolean FALSEpre_page_sga boolean FALSEsga_max_size big integer 164Msga_target big integer 0 HYPERLINK ttadd/diannao/List/List_396.html t _blank SQL alter system set sga_max_size=100m;alter sy

7、stem set sga_max_size=100m *ERROR at line 1:ORA-02095: specified initialization parameter cannot be modif HYPERLINK ttadd/diannao/List/List_1164.html t _blank ied= 系统全局区按作用不同可以分为:数据缓冲区日志缓冲区共享池2-1-1:数据缓冲区Database Buffer Cache假设每次执行一个操作时, HYPERLINK ttadd/diannao/List/List_399.html t _blank Oracle都必需从磁

8、盘读取一切数据块并在改动它之后又必需把每一块写入磁盘,显然效率会非常低。数据缓冲区存放需求经常访问的数据,供一切用户运用。修正数据时,首先从数据文件中取出数据,存储在数据缓冲区中,修正/插入数据也存储在缓冲区中,commit或DBWR下面有详细引见进程的其他条件引发时,数据被写入数据文件。数据缓冲区的大小是可以动态调整的,但是不能超越sga_max_size的限制。= HYPERLINK ttadd/diannao/List/List_396.html t _blank SQL show parameter db_cache_sizeNAME TYPE VALUE db_cache_size

9、big integer 24M HYPERLINK ttadd/diannao/List/List_396.html t _blank 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 ttadd/diannao/List/List_1164.html t _blank ied value is invalidORA-00384: I

10、nsuffic HYPERLINK ttadd/diannao/List/List_1164.html t _blank 您正在看的Oracle是:Oracle的内存构造和进程构造。 ient memory to grow cache HYPERLINK ttadd/diannao/List/List_396.html t _blank SQL alter system set db_cache_size=20m;System altered. HYPERLINK ttadd/diannao/List/List_396.html t _blank SQL show parameter db_c

11、ache_size;NAME TYPE VALUE db_cache_size big integer 20M#此处我仅添加了1M都不行? HYPERLINK ttadd/diannao/List/List_396.html t _blank SQL alter system set db_cache_size=25m;alter system set db_cache_size=25m*ERROR at line 1:ORA-02097: parameter cannot be modified because specif HYPERLINK ttadd/diannao/List/List

12、_1164.html t _blank ied value is invalidORA-00384: Insuffic HYPERLINK ttadd/diannao/List/List_1164.html t _blank ient memory to grow cache#修正显示格式,方便查看。 HYPERLINK ttadd/diannao/List/List_396.html t _blank SQL column name format a40 wrap HYPERLINK ttadd/diannao/List/List_396.html t _blank SQL column v

13、alue format a20 wrap#下面语句可以用来查看内存空间分配情况,留意SGA各区大小总和。 HYPERLINK ttadd/diannao/List/List_396.html t _blank SQL select name,value from v$parameter where name like %size and value 0;#先将 HYPERLINK ttadd/diannao/List/List_379.html t _blank Java_pool_size调小,然后再修正db_cache_size HYPERLINK ttadd/diannao/List/L

14、ist_396.html t _blank SQL show parameter HYPERLINK ttadd/diannao/List/List_379.html t _blank Java_pool_size;NAME TYPE VALUE HYPERLINK ttadd/diannao/List/List_379.html t _blank Java_pool_size big integer 48MSQL alter system set HYPERLINK ttadd/diannao/List/List_379.html t _blank Java_pool_size=20m;Sy

15、stem altered. HYPERLINK ttadd/diannao/List/List_396.html t _blank SQL alter system set HYPERLINK ttadd/diannao/List/List_379.html t _blank Java_pool_size=30m;System altered.#上面阐明SGA中各区大小总和不能超越sga_max_size。=数据缓冲区的大小对数据库的存区速度有直接影响,多用户时尤为明显。有些应用对速度要求很高,普通要求数据缓冲区的命中率在90%以上。下面给出一种计算数据缓冲区命中率的方法:运用数据字典v$sy

16、sstat= HYPERLINK ttadd/diannao/List/List_396.html t _blank SQL select name, value from v$sysstat 2 where name in(session logical reads, 3 physical reads, 4 physical reads direct, 5 physical reads direct (lob)NAME VALUE session logical reads 895243physical reads 14992physical reads direct 34physical

17、reads direct (lob) 0=命中率=1-(14992-34-0)/895243可以让 HYPERLINK ttadd/diannao/List/List_399.html t _blank Oracle给出数据缓冲区大小的建议:= HYPERLINK ttadd/diannao/List/List_396.html t _blank SQL alter system set db_cache_advice=on;#翻开该功能System altered. HYPERLINK ttadd/diannao/List/List_396.html t _blank SQL alter s

18、ystem set db_cache_advice=off;#封锁该功能System altered.=2-1-2:日志缓冲区Log Buffer Cache日志缓冲区用来存储数据库的修正信息。该区对数据库性能的影响很小,有关日志后面还会有详细的引见。查询日志缓冲区大小:SQL show parameter log_bufferNAME TYPE VALUE log_buffer integer 262144 2-1-3:共享池Share Pool共享池是对SQL,PL/ HYPERLINK ttadd/diannao/List/List_396.html t _blank SQL程序进展语法

19、分析,编译,执行的内存区域。它包含三个部分:都不可单独定义大小,必需经过share pool间接定义。库缓冲区Library Cache包含SQL,PL/ HYPERLINK ttadd/diannao/List/List_396.html t _blank SQL语句的分析码,执行方案。数据字典缓冲区Data Dictionary Cache表,列定义,权限。用户全局区Usr Global Area用户MTS会话信息。共享池的大小可以动态修正:= HYPERLINK ttadd/diannao/List/List_396.html t _blank SQL show parameter sh

20、ared_pool_sizeNAME TYPE VALUE _shared_pool_size big integer 80Mshared_pool_size big integer 80M HYPERLINK ttadd/diannao/List/List_396.html t _blank SQL alter system set shared_pool_size=78m System altered.=#上面的_shared_pool_size一行奇异?2-2:程序全局区PGAPrograme Global Area程序全局区是包含单个用户或效力器数据和控制信息的内存区域,它是在用户进程

21、连接到Oracle并创建一个会话时由 HYPERLINK ttadd/diannao/List/List_399.html t _blank Oracle自动分配的,不可共享,主要用于用户在编程存储变量和数组。 如上图:Stack Space是用来存储用户会话变量和数组的存储区域;User Session Data是为用户会话运用的附加存储区。|-Session Information|-Sort Area|-Cursor Information留意Session information用户会话信息在独占效力器中与在共享效力器中所处的内存区域是不同的。2-3:排序区,大池, HYPERLINK

22、 ttadd/diannao/List/List_379.html t _blank Java池排序区Sort Area为有排序要求的 HYPERLINK ttadd/diannao/List/List_396.html t _blank SQL语句提供内存空间。系统运用公用的内存区域进展数据排序,这部分空间就是排序区。在 HYPERLINK ttadd/diannao/List/List_399.html t _blank Oracle数据库中,用户数据的排序可运用两个区域,一个是内存排序区,一个是磁盘暂时段,系统优先运用内存排序区进展排序。假设内存不够,Orcle自动运用磁盘暂时表空间进展

23、排序。为提高数据排序的速度,建议尽量运用内存排序区,而不要运用暂时段。参数sort_area_size用来设置排序区大小。好象不能动态修正? 大池Large Pool用于数据库备份工具-恢复管理器RMAN:Recovery Manager。Large Pool的大小由large_pool_size确定,可用下面语句查询和修正:= HYPERLINK ttadd/diannao/List/List_396.html t _blank SQL show parameter large_pool_sizeNAME TYPE VALUE large_pool_size big integer 8M H

24、YPERLINK ttadd/diannao/List/List_396.html t _blank SQL alter system set large_pool_size=7m;System altered.=Java池主要用于Java言语开发,普通来说不低于20M。其大小由 HYPERLINK ttadd/diannao/List/List_379.html t _blank Java_pool_size来确定,可以动态调整。2-4: HYPERLINK ttadd/diannao/List/List_399.html t _blank Oracle自动共享内存管理Automatic S

25、hared Memory(SGA) Management在 HYPERLINK ttadd/diannao/List/List_399.html t _blank Oracle 8i/9i中数据库管理员必需手动调整SGA各区的各个参数取值,每个区要根据负荷轻重分别设置,假设设置不当,比如当某个区负荷增大时,没有调整该区内存大小,那么能够出现ORA-4031:unable to allocate .bytes of shared memory错误。在 HYPERLINK ttadd/diannao/List/List_399.html t _blank Oracle 10g中,将参数STATIS

26、TICS_LEVEL设置为TYPICALALL,运用SGA_TARGET指定SGA区总大小,数据库会根据需求在各个组件之间自动分配内存大小。下面是系统自动调整的区域:固定SGA区及其他共享池数据缓冲区 HYPERLINK ttadd/diannao/List/List_379.html t _blank Java池大池。留意:假设不设置SGA_TARGET,那么自动共享内存管理功能被制止。= HYPERLINK ttadd/diannao/List/List_396.html t _blank SQL show parameter statistics_levelNAME TYPE VALUE

27、 statistics_level string TYPICAL HYPERLINK ttadd/diannao/List/List_396.html t _blank SQL alter system set statistics_level=all;System altered.#typical和all有什么区别? HYPERLINK ttadd/diannao/List/List_396.html t _blank SQL alter system set statistics_level=typical;BRSystem altered. HYPERLINK ttadd/diannao

28、/List/List_396.html t _blank SQL show parameter sga_targetNAME TYPE VALUE sga_target big integer 0 HYPERLINK ttadd/diannao/List/List_396.html t _blank SQL alter system set sga_target=170m;alter system set sga_target=170m*ERROR at line 1:ORA-02097: parameter cannot be modified because specif HYPERLIN

29、K ttadd/diannao/List/List_1164.html t _blank ied value is invalidORA-00823: Specif HYPERLINK ttadd/diannao/List/List_1164.html t _blank ied value of sga_target greater than sga_max_size HYPERLINK ttadd/diannao/List/List_396.html t _blank SQL alter system set sga_target=20m;System altered.#不过后来又发现sga

30、_target的值变成了140M? 下面是语句执行情况。 HYPERLINK ttadd/diannao/List/List_396.html t _blank SQL show parameter sga_targetNAME TYPE VALUE sga_target big integer 140M HYPERLINK ttadd/diannao/List/List_396.html t _blank SQL alter system set sga_target=0;System altered. HYPERLINK ttadd/diannao/List/List_396.html t

31、 _blank SQL show parameter sga_targetNAME TYPE VALUE sga_target big integer 0#改为20M HYPERLINK ttadd/diannao/List/List_396.html t _blank SQL alter system set sga_target=20m;System altered.#显示的是140M HYPERLINK ttadd/diannao/List/List_396.html t _blank SQL show parameter sga_targetNAME TYPE VALUE sga_ta

32、rget big integer 140M #不可缩减? HYPERLINK ttadd/diannao/List/List_396.html t _blank SQL alter system set sga_target=130m;alter system set sga_target=130m*ERROR at line 1:ORA-02097: parameter cannot be modified because specif HYPERLINK ttadd/diannao/List/List_1164.html t _blank ied value is invalidORA-0

33、0827: could not shrink sga_target to specif HYPERLINK ttadd/diannao/List/List_1164.html t _blank ied value#不可添加 HYPERLINK ttadd/diannao/List/List_396.html t _blank SQL alter system set sga_target=141m;alter system set sga_target=141m*ERROR at line 1:ORA-02097: parameter cannot be modified because sp

34、ecif HYPERLINK ttadd/diannao/List/List_1164.html t _blank ied value is invalidORA-00823: Specif HYPERLINK ttadd/diannao/List/List_1164.html t _blank ied value of sga_target greater than sga_max_size3: HYPERLINK ttadd/diannao/List/List_399.html t _blank Oracle实例的进程构造Process Structure HYPERLINK ttadd/

35、diannao/List/List_399.html t _blank Oracle包含三类进程:用户进程User Process效力器进程Server Process后台进程Background Process3-1:用户进程和效力器进程当数据库用户恳求衔接到 HYPERLINK ttadd/diannao/List/List_399.html t _blank Oracle的效力时启动用户进程比如启动 HYPERLINK ttadd/diannao/List/List_396.html t _blank SQLPlus时。用户进程首先必需建立一个衔接。用户不能直接与 HYPERLINK t

36、tadd/diannao/List/List_399.html t _blank Oracle效力器,必需经过效力器进程交互。效力器进程是用户进程与效力器交互的桥梁,它可以与 HYPERLINK ttadd/diannao/List/List_399.html t _blank Oracle Server直接交互。效力器进程可以有共享和独占两种方式。3-2:后台进程Backgroung Process数据库的物理构造与内存构造之间的交互要经过后台进程来完成。数据库的后台进程包含两类,一类是必需的,一类是可选的:Mandatory background processes|-DBWnDataba

37、se Writer:数据写入|-PMONProcess Moniter:进程监控|-LGWRLog Writer:日志写入|-SMONSystem Moniter:系统监控|-RECORecovery:恢复|-CKPTChekpoint:检查点Optional background processes|-ARCnArchiver:归档|-LCKnLock:锁|-DnnnDispatcher:调度|-可以用下面的语句查看正在运转的后台进程:=SQL select * from v$bgprocess where paddr00;PADDR PSERIAL# NAME DESCRIPTION 6B

38、0ED064 1 PMON process cleanup 6B0ED4E4 1 MMAN Memory Manager 6B0ED964 1 DBW0 db writer process 0 6B0EDDE4 1 LGWR Redo etc. 6B0EE264 1 CKPT checkpoint 6B0EE6E4 1 SMON System Monitor Process 6B0EEB64 1 RECO distributed recovery 6B0EEFE4 1 CJQ0 Job Queue Coordinator 6B0F01E4 1 QMNC AQ Coordinator 6B0F0664 1 MMON Manageability Monitor Process 6B0F0AE4 1 MMNL Manageability Monitor Process 2= 3-2-1:DBWRDatabase Writer,数据写入进程将数据缓冲区的数据写入数据文件,是担任数据缓冲区管理的一个后台进程。当数据缓冲区中的一数据被修正后,

温馨提示

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

评论

0/150

提交评论