RAC下SPFILE文件修改

关于RAC下spfile和pfile文件启动浅谈

第一篇:RAC下SPFILE文件修改

在RAC下spfile位置的修改与单节点环境不完全一致,有些地方需要特别注意,否则可能修改会失败。
SPFILE放在ASM中一个不正确的目录(+ARCH)中,现在想把它放在另外一个目录(+DATA)下。

以下是具体步骤:

1. 原spfile位置

SQL> show parameter spfile
spfile string +ARCH/spfiledorcl.ora

2. 拷贝spfile到其他目录
cp spfiledorcl.ora +DATA
copying +data/spfileorcl.ora -> +data/spfileorcl.ora

3. 修改所有节点$ORACLE_HOME/dbs/initorcl.ora下的参数文件
[oracle@dwdb04 dbs]$ vi initdorcl2.ora

SPFILE='+ARCH/spfiledorcl.ora'
替换为
SPFILE='+DATA/spfiledorcl.ora'

4. 通过sqlplus方式重启实例

SQL> shutdown immediate
SQL> startup

ORACLE instance started.

Total System Global Area 5.2429E+10 bytes
Fixed Size 2193872 bytes
Variable Size 3707766320 bytes
Database Buffers 4.8671E+10 bytes
Redo Buffers 48136192 bytes
Database mounted.
Database opened.

SQL > show parameter spfile

NAME TYPE VALUE

spfile string +DATA/spfiledorcl.ora
可以发现,spfile已经修改成功。

5. 但是如果用过srvctl重启数据库,发现spfile又变回来了:
oracle用户下执行
srvctl config database -d orcl -a
srvctl modify database -d orcl -p '+DATA/spfileorcl.ora'
srvctl config database -d orcl -a

su - grid
srvctl stop database -d orcl
srvctl start database -d orcl

6. 原因及解决

这是为什么呢?实际上在RAC环境中,我们更多时候是用srvctl来管理RAC资源,而srvctl的信息来自ocr,
包括spfile的位置信息。我们刚才那样做虽然修改了参数文件的位置,但是ocr并不知道,它还用原来的文件启动数据库。

我们可以用srvctl查看数据库的配置信息来确认:
[oracle@nhi-oa01 dbs]$ srvctl config database -d orcl -a
Database unique name: orcl
Database name: orcl
Oracle home: /u01/app/oracle/product/11.2.0/db_1
Oracle user: oracle
Spfile: +ARCH/spfileorcl.ora
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: orcl
Database instances: orcl1,orcl2
Disk Groups: DATA,ARC
Mount point paths:
Services:
Type: RAC
Database is enabled
Database 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 -a
Database unique name: orcl
Database name: orcl
Oracle home: /u01/app/oracle/product/11.2.0/db_1
Oracle user: oracle
Spfile: +ARCH/spfileorcl.ora
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: orcl
Database instances: orcl1,orcl2
Disk Groups: DATA,ARC
Mount point paths:
Services:
Type: RAC
Database is enabled
Database is administrator managed

7.总结

在RAC环境下修改spfile:
1. 需要修改$ORACLE_HOME/dbs下的相关文件,指向新文件
2. 需要用srvctl修改config信息,指向新文件

猜你喜欢

转载自www.cnblogs.com/sunkang-dba/p/12104733.html