因为在32位操作系统上执行了如下的操作
alter system set sga_max_size=2G scope=spfile;
之后再重启数据库就会失败
报出错误:
ORA-27102
Out of Memory
解决的方法也很简单:
新建一个文本文件 如initaaa.ora
内容:
SPFILE='../product/10.2.0/db_1/dbs/spfileorcl.ora'
sga_max_size=1073741824
保存之后
如是启动数据库:
SQL>startup pfile=$ORACLE_HOME/dbs/initaaa.ora
启动成功之后就可以把之前的错误参数修改过来了
对于Spfile损坏或者丢失的情况
可以删除原来的Spfile,然后利用系统中备份的pfile 来创建一个新的Spfile
SQL>CREATE SPFILE FROM PFILE='.\pfile\init.ora.83200715416'
------------------------------------------------------------------------------------------------------------------------------------------------------
其他命令(转):
//查看Oracle以pfile还以Spfile方式启动
SQL>Select isspecified,count(*) from v$spparameter group by isspecified;
如果isspecified里有true,表明用spfile进行了指定配置
如果全为false,则表明用pfile启动
//查看Spfile的路径
SQL>show parameter spfile
//从spfile获取pfile
SQL>Create pfile='d:pfileSID.ora' from spfile;
SQL>Create pfile='d:pfileSID.ora' from spfile='spfile_location';
//从pfile获取spfile
SQL>Create spfile from pfile='Your_pfile_location'
SQL>Create spfile='spfile_location' from pfile='Your_pfile_location'
//动态修改参数
SQL>alter system set parameter=Value scope=spfile|both|memory
Startup nomount的时候需要读去spfile或pfile,两者共存,spfile优先
//强制用pfile启动
SQL>startup pfile='Your_Pfile.ora'
SQL>startup spfile='/data/oracle/product/10.2.0/db_1/dbs/dbs/spfile_mqq.ora' force