修改SGA,PGA

时间:2024-04-07 17:48:28

一:查看当前SGA,PGA设置

show parameter sga;

show parameter pga;

修改SGA,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';

查询结果如下:

修改SGA,PGA

    (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过大,会导致内存不足,数据库启动失败,如下图所示:

修改SGA,PGA

此时需要先在Oracle的admin目录下找到pfile文件

find . -name init.ora*

如下图所示:

修改SGA,PGA

然后根据此pfile文件,重新启动数据库:

startup pfile=''

如下图所示:

修改SGA,PGA

此时数据库启动开后不能直接修改PGA,SGA,需要先创建spfile文件:

create spfile from pfile='启动的那个文件目录/init.ora.*'

然后重启数据库,此时重启就不用pfile文件重启了,正常重启就可以。

修改SGA,PGA

此时的SGA,PGA会变回调整之前的大小。

然后,重新修改SGA,PGA即可。