配置SGA静态参数

配置SGA静态参数

配置SGA静态参数 #

  1. LOCK_SGA

LOCK_SGA的作用是将SGA锁定在物理内存内,这样就不会出现SGA使用虚拟内存的情况,显然这样可以提高数据的读取速度。可用下面的命令修改:

alter system set lock_sga=true scope=spfile;

该参数为静态参数,需要重启数据库才会生效。该参数与SGA_TARGET不能同时设置,否则会提示如下错误:

ORA-00847: MEMORY_TARGET/MEMORY_MAX_TARGET and LOCK_SGA cannot be set together

从MEMORY_TARGET改用LOCK_SGA会有很多问题,一般需要先将MEMORY_TARGET、 SGA_TARGET设置为0,重启,再设置DB_CACHE_SIZE、SHARED_POOL_SIZE等参数,再重启。如果发现MEMORY_MAX_TARGET没有被改变,那么可能需要运行下面的语句:

ALTER SYSTEM RESET MEMOYR_MAX_TARGET

改这个参数之前要反复检查环境是否满足条件,并且一定要做好spfile的备份,一般是创建pfile备份,以防万一重启失败时能够恢复spfile。

设置该参数还需要特别注意修改系统默认资源限制,默认情况下Linux系统的用户只能锁定64K内存,此时使用LOCK_SGA会导致ORA-27102: out of memory。需要在系统limits.conf文件中添加如下配置:

oracle		    -	    memlock 3072000
  1. PRE_PAGE_SGA

该参数的作用是启动数据库实例时,将整个SGA读入物理内存,对于内存充足的系统而言,这样显然可以提高系统运行效率。

From #