Oracle数据库在系统占用的内存分为两个部分:SGA 和 PGA。
根据Oracle的建议,Oracle最多可以使用80%的物理内存,其余20%保留给操作系统使用。
根据Oracle的建议,Oracle最多可以使用80%的物理内存,其余20%保留给操作系统使用。
在这80%的内存中,OLTP系统,Oracle建议分配20%给PGA使用,对于OLAP系统可以分配50%给PGA使用。
memory_target
memory_max_target
sga_target
sga_max_size
pga_aggregate
SQL> show parameter memory_target
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
memory_target big integer 812M
SQL> show parameter memory_max_target
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
memory_max_target big integer 812M
SQL> alter system set memory_target=1G scope=both; --MEMORY_TARGET参数不能大于MEMORY_MAX_TARGET
alter system set memory_target=1G scope=both
*
第 1 行出现错误:
ORA-02097: 无法修改参数, 因为指定的值无效
ORA-00837: 指定的值 MEMORY_TARGET 大于 MEMORY_MAX_TARGET
SQL> alter system set memory_max_target=1g scope=both; --MEMORY_MAX_TARGET不能动态修改。
alter system set memory_max_target=1g scope=both
*
第 1 行出现错误:
ORA-02095: 无法修改指定的初始化参数
SQL> alter system set memory_max_target=1g scope=spfile;
系统已更改。
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 1071333376 bytes
Fixed Size 1341312 bytes
Variable Size 788531328 bytes
Database Buffers 276824064 bytes
Redo Buffers 4636672 bytes
数据库装载完毕。
数据库已经打开。
SQL> alter system set memory_target=1G scope=both; --MEMORY_TARGET可以动态修改
系统已更改。
SQL> show parameter memory_target
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
memory_target big integer 1G
SQL> show parameter memory_max_target
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
memory_max_target big integer 1G
SQL> show parameter sga_target
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
sga_target big integer 0
SQL> show parameter sga_max_size
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
sga_max_size big integer 1G
SQL> alter system set sga_max_size=800m scope=both; --sga_max_size也一样,不能动态修改
alter system set sga_max_size=800m scope=both
*
第 1 行出现错误:
ORA-02095: 无法修改指定的初始化参数
SQL> alter system set sga_max_size=800m scope=spfile;
系统已更改。
SQL> show parameter pga_aggregate
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target big integer 0