时间:2021-07-01 10:21:17 帮助过:14人阅读
RAC环境下,创建spfile导致节点间数据库参数不一致的问题,如果是这个命令在rac环境下面,就会出现问题,因为spfile默认是创建在
初接触RAC,创建spfile的时候,需要制定位置例如:
create spfile='xxxxx' from pfile ;
一般$Oracle_HOME/dbs/init$ORACLE_SID.ora
里面的内容都只是共享磁盘中spfile的信息。
例如:
[oracle@rac1 dbs]$strings initdex1.ora
SPFILE='+BACKUPS/dex/spfiledex.ora'
如果错误的创建了spfile
例如使用如下命令:
create spfile from pfile='xxxxx' ;
如果是这个命令在rac环境下面,就会出现问题,因为spfile默认是创建在$ORACLE_HOME/dbs/spfile$ORACLE_SID.ora这里的,并且oracle启动的时候会优先查找以spfile开头的文件,如果找到,则不会再使用pfile,也就不会使新修改的内容生效,,这样也会造成rac两个节点的参数内容不同,有很严重的后果。
解决办法就是。
1.在执行create spfile from pfile='xxxxx' ;命令的节点使用下面的命令
create spfile='+BACKUPS/dex/spfiledex.ora' from pfile='xxxxx'(这个包含了新内容的pfile) ;
2.然后关闭数据库
3.编辑$ORACLE_HOME/dbs/init$ORACLE_SID.ora
加入如下内容
SPFILE='+BACKUPS/dex/spfiledex.ora'
4.将$ORACLE_HOME/dbs/spfile$ORACLE_SID.ora这个spfile重新命名
mv$ORACLE_HOME/dbs/spfile$ORACLE_SID.ora$ORACLE_HOME/dbs/spfile$ORACLE_SID.ora.bk
5.各个节点都重启即可。