修改SGA导致down机的解决方法

一次修改了SGA的大小后,数据库突然就down掉了,无论如何也startup不了,连em也连不上。

为了恢复原来的SGA,就更改了spfile中的参数设置,不料原来的问题没解决,新的问题又出现了,

一startup就出现这样的错误:

ORA-01565: error in identifying file 'E:\oracle\product\10.2.0\db_1/dbs/spfileoral.ora'
ORA-27046: file size is not a multiple of logical block size
OSD-04012: ?????????????? (OS 3589)

后来才明白spfile是二进制文件,不可以更改的,改之前又忘记备份,无法通过备份来恢复,只能Google,

终于在网上找到了解决方法,具体是:

1,找到pfile文件:在10.0.2\admin\实例名\pfile\文件夹下有个init.ora.xxxxxxxxxxx 文件,该文件为带时间戳的pfile文件,将时间戳去掉,变成init.ora文件。

2,
>sqlplus /nolog
sql>conn 用户名/密码 as sysdba
sql>startup pfile='10.0.2\admin\实例名\pfile\init.ora';
启动成功后
sql>create spfile='path/spfileSID.ora' from pfile='10.0.2\admin\实例\pfile\init.ora';

3,将新生成的文件spfileSID.ora拷贝到 "10.2.0\db_1\database\”,目录下覆盖原文件,如果存在initSID.ora文件请重命名。

4,
sql>shutdown immediate
sql>startup

经过上面一系列的步骤之后,数据库实例终于可以正常启动……

原文地址:https://www.cnblogs.com/linsond/p/1604348.html