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
