之前曾查看advice来修改了sga到建议值,结果因为32位win系统导致sga不能超过1.7无法启动,周末接到电话,客户正在检查,要求紧急处理,在家里远程了一下,查了下CRS
E:\oracle\product\10.2.0\crs\BIN>crs_stat -t
名称 类型 目标 状态 主机
------------------------------------------------------------
ora.sxdb.db application ONLINE OFFLINE
ora....b1.inst application ONLINE OFFLINE
ora....b2.inst application ONLINE OFFLINE
ora....b3.inst application ONLINE OFFLINE
ora....SM1.asm application ONLINE ONLINE sxdb1
ora....B1.lsnr application ONLINE ONLINE sxdb1
ora.sxdb1.gsd application ONLINE ONLINE sxdb1
ora.sxdb1.ons application ONLINE ONLINE sxdb1
ora.sxdb1.vip application ONLINE ONLINE sxdb1
ora....SM2.asm application ONLINE ONLINE sxdb2
ora....B2.lsnr application ONLINE ONLINE sxdb2
ora.sxdb2.gsd application ONLINE ONLINE sxdb2
ora.sxdb2.ons application ONLINE ONLINE sxdb2
ora.sxdb2.vip application ONLINE ONLINE sxdb2
ora....SM3.asm application ONLINE ONLINE sxdb3
ora....B3.lsnr application ONLINE ONLINE sxdb3
ora.sxdb3.gsd application ONLINE ONLINE sxdb3
ora.sxdb3.ons application ONLINE ONLINE sxdb3
ora.sxdb3.vip application ONLINE ONLINE sxdb3
别的都没有问题,就是实例起不来,单独登录一个节点手工startup,结果报错
查了下alert.log,发现好多4030,看来是sga配大了,于是改用pfile启动
sqlplus /nolog
startup pfile='e:\pfile.ora';
可以启动,继续修改spfile
create spfile from pfile;
提示成功,启动其他俩节点,还是报错,mount状态提示的sga明显还是没修改的状态,spfile没有修改成功吗?懒得关库,重启了其他两台机器,保证只有一个实例,然后再次创建spfile,重启库还是不行?当时太着急于是三个节点都拷贝同一个pfile文件,手动startup,先让业务活起来。
第二天开始详细检查,因为系统是rac,使用asm,所以进入asm查看
别的都没有问题,就是实例起不来,单独登录一个节点手工startup,结果报错
查了下alert.log,发现好多4030,看来是sga配大了,于是改用pfile启动
sqlplus /nolog
startup pfile='e:\pfile.ora';
可以启动,继续修改spfile
create spfile from pfile;
提示成功,启动其他俩节点,还是报错,mount状态提示的sga明显还是没修改的状态,spfile没有修改成功吗?懒得关库,重启了其他两台机器,保证只有一个实例,然后再次创建spfile,重启库还是不行?当时太着急于是三个节点都拷贝同一个pfile文件,手动startup,先让业务活起来。
第二天开始详细检查,因为系统是rac,使用asm,所以进入asm查看
C:\Documents and Settings\Administrator>set oracle_sid=+asm2
C:\Documents and Settings\Administrator>asmcmd
"asmcmd: the environment variable ORACLE_HOME is not set."
C:\Documents and Settings\Administrator>set oracle_home=e:\oracle\product\10.2.0
\db_1
C:\Documents and Settings\Administrator>asmcmd
ASMCMD>ls -l
发现spfile文件的修改时间竟然是7号,我8号修改的竟然没生效,后来突然想到会不会在本地?查了下果然,spfile被创建在了本地,重新修改
sql>create spfile='+data' from pfile;
这次在重启,没问题了,看来在rac下创建spfile需要制定路径才可以
附sga_target_advice
发现spfile文件的修改时间竟然是7号,我8号修改的竟然没生效,后来突然想到会不会在本地?查了下果然,spfile被创建在了本地,重新修改
sql>create spfile='+data' from pfile;
这次在重启,没问题了,看来在rac下创建spfile需要制定路径才可以
附sga_target_advice
SQL> select * from v$sga_target_advice;
SGA_SIZE SGA_SIZE_FACTOR ESTD_DB_TIME ESTD_DB_TIME_FACTOR ESTD_PHYSICAL_READS
---------- --------------- ------------ ------------------- -------------------
1048 1 97321 1 24390849
524 .5 113574 1.167 29820252
786 .75 104455 1.0733 26834812
2096 2 93147 .9571 23346921
1572 1.5 94615 .9722 23798151
1834 1.75 93370 .9594 23346921
1310 1.25 95589 .9822 24059133
文档里的解释
SGA_SIZENUMBERSize of the SGA
SGA_SIZE_FACTORNUMBERRatio between the SGA_SIZE and the current size of the SGA
ESTD_DB_TIMENUMBEREstimated DB_TIME for this SGA_SIZE
ESTD_DB_TIME_FACTORNUMBERRatio between ESTD_DB_TIME and DB_TIME for the current size of the SGA
ESTD_PHYSICAL_READSNUMBEREstimated number of physical reads
SGA_SIZE 是SGA的大小
SGA_SIZE_FACTOR 是对应当前SGA的倍数
ESTD_DB_TIME dbtime的消耗
文档里的解释
SGA_SIZENUMBERSize of the SGA
SGA_SIZE_FACTORNUMBERRatio between the SGA_SIZE and the current size of the SGA
ESTD_DB_TIMENUMBEREstimated DB_TIME for this SGA_SIZE
ESTD_DB_TIME_FACTORNUMBERRatio between ESTD_DB_TIME and DB_TIME for the current size of the SGA
ESTD_PHYSICAL_READSNUMBEREstimated number of physical reads
SGA_SIZE 是SGA的大小
SGA_SIZE_FACTOR 是对应当前SGA的倍数
ESTD_DB_TIME dbtime的消耗
ESTD_DB_TIME_FACTOR dbtime消耗的倍数
ESTD_PHYSICAL_READS 物理读数
ESTD_PHYSICAL_READS 物理读数