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;