修改sga_max_size遇到的问题

修改 sga_max_size

查看 sga_max_size

SQL>show parameters sga;

首先可以上网查一下 sga 相关的概念,这里不在详细说明

要注意:调整sga的顺序是,先调整tmpfs的大小,再调整MEMORY_TARGET 的大小,最后调整sga,保证tmpfs>MEMORY_TARGET >sga+pga
查看 tmpfs的大小 命令:df -f

---------------------------------------------------
说一下我修改的经历
由于一开始不知道调整sga_max_size需要注意这么多点
首先
SQL>alter system set sga_max_size=6400M scope=spfile;
然后就 shutdown 数据库了
然后重启 startup 报错:
ORA-00844: Parameter not taking MEMORY_TARGET into account
ORA-00851: SGA_MAX_SIZE 1073741824 cannot be set to more than MEMORY_TARGET 784334848.

这下完了 被坑了 因为必须是tmpfs>MEMORY_TARGET(在dbs目录下 spfile_xx.ora文件里面有 注意此文件是二进制文件不能修改) >sga+pga所以报错
这样的话 我就开始修改MEMORY_TARGET 可是数据库已经停了 mygod 无解了
于是上网查资料 摸索出了方法:

首先以这种方法去启动: sql>startup pfile='/oracle/admin/scotter(实例)/pfile/init.ora.14201513917';

此时再修改 alter system set memory_target=7000M scope=spfile;

错误又来了:ORA-32001: write to SPFILE requested but no SPFILE is in use

查看一下:
SQL>show parameter spfile;
NAME                                 TYPE                             VALUE                     
------------------------------------ ---------------------
spfile                                   string

没有值

创建:
SQL>create spfile from pfile;

报错:LRM--00109 count not open parameter file '/oracle/product/11.2.0/dbhome_1/dbs/initSCOTTER.ora'

此时把 '/oracle/admin/scotter(实例)/pfile/init.ora.14201513917'; 重命名initSCOTTER.ora 拷贝到/oracle/product/11.2.0/dbhome_1/dbs目录下
再执行
SQL>create spfile from pfile;

OK 可以重新生成/oracle/product/11.2.0/dbhome_1/dbs/spfileSCOTTER.ora(此文件本来就有)

现在可以修改memory_target
SQL>alter system set memory_target=7000M scope=spfile;

SQL>alter system set sga_max_size=6400M scope=spfile;

重启数据库 一切都好了!

你可能感兴趣的:(oracle,spfile,MEMORY_TARGET,sga_max_size)