oracle 自己改了 spfile 导致起不来

oracle pfile 出错

今天在升级 oracle 内存的时候参数调错了,导致 oracle 起不来, 情急之下用 vim 修改了 spfile 文件,结果由于该文件是二进制的,不能直接修改,所以启动报错了.

SQL> startup pfile='/u01/app/oracle/product/11.2.0/dbs/spfileorcl.ora'
LRM-00123: 在输入文件发现无效的字符 0
ORA-01078: 处理系统参数失败

下面就是紧急修复那个文件了

进入 oracle 的备份目录下找到上一次成功的配置文件, 记录下配置文件的位置

[oracle@oracle ~]$ cd $ORACLE_HOME/admin/orcl/pfile
[oracle@oracle pfile]$ ll
total 12
-rw-r----- 1 oracle oinstall 2042 Jan  5 17:35 init.ora
-rw-r----- 1 oracle oinstall 2042 Jun 24  2017 init.ora.524201715531

进入 oracle 实例的配置文件处, 备份原来的 ora 文件

[oracle@oracle ~]$ cd $ORACLE_HOME/product/11.2.0/dbs
[oracle@oracle dbs]$ mkdir spfilebak
[oracle@oracle dbs]$ mv *.ora spfilebak

在 sqlplus 中启动 oracle

startup pfile='$ORACLE_HOME/admin/orcl/pfile/init.ora'

生成新的 spfile 文件 ($ORACLE_HOME 记得替换, 没试过 sqlplus 是否直接支持这样的写法)

create pfile='$ORACLE_HOME/admin/orcl/pfile/spfileorcl.ora' from pfile='$ORACLE_HOME/admin/orcl/pfile/init.ora';

重启 oracle 实例

shutdown abort
startup 

至此完成

原文地址:https://www.cnblogs.com/kischn/p/8213457.html