Oracle SGA自动管理特性(sga_target参数)(三)

2014-11-24 16:14:07 · 作者: · 浏览: 2
285212672
SYBO2SZ.__java_pool_size=4194304
SYBO2SZ.__large_pool_size=4194304
SYBO2SZ.__shared_pool_size=297795584
SYBO2SZ.__streams_pool_size=4194304
*.db_block_size=8192
#*.db_cache_size=285212672
*.db_recovery_file_dest_size=1G
#*.java_pool_size=4194304
#*.large_pool_size=4194304
#*.shared_pool_size=293601280
#*.streams_pool_size=4194304
--首先关闭数据库
idle> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
--使用临时的pfile启动
idle> startup pfile=/tmp/tmp.ora
ORACLE instance started.
--下面的查询可以看到所有和sga_target相关的内存分配全部变成了0
idle> SELECT name, VALUE
2 FROM v$parameter
3 WHERE name IN
4 ('shared_pool_size',
5 'java_pool_size',
6 'streams_pool_size',
7 'log_buffer',
8 'db_cache_size',
9 'db_2k_cache_size',
10 'db_4k_cache_size',
11 'db_8k_cache_size',
12 'db_16k_cache_size',
13 'db_32k_cache_size',
14 'db_keep_cache_size',
15 'db_recycle_cache_size',
16 'large_pool_size');
NAME VALUE
----------------------------------- ------------------------------
shared_pool_size 0
large_pool_size 0
java_pool_size 0
streams_pool_size 0
db_cache_size 0
db_2k_cache_size 0
db_4k_cache_size 0
db_8k_cache_size 0
db_16k_cache_size 0
db_32k_cache_size 0
db_keep_cache_size 0
db_recycle_cache_size 0
log_buffer 6120448
13 rows selected.
--此时sga_max_size也变成了576m,这是因为sga_target必须小于等于sga_max_size
idle> show parameter sga_max
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
sga_max_size big integer 576M
4、小结
a、当设置sga_target为非零值时下列参数受到sga_targe的控制,但其总值不超过sga_target。
Buffer cache (DB_CACHE_SIZE)
Shared pool (SHARED_POOL_SIZE)
Large pool (LARGE_POOL_SIZE)
Java pool (JAVA_POOL_SIZE)
Streams pool (STREAMS_POOL_SIZE)
b、非零值的sga_target时,几个参数之间的大小可以动态分配,且根据需要来动态调整各个部分的大小。
c、如果在sga_target非零值时,也设定了DB_CACHE_SIZE等上述几个参数,则sga_targe分配不小于所设置的值作为初始值。
d、当设置sga_target为零值时,SGA相关参数内存的分配由参数控制,且无法根据系统状况实施动态调整大小。
f、 Oracle 10g之后建议将SGA的内存管理设置为由sga_target动态管理。