SPFILE错误导致数据库无法启动
SQL> startup
ORA-01078: failure in processing system parameters
ORA-01565: error in identifying file'/u01/app/oracle/10g/dbs/spfileorcl.ora'
ORA-27046:filesizeisnot a multiple of logical block size
Additional information: 1
分析:
从错误的提示来看,第一行说系统参数出错
第二行详细指出了spfileorcl.ora出现了错误
再看第三行,google了一下ORA
-27046,原来是spfileorcl
.ora文件被损坏,导致spfile文件不可读
在spfile文件损坏的时候,如果尝试使用
create pfile from spfile,也将收到同样的错误
由于告警日志alert_orcl.log
之前被清空,故此时未能看到更详细的错误提示
解决办法:
由于spfile为二进制文件,因此修复比较困难,所以考虑从备份的spfile中恢复
1.spfile备份是否存在,如存在则恢复到原始位置,如放在缺省位置,则为$ORACLE_HOME/dbs,Windows平台为
%ORACLE_HOME%/database
2.spfile备份文件不存在,也可以从pfile启动,启动时指定pfile参数
3.spfile备份文件不存在,pfile也不存在
,则从告警日志alert_orcl
.log中最后一次正常启动中使用strings命令提取相关参数来手动创
建pfile,然后从pfile启动
,启动时指定pfile参数。
注意从告警日志中复制过来的内容有些需要加单引号,一是所有的路径需要使用单引号括起来,其次是和
db_name,db_domain等等
4.spfile备份文件不存在,pfile也不存在
,也不愿从告警日志中手动创建pfile,则可以使用数据库初始化时的pfile来启动,缺省位置为
$ORALCE_BASE/admin/$ORACLE_SID/pfile
5.也可以在SQLplus下直接使用
create spfile from pfile ='<dir>'来先创建spfile文件,再启动Oracle
6.注意
从缺省的pfile或数据库初始化的pfile中来启动数据库后,有很多参数不一致,可能会导致一些功能不可用,需要调整
建议定期备份参数文件
--转自