$ORACLE_HOME/dbs目录下的的spfileORCL.ora是一个二进制文件,不能手动编辑,修改后会导致oracle数据库无法正常启动。某日在操作数据库的过程中不慎将其修改,并且没有备份。我在这里描述一下恢复的过程,方法不一定特别好,凑合能用。
1. 用dbca新建一个oracle数据库实例dborcl
[oracle@cat dbs]#dbca
建立实例完成后,$ORACLE_HOME/dbs目录下会生成文件spfiledborcl.ora
2. 删除已经换掉的spfileORCL.ora文件,将$ORACLE_HOME/dbs/spfiledborcl.ora拷贝为spfileORCL.ora
[oracle@cat dbs]#rm spfileORCL.ora
[oracle@cat dbs]#cp spfiledborcl.ora spfileORCL.ora
3. 重启oracle服务器
本机设置了自动启动ORCL实例,如果没有设置开机自启动,也可以收到启动,启动实例完成后用lsnrctl status查看,实例名字却显示为ORCL,登陆数据库可以看到确可以看到数据库里面的内容为新建的实例。这可以看出oracle启动的时候会去找dbs目录下的找初始化文件spfile,按照系统配置的变量启动了dborcl实例。
4. 导出oracle初始化文本文件
[oracle@cat dbs]#sqlplus / as sysdba
SQL> create pfile="pfile.ora" from spfile="spfileORCL.ora"; --生成的文件会在当前目录下
SQL> shutdown immediate; --关闭数据库
SQL> exit

当spfileORCL.ora被错误修改导致数据库无法启动时,可以通过新建实例dborcl,拷贝新的spfile,重启服务器,导出并编辑pfile.ora,再生成新的spfile来修复。详细步骤包括使用dbca创建实例,替换spfile,重启服务器,创建pfile,编辑并生成新的spfile。
最低0.47元/天 解锁文章
695

被折叠的 条评论
为什么被折叠?



