欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

oracle启动时报错:file size is not a multiple of logical block size的解决办法

程序员文章站 2022-04-28 11:24:19
...

 今天在启动oracle的时候,提示归档路径出了问题,因为之前归档是在h:\oracle\arc,不知道什么时候,我把这个文件夹删掉了。

启动的时候报错:

C:\>sqlplus /nolog

SQL*Plus: Release 11.1.0.6.0 - Production on 星期三 10月 12 16:08:48 2011

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

SQL> conn / as sysdba
已连接到空闲例程。
SQL> startup
ORA-16032: parameter LOG_ARCHIVE_DEST_1 destination string cannot be translated
ORA-09291: sksachk: invalid device specified for archive destination
OSD-04018: ??????????????????????????
O/S-Error: (OS 2) ??????????????????????

 我一看,应该是由于h:\oracle\arc目录不存在造成的,但是又不想再新建这个目录,就想把归档目录移动到h:\app\arc目录下。

我找到H:\app\Administrator\product\11.1.0\db_1\database\SPFILES62.ORA,打开,将里面的一个参数做了改动:

*.log_archive_dest_1='location=h:\app\arc'

然后重新startup...

SQL> startup
ORA-01078: failure in processing system parameters
LRM-00109: ???????????????? 'H:\APP\ADMINISTRATOR\PRODUCT\11.1.0\DB_1\DATABASE\INITS62.ORA'

 

心想,哎呀,坏了,spfile应该是二进制文件,我手工改保存过之后肯定把文件给损坏了,但是又没有备份!

想到之前修改spfile的方法,就试一试:

SQL> create pfile from spfile;
create pfile from spfile
*
第 1 行出现错误:
ORA-01565: error in identifying file
'%ORACLE_HOME%\DATABASE\SPFILE%ORACLE_SID%.ORA'
ORA-27046: file size is not a multiple of logical block size
OSD-04012: ?????????????? (OS 3536)

 

发现已经不能读取spfile了,spfile已经坏了...

 

这时,找到了一个解决办法:

1. 在spfile.ora所在文件夹下面建立一个inits62.ora文件(注:s62是我的实例名,如果你的实例名是orcl,那么就是新建initorcl.ora文件)

2. 将现在的spfiles62.ora里面的参数拷贝到inits62.ora中,将乱码删掉。

3. 执行下面命令:

 startup pfile='H:\app\Administrator\product\11.1.0\db_1\database\INITS62.ORA'

启动正常了。

然后执行:

SQL> create spfile from pfile;

文件已创建。

 

OK了,spfile已经修复了。

 

正确的修改spfile方法:

1. create pfile from spfile;

2. 修改pfile,即inits62.ora里面相应的参数

3. create spfile from pfile;

 

或者使用alter system set 参数=新值 scope=spfile;