oracle01565与27037,SPFILE 错误导致数据库无法启动(ORA-01565)

--==========================================

--SPFILE错误导致数据库无法启动(ORA-01565)

--==========================================

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: file size is not a multiple of logical block size

Additional information: 1

分析:

从错误的提示来看,第一行说系统参数出错

第二行详细指出了spfileorcl.ora出现了错误

再看第三行,google了一下ORA-27046,原来是spfileorcl.ora文件被损坏,导致spfile文件不可读

在spfile文件损坏的时候,如果尝试使用createpfile 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下直接使用createspfile from pfile = '

6.注意

从缺省的pfile或数据库初始化的pfile中来启动数据库后,有很多参数不一致,可能会导致一些功能不可用,需要调整

建议定期备份参数文件

7.更多有关参数文件的详细描述,请参阅:

解决示例

--本示例直接数据库了初始化数据库时的pfile来启动数据库

--启动后收到了有关控制文件的错误提示

SQL> startup pfile='/u01/app/oracle/admin/orcl/pfile/init.ora.2292010214348'

ORACLE instance started.

Total System Global Area251658240 bytes

Fixed Size1218796 bytes

Variable Size83887892 bytes

Database Buffers163577856 bytes

Redo Buffers2973696 bytes

ORA-00205: error in identifying control file, check alert log for more info

--从告警日志中查看控制文件的信息,告警日志提示control03.ctl不存在

SQL> ho tail -n 100 /u01/app/oracle/admin/orcl/bdump/alert_orcl.log

Thu Jul 29 16:52:44 2010

ALTER DATABASEMOUNT

Thu Jul 29 16:52:44 2010

ORA-00202: control file: '/u01/app/oracle/oradata/orcl/control03.ctl'

ORA-27037: unable to obtain file status

Linux Error: 2: No such file or directory

--查看控制文件相关的参数信息中定义了control03.ctl

SQL> show parameter control_

NAMETYPEVALUE

------------------------------------ ----------- ------------------------------

control_file_record_keep_timeinteger7

control_filesstring/u01/app/oracle/oradata/orcl/c

ontrol01.ctl, /u01/app/oracle/

oradata/orcl/control02.ctl, /u

01/app/oracle/oradata/orcl/con

trol03.ctl

SQL> ho ls /u01/app/oracle/oradata/orcl/control03.ctl--查看control03.ctl物理文件不存在

ls: /u01/app/oracle/oradata/orcl/control03.ctl: No such file or directory

--修改pfile文件

SQL> ho vim /u01/app/oracle/admin/orcl/pfile/init.ora.2292010214348

--删除这段,/u01/app/oracle/oradata/orcl/control03.ctl内容

--从修改后的pfile文件启动

SQL> startup pfile='/u01/app/oracle/admin/orcl/pfile/init.ora.2292010214348'

Total System Global Area251658240 bytes

Fixed Size1218796 bytes

Variable Size83887892 bytes

Database Buffers163577856 bytes

Redo Buffers2973696 bytes

Database mounted.

Database opened.

SQL> ho ls /u01/app/oracle/10g/dbs/

alert_orcl.logcore_5372init.orainitorcl.oraorapworcl

core_5360hc_orcl.datinitdw.oralkORCL

--从pfile文件中创建spfile

SQL> create spfile from pfile = '/u01/app/oracle/admin/orcl/pfile/init.ora.2292010214348';

File created.

--查看spfileorcl.ora已生成

SQL> ho ls /u01/app/oracle/10g/dbs/

alert_orcl.loghc_orcl.datinitorcl.oraspfileorcl.ora

core_5360init.oralkORCL

core_5372initdw.oraorapworcl

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup--从spfile启动

ORACLE instance started.

Total System Global Area251658240 bytes

Fixed Size1218796 bytes

Variable Size83887892 bytes

Database Buffers163577856 bytes

Redo Buffers2973696 bytes

Database mounted.

Database opened.

实际上可以先createspfile from pfile = '

更简单些,比如上面的例子中需要去掉一个控制文件。当然此类问题是仁者见仁,智者见者。

总之一条,定期备份参数文件是相当有必要的!

更多

原文链接:

http://blog.csdn.net/robinson_0612/article/details/5774795

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值