ITPub博客

首页 > 数据库 > Oracle > RAC下SPFILE文件修改

RAC下SPFILE文件修改

原创 Oracle 作者:DBA_每日记 时间:2019-12-26 22:11:20 0 删除 编辑

关于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信息,指向新文件


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69950231/viewspace-2670816/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
聚焦人文和技术,分享干货,共同成长

注册时间:2019-10-09

  • 博文量
    177
  • 访问量
    238544