一:查看当前SGA,PGA设置
show parameter sga;
show parameter pga;
oracle推荐OLTP(on-line Transaction Processing)系统oracle占系统总内存的80%,然后再分配80%给SGA,20%给PGA。也就是
SGA=system_total_memory*80%*80%
PGA=system_total_memory*80%*20%
二:调整SGA,PGA
(1).确认数据库参数为spfile
SELECT NAME, VALUE, display_value FROM v$parameter WHERE NAME = 'spfile';
查询结果如下:
(2).调整SGA,PGA:
alter system set sga_target=10G scope=spfile;
alter system set pga_aggregate_target=2G scope=spfile;
(3).重启数据库使修改生效:
关闭数据库:shutdown immediate
启动数据库:startup
注意:如果修改的SGA,PGA过大,会导致内存不足,数据库启动失败,如下图所示:
此时需要先在Oracle的admin目录下找到pfile文件
find . -name init.ora*
如下图所示:
然后根据此pfile文件,重新启动数据库:
startup pfile=''
如下图所示:
此时数据库启动开后不能直接修改PGA,SGA,需要先创建spfile文件:
create spfile from pfile='启动的那个文件目录/init.ora.*'
然后重启数据库,此时重启就不用pfile文件重启了,正常重启就可以。
此时的SGA,PGA会变回调整之前的大小。
然后,重新修改SGA,PGA即可。