Oracle故障处理之RAC环境下SPFILE文件修改
关于RAC下spfile和pfile文件启动浅谈
在RAC下spfile位置的修改与单节点环境不完全一致,有些地方需要特别注意,否则可能修改会失败。
SPFILE放在ASM中一个不正确的目录(+ARCH)中,现在想把它放在另外一个目录(+DATA)下。
以下是具体步骤:
1.> 原spfile位置
SQL> show parameter spfilespfile string +ARCH/spfiledorcl.ora
2.> 拷贝spfile到其他目录
cp spfiledorcl.ora +DATAcopying +data/spfileorcl.ora -> +data/spfileorcl.ora
3> 修改所有节点$ORACLE_HOME/dbs/initorcl.ora下的参数文件
[oracle@dwdb04 dbs]$ vi initdorcl2.oraSPFILE='+ARCH/spfiledorcl.ora'替换为SPFILE='+DATA/spfiledorcl.ora'
4.> 通过sqlplus方式重启实例
SQL> shutdown immediateSQL> startupORACLE instance started.Total System Global Area 5.2429E+10 bytesFixed Size 2193872 bytesVariable Size 3707766320 bytesDatabase Buffers 4.8671E+10 bytesRedo Buffers 48136192 bytesDatabase mounted.Database opened.SQL > show parameter spfileNAME TYPE VALUEspfile string +DATA/spfiledorcl.ora
spfile已经修改成功。
5.> 但是如果用过srvctl重启数据库,发现spfile又变回来了:
oracle用户下执行
srvctl config database -d orcl -asrvctl modify database -d orcl -p '+DATA/spfileorcl.ora'srvctl config database -d orcl -a
重启数据库
su - gridsrvctl stop database -d orclsrvctl start database -d orcl
6.> 原因及解决
这是为什么呢?实际上在RAC环境中,我们更多时候是用srvctl来管理RAC资源,而srvctl的信息来自ocr,
包括spfile的位置信息。我们刚才那样做虽然修改了参数文件的位置,但是ocr并不知道,它还用原来的文件启动数据库。
我们可以用srvctl查看数据库的配置信息来确认:
[oracle@nhi-oa01 dbs]$ srvctl config database -d orcl -aDatabase unique name: orclDatabase name: orclOracle home: u01/app/oracle/product/11.2.0/db_1Oracle user: oracleSpfile: +ARCH/spfileorcl.oraDomain:Start options: openStop options: immediateDatabase role: PRIMARYManagement policy: AUTOMATICServer pools: orclDatabase instances: orcl1,orcl2Disk Groups: DATA,ARCMount point paths:Services:Type: RACDatabase is enabledDatabase is administrator managed
可以看到,SPFILE的位置指向是+ARCH。解决方法是通过srvctl修改SPFILE的位置。
srvctl modify database -d orcl -p '+DATA/spfileorcl.ora'[oracle@nhi-oa01 dbs]$ srvctl config database -d orcl -aDatabase unique name: orclDatabase name: orclOracle home: u01/app/oracle/product/11.2.0/db_1Oracle user: oracleSpfile: +ARCH/spfileorcl.oraDomain:Start options: openStop options: immediateDatabase role: PRIMARYManagement policy: AUTOMATICServer pools: orclDatabase instances: orcl1,orcl2Disk Groups: DATA,ARCMount point paths:Services:Type: RACDatabase is enabledDatabase is administrator managed
7> 总结
在RAC环境下修改spfile:
需要修改$ORACLE_HOME/dbs下的相关文件,指向新文件
需要用srvctl修改config信息,指向新文件
文章转载自数据与人,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。





