对Spfile之参数错误修改的解决办法


众所周知,在Oracle9i中对初始化参数的管理引入了一个新的文件:Spfile.这个参数是个二进制文件,手工对其进行编辑会出错.可以采用alter system set ......的命令方式来对其进行修改.

不妙的是,有的时候,错误的修改了参数之后发现系统不能启动,而粗心的用户或者初级DBA可能还没有对该文件(或者参数文件的内容)进行备份.

这个时候如何解决呢?

下面是模拟出错的场景:

SQL> connect / as sysdba
已连接。
SQL> show parameter spfile

NAME TYPE VALUE
------------------------------------ ---------- ------------------------------
spfile string %ORACLE_HOME%\DATABASE\SPFILE%ORACLE_SID%.ORA

#使用了Spfile

SQL> show parameter db_cache_size;

NAME TYPE VALUE
------------------------------------ ---------- ----------------------------
db_cache_size big integer 67108864

SQL> alter system set db_cache_size=671088640000000 scope=spfile;

系统已更改。

#我们在上一步把一个参数进行“错误的调整”

SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。

SQL> startup
ORA-27102: out of memory
OSD-00029: Message 29 not found; product=RDBMS; facility=SOSD

O/S-Error: (OS 8) ?洢???????????????

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus