- 1、本文档共22页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Oracle_内存_架构.doc
一、Oracle内存存储
Oracle的内存配置与oracle性能息息相关。关于内存的配置,是最影响Oracle性能的配置。内存还直接影响到其他两个重要资源的消耗:CPU和IO.
先看Oracle
程序代码(PLSQLJava);
关于已经连接的会话的信息,包括当前所有活动和非活动会话;
程序运行时必须的相关信息,例如查询计划;
Oracle
那些被永久存储在外围存储介质上,被cacheredo log条目,数据块)。
每个OracleOracle Instance(实例)与数据库(数据文件,控制文件、重做日志文件)组成,其中所谓实例就是用户同数据库交互的媒介,用户通过于一个实例相连来操作数据库。而实例又是由统一的内存结构(SGA,PGA,UGA)和一批内存驻留进程组成。实例在操作系统中用ORACLE_SID来标识,在Oracle中用参数INSTANCE_NAME来标识, 它们两个的值是相同的。数据库启动时,系统首先在服务器内存中分配系统全局区(SGA), 构成了Oracle的内存结构,然后启动若干个常驻内存的操作系统进程,即组成了Oracle的 进程结构,内存区域和后台进程合称为一个Oracle实例。
?
二、SGA
SGA是一组为系统分配的共享的内存结构,可以包含一个数据库实例的数据或控制信息。如果多个用户连接到同一个数据库实例,在实例的SGA中,数据可以被多个用户共享。 当数据库实例启动时,SGA的内存被自动分配;当数据库实例关闭时,SGA内存被回收。 SGA是占用内存最大的一个区域,同时也是影响数据库性能的重要因素。
?
SGA区是可读写的。所有登录到实例的用户都能读取SGA中的信息,而在oracle做执行操作时,服务进程会将修改的信息写入SGA区。
SGA主要包括了以下的数据结构:
数据缓冲(Buffer Cache
重做日志缓冲(Redo Log Buffer
共享池(Shared Pool
Java池(Java Pool)
大池(Large Pool
流池(Streams Pool 10g
数据字典缓存(Data Dictionary Cache
其他信息(如数据库和实例的状态信息)
?
?
Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 192940932 bytes
Database Buffers 411041792 bytes
Redo Buffers 7135232 bytes
?
SGA 中的数据字典缓存其他信息 会被实例的后台进程所访问,它们在实例启动后就固定在SGA固定SGAFixed SGA)。这部分区域的大小一般小于100K。
?
Shared Pool、Java Pool、Large Pool和Streams Pool这几块内存区的大小是相应系统参数设置而改变的,所以有通称为可变SGAVariable SGA)。
?
?
?
截图出自Oracle 11g 的架构图。 下载地址:/source/2346700
?
通过下面的语句查询
SQL show parameter sga
NAME TYPE VALUE
lock_sga boolean FALSE
pre_page_sga boolean FALSE
sga_max_size big integer 584M
sga_target big integer 584M
?
先对这几个参数做一下说明:
?
SQL select name,value ,ISSYS_MODIFIABLE from v$parameter where name like sga%;
NAME VALUE ISSYS_MOD
sga_max_size 612368384 FALSE
sga_target 612368384 IMMEDIATE
如果ISSYS_MODIFIABLE 返回的是false,说明该参数无法用alter system语句动态修改,需要重启数据库。
所以sga_max_size 是不可以动态调整的。但是我们可以对sga_target 进行动态的调整。
?
SGA_MAX_SIZE:
SGA区包括了各种缓冲区和内存池,而大部分都可以通过特定的参
文档评论(0)