oracle数据库:内存结构_笔记7
4.2系统全局区
在Unix操作系统上,SGA是一个物理实体,从操作系统命令行上能“看到”它。它物理地实现为一个共享内存段,进程可以附加到这段独立的内存上。
注意:在一个生产机器上,只应有一个实例,这是唯一合理而正确的实例数。在实际中,任何生产服务器上的实例都不应多于1个。如果在一个物理服务器上需要多于一个实例,应当使用虚拟化(virtualization)把这个服务器划分为多个虚拟服务器,每个虚拟服务器有其自己的Oracle实例。
在Oracle自身内,则完全可以看到SGA,而不论平台是什么。
sys@ORCL>compute sum of bytes on pool
sys@ORCL>break on pool skip 1
sys@ORCL>select pool,name,bytes
2 from v$sgastat
3 order by pool,name;
POOL
------------------------------------
NAME BYTES
------------------------------------------------------------------------------ ----------
java pool
free memory 4194304
************************************
----------
sum
4194304
large pool
PX msg pool 3894304
free memory 300000
************************************
----------
sum
4194304
...
streams pool
free memory 4194304
************************************
----------
sum
4194304
buffer_cache 29360128
fixed_sga 2233160
log_buffer 6496256
************************************
----------
sum
38089544
897 rows selected.
SGA分为不同的池(pool),你将主要看到下面几个。
.JAVA池(Java pool):JAVA池是为数据库中运行的JVM分配的一段固定大小的内存。在Oracle Database 10g中,Java池可以在数据库启动并运行时在线调整大小。
.大池(Large pool):共享服务器连接使用大池作为会话内存,并行执行特使用大池作为消息缓冲区,另外RMAN备份可能使用大池作为磁盘I/O缓冲区。大池可以在线调整大小。
.共享池(Shared pool):共享池包含共享游标(cursor)、存储过程、状态对象、字典缓存和诸如此类的大量其他数据。在Oracle Database 10g和9i中,共享池都可以在线调整大小。
.流池(Stream pool):这是Oracle流(Stream)专用的一个内存池,Oracle流是数据库中的一个数据共享工具。这个工具是Oracle Database 10g中新增的,可以在线调整大小。如果未配置流池,但是使用了流功能,Oracle会使用共享池中至多10%的空间作为流内存。
.“空”池("Null" pool):这个池其实没有名字。这是块缓冲区(缓存的数据库块)、重做日志缓冲区和“固定SGA”区专用的内存。
对SGA整体大小影响最大的参数如下所示:
.JAVA_POOL_SIZE:控制Java池的大小
.SHARED_POOL_SIZE:在某种程度上控制共享池的大小
.LARGE_POOL_SIZE:控制大池的大小
.DB_*_CACHE_SIZE:共有8个cache_size参数,控制各个可用的缓冲区缓存的大小
.LOG_BUFFER:在某种程度上控制重做缓冲区的大小组
.SGA_TARGET:Oracle Database 10g及以上版本中用于自动SGA内存管理
.SGA_MAX_SIZE:用于控制数据库启动并运行时SGA可以达到的最大大小
.MEMORY_TARGET:用于自动内存管理(包括PGA和SGA自动内存管理)
.MEMORY_MAX_SIZE:用于控制采用自动内存管理时Oracle对于PGA和SGA要使用的最大内存量。这实际上只是一个目标;如果用户数超过了某个水平,或者(一个或多个)会话分配了超大内存,PGA可能超出这个最优值。
不论是使用自动内存管理还是手动内存管理,都会发现各个池的内存以一种称为颗粒(granule,也称区组)的单位来分配。一个颗粒是大小为4MB、8MB或16MB的内存区。颗粒是最小的分配单位,所以如果想要一个5MB的Java池,而且颗粒大小为4MB,Oracle实际上会为这个Java池分配8MB。颗粒的大小由SGA的大小确定。通过查询V$SGA_DYNAMIC_COMPONENTS,可以查看各个池所用的颗粒大小。
sys@ORCL>select component,current_size,min_size,max_size,granule_size from v$memory_dynamic_components;
COMPONENT
----------------------------------------------------------------------------------------------------
CURRENT_SIZE MIN_SIZE MAX_SIZE GRANULE_SIZE
------------ ---------- ---------- ------------
shared pool
331350016 331350016 331350016 4194304
large pool
4194304 4194304 4194304 4194304
java pool
4194304 4194304 4194304 4194304
streams pool
4194304 4194304 4194304 4194304
SGA Target
562036736 562036736 562036736 4194304
DEFAULT buffer cache
209715200 209715200 209715200 4194304
KEEP buffer cache
0 0 0 4194304
RECYCLE buffer cache
0 0 0 4194304
DEFAULT 2K buffer cache
0 0 0 4194304
DEFAULT 4K buffer cache
0 0 0 4194304
DEFAULT 8K buffer cache
0 0 0 4194304
DEFAULT 16K buffer cache
0 0 0 4194304
DEFAULT 32K buffer cache
0 0 0 4194304
Shared IO Pool
0 0 0 4194304
PGA Target
297795584 297795584 297795584 4194304
ASM Buffer Cache
0 0 0 4194304
16 rows selected.
p121参数文件
SQL> startup pfile='/home/oracle/app/oracle/product/11.2.0/db_1/dbs/initorcl.ora'
ORACLE instance started.
Total System Global Area 267227136 bytes
Fixed Size 2227504 bytes
Variable Size 104858320 bytes
Database Buffers 155189248 bytes
Redo Buffers 4952064 bytes
Database mounted.
Database opened.
SQL> create spfile from pfile;
File created.
SQL> show parameter sga_target;
NAME TYPE
------------------------------------ ---------------------------------
VALUE
------------------------------
sga_target big integer
256M
SQL> startup force;
ORACLE instance started.
Total System Global Area 267227136 bytes
Fixed Size 2227504 bytes
Variable Size 104858320 bytes
Database Buffers 155189248 bytes
Redo Buffers 4952064 bytes
Database mounted.
Database opened.
SQL> alter system set sga_target=1512m scope=spfile;
System altered.
SQL> startup force
ORACLE instance started.
Total System Global Area 1586708480 bytes
Fixed Size 2228744 bytes
Variable Size 201330168 bytes
Database Buffers 1375731712 bytes
Redo Buffers 7417856 bytes
Database mounted.
Database opened.
SQL> show parameter sga_target
NAME TYPE
------------------------------------ ---------------------------------
VALUE
------------------------------
sga_target big integer
1520M
SQL> select component,current_size,min_size,granule_size from v$memory_dynamic_components;
COMPONENT
--------------------------------------------------------------------------------
CURRENT_SIZE MIN_SIZE GRANULE_SIZE
------------ ---------- ------------
shared pool
167772160 117440512 16777216
large pool
16777216 16777216 16777216
java pool
16777216 16777216 16777216
COMPONENT
--------------------------------------------------------------------------------
CURRENT_SIZE MIN_SIZE GRANULE_SIZE
------------ ---------- ------------
streams pool
0 0 16777216
SGA Target
1593835520 1593835520 16777216
DEFAULT buffer cache
1375731712 1375731712 16777216
COMPONENT
--------------------------------------------------------------------------------
CURRENT_SIZE MIN_SIZE GRANULE_SIZE
------------ ---------- ------------
KEEP buffer cache
0 0 16777216
RECYCLE buffer cache
0 0 16777216
DEFAULT 2K buffer cache
0 0 16777216
COMPONENT
--------------------------------------------------------------------------------
CURRENT_SIZE MIN_SIZE GRANULE_SIZE
------------ ---------- ------------
DEFAULT 4K buffer cache
0 0 16777216
DEFAULT 8K buffer cache
0 0 16777216
DEFAULT 16K buffer cache
0 0 16777216
COMPONENT
--------------------------------------------------------------------------------
CURRENT_SIZE MIN_SIZE GRANULE_SIZE
------------ ---------- ------------
DEFAULT 32K buffer cache
0 0 16777216
Shared IO Pool
0 0 16777216
PGA Target
268435456 268435456 16777216
COMPONENT
--------------------------------------------------------------------------------
CURRENT_SIZE MIN_SIZE GRANULE_SIZE
------------ ---------- ------------
ASM Buffer Cache
0 0 16777216
16 rows selected.
http://www.52ij.com/jishu/5167.htmloracle数据库:内存结构_笔记6
本文来源 我爱IT技术网 http://www.52ij.com/jishu/5168.html 转载请保留链接。
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
