1.Oracle的内存架构组成.doc

  1. 1、本文档共100页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1.Oracle的内存架构组成.doc

Oracle內存全面分析 整理: 王琦  HYPERLINK /Doc/oracle_memory(1).htm /Doc/oracle_memory(1).htm Oracle的内存配置与oracle性能息息相关。而且关于内存的错误(如4030、4031错误)都是十分令人头疼的问题。可以说,关于内存的配置,是最影响Oracle性能的配置。内存还直接影响到其他两个重要资源的消耗:CPU和IO。 ? 首先,看看Oracle内存存储的主要内容是什么: 程序代码(PLSQL、Java); 关于已经连接的会话的信息,包括当前所有活动和非活动会话; 程序运行时必须的相关信息,例如查询计划; Oracle进程之间共享的信息和相互交流的信息,例如锁; 那些被永久存储在外围存储介质上,被cache在内存中的数据(如redo log条目,数据块)。 ? 此外,需要记住的一点是,Oracle的内存是与实例对应的。也就是说,一个实例就有一个独立的内存结构。 ? 先从Oracle内存的组成架构介绍。 ? 1.?? Oracle的内存架构组成 ? Oracle的内存,从总体上讲,可以分为两大块:共享部分(主要是SGA)和进程独享部分(主要是PGA和UGA)。而这两部分内存里面,根据功能不同,还分为不同内存池(Pool)和内存区(Area)。下面就是Oracle内存构成框架图: ? ? SGA ? Share Pool? Buffer Cache? Redo Log Buffer? ? Java Pool? Stream Pool(10g)? Large Pool?? PGA*n Bitmap merge areaSort AreaHash Area?? UGA*nCUA*n? ?? 下面分别介绍这两块内存区。 1.1.??????????? SGA(System Global Area) ? SGA(System Global Area 系统全局区域)是一组包含一个Oracle实例的数据和控制信息的共享内存结构。这句话可以说是SGA的定义。虽然简单,但其中阐述了SGA几个很重要的特性:1、SGA的构成——数据和控制信息,我们下面会详细介绍;2、SGA是共享的,即当有多个用户同时登录了这个实例,SGA中的信息可以被它们同时访问(当涉及到互斥的问题时,由latch和enquence控制);3、一个SGA只服务于一个实例,也就是说,当一台机器上有多个实例运行时,每个实例都有一个自己的SGA,尽管SGA来自于OS的共享内存区,但实例之间不能相互访问对方的SGA区。 Oracle进程和一个SGA就构成了一个Oracle实例。当实例启动时,Oracle会自动从系统中分配内存给SGA,而实例关闭时,操作系统会回收这些内存。下面就是当实例启动后,显示已经分配了SGA: ? SQL startup ORACLE instance started. ? Total System Global Area? 289406976 bytes Fixed Size???????????????? ?1248576 bytes Variable Size???????????? 117441216 bytes Database Buffers????????? 163577856 bytes Redo Buffers??????????????? 7139328 bytes Database mounted. Database opened. ? SQL ? SGA区是可读写的。所有登录到实例的用户都能读取SGA中的信息,而在oracle做执行操作时,服务进程会将修改的信息写入SGA区。 SGA主要包括了以下的数据结构: 数据缓冲(Buffer Cache) 重做日志缓冲(Redo Log Buffer) 共享池(Shared Pool) Java池(Java Pool) 大池(Large Pool) 流池(Streams Pool 10g以后才有) 数据字典缓存(Data Dictionary Cache) 其他信息(如数据库和实例的状态信息) 最后的两种内存信息会被实例的后台进程所访问,它们在实例启动后就固定在SGA中了,而且不会改变,所以这部分又称为固定SGA(Fixed SGA)。这部分区域的大小一般小于100K。 此外,用于并非进程控制的锁(latch)的信息也包含在SGA区中。 Shared Pool、Java Pool、Large Pool和Streams Pool这几块内存区的大小是相应系统参数设置而改变的,所以有通称为可变SGA(Variable SGA)。 1.1.1.?? SGA

文档评论(0)

170****0532 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8015033021000003

1亿VIP精品文档

相关文档