11g rac 修改参数文件导致数据库无法启动 解决方案!

来源:互联网 发布:看图找地方的软件 编辑:程序博客网 时间:2024/05/16 07:03
rac中spfile默认是存在  '+DATADG/SID/spfileSID.ora'

然而一次修改错误的修改参数,重启起数据库之后报错导致数据库起不来了。
则可以先用各个节点上备用的pfile来启动。

备用pfile位置:

       '$ORACLE_BASE/admin/SID/pfile/init.ora.88201323726'


即:在任意一个节点上执行

startup pfile='$ORACLE_BASE/admin/SID/pfile/init.ora.88201323726'

数据库启动起来之后,再将'+DATADG/SID/spfileSID.ora' 创建一个pfile版本。
create pfile='/tmp/pfileSID>ora' from spfile='+DATADG/SID/spfileSID.ora'

创建成功之后vi 修改'/tmp/pfileSID>ora' 此文件 将先前改错的参数改回来。

然后再通过改正确的pfile '/tmp/pfileSID>ora' 来生成新的spfile

即:create spfile= '+DATADG/SID/spfileSID.ora' from pfile='/tmp/pfileSID>ora';

然后 关闭数据库,删除之前在节点上通过备份init.ora文件创建出来的spfile.

然后 启动数据库 就会发现可以正常通过+DATADG/SID/spfileSID.ora参数文件启动了。

总结:
a: 通常读取参数文件顺序
我们知道,如果不指定参数文件,oracle是按照这个顺序查找文件来启动数据库的:
spfileSID.ora
spfile.ora
initSID.ora
init.ora
如果这些文件都没有找到,启动会失败。

b:查看srvctl读取spfile位置
srvctl config database -d orcl

c:修改集群中spfile位置
   c1:在asmcmd中将spfile复制到修改后的位置
      用cp命令

   c2:将更改后的路径注册到ocr
      srvctl modify database -d orcl -p '+dbdg/orcl_2/spfileorcl.ora';