Oracle 10 的内存调整实践
Oracle 10 在内存调整方面,与以前的版本有重大改变,并提供了调整和管理内存的方法。下面介绍一种 Oracle 10 内存调整和管理实践,一般应用于多个实例(Database)的场景。
1、首先要明确 Oracle 内存的占用规律。下面各项指标皆可以通过查看Oracle的状态,有关的视图查到:
(1)可使用的已分配内存(assignable memory)可通过以下sql语句查到:
SELECT *
FROM v$memory_target_advice
WHERE advice_status=’ON’;
(2)SGA可使用内存(SGA total memory):
SELECT *
FROM v$sga;
(3)PGA可使用内存 (PGA Total Memory):
SELECT *
FROM v$pgastat;
2、在Oracle 10中,应用调整内存的指令就是ALTER SYSTEM ,可用来设定可使用的已分配内存。如:
ALTER SYSTEM SET memory_target=size SCOPE=BOTH;
到目前为止,已经可以进行 Oracle 10中最核心的操作,即设定已分配内存的大小。然后,进行 SGA 内存的管理,有两种模式:
(1) AUTO 模式:
ALTER SYSTEM SET sga_target=0 SCOPE=BOTH;
在 AUTO 模式下,SGA 内存自动调整,不需要额外的操作;
(2)MANUAL 模式:
ALTER SYSTEM SET sga_target=size SCOPE=BOTH;
在 MANUAL 模式下,可以按照需要,指定 SGA 的大小,SIZE 为指定的内存大小。
进行 PGA 的管理可以使用以下语句:
ALTER SYSTEM SET pga_aggregate_target=size SCOPE=SPFILE;
如果要应用所有以上修改,需要使用以下指令:
ALTER SYSTEM SET job_queue_processes=4 SCOPE=SPFILE;
SHUTDOWN IMMEDIATE;
STARTUP;
通过以上操作,就可以根据需要,调整 Oracle 10 的内存大小及管理。