浅析RAC下SPFILE文件修改之整理三篇文章

本文详细介绍了在Oracle RAC环境下SPFILE文件的修改步骤,包括ASM存储中的SPFILE解析和Oracle Restart启动数据库实例时遇到的问题及解决方案。文章通过实例演示了如何在RAC中正确修改SPFILE位置,并分析了Restart启动时的参数文件检索机制,强调了在RAC中管理SPFILE的重要性。
摘要由CSDN通过智能技术生成

关于RAC下spfile浅析_整理于_2014.4.17

 

说明:文章来源于网络

第一篇:RAC下SPFILE文件修改

在RAC下spfile位置的修改与单节点环境不完全一致,有些地方需要特别注意,否则可能修改会失败。

 

下面用一个例子说明:SPFILE放在ASM中一个不正确的目录(+ARCH)中,现在想把它放在另外一个目录(+DBSYS)下。

 

以下是具体步骤:

 

1. 原spfile位置

SQL> show parameter spfile

 

NAME TYPE VALUE

----------------------------------------------- ------------------------------

spfile string +ARCH/dwrac/spfiledwrac.ora

 

2. 拷贝spfile到其他目录

 

由于在ASM中,不能直接cp,需要通过迂回的办法实现。

 

sys@dwrac2> create pfile='/tmp/pfile.ora'from spfile;

 

File created.

 

sys@dwrac2> createspfile='+DBSYS/dwrac/spfiledwrac.ora' from pfile='/tmp/pfile.ora';

 

File created.

 

3. 修改所有节点$ORACLE_HOME/dbs/init下的参数文件

[oracle@dwdb04 dbs]$ vi initdwrac2.ora

 

SPFILE='+ARCH/dwrac/spfiledwrac.ora'

==>

SPFILE='+DBSYS/dwrac/spfiledwrac.ora'

 

 

4. 通过sqlplus方式重启实例

sys@dwrac2> shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

sys@dwrac2> 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.

sys@dwrac2> show parameter spfile

 

NAME TYPE VALUE

------------------------------------ -----------------------------------------

spfile string +DBSYS/dwrac/spfiledwrac.ora

 

可以发现,spfile已经修改成功。

 

5. 但是如果用过srvctl重启数据库,发现spfile又变回来了:

 

[oracle@dwdb02 dbs]$ srvctl stop instance-d dwrac -i dwrac1,dwrac2,dwrac3,dwrac4

 

[oracle@dwdb02 dbs]$ srvctl start instance-d dwrac -i dwrac1,dwrac2,dwrac3,dwrac4

 

[oracle@dwdb02 dbs]$ sqlplus "/assysdba"

 

sys@dwrac2> show parameter spfile

 

NAME TYPE VALUE

----------------------------------------------- ------------------------------

spfile string +ARCH/dwrac/spfiledwrac.ora

 

6. 原因及解决

 

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

我们可以用srvctl查看数据库的配置信息来确认:

 

[oracle@dwdb01 dbs]$ srvctl config database-d dwrac -a

dwdb01 dwrac1 /oracle/product/10.2.0/db

dwdb02 dwrac2 /oracle/product/10.2.0/db

dwdb03 dwrac3 /oracle/product/10.2.0/db

dwdb04 dwrac4 /oracle/product/10.2.0/db

DB_UNIQUE_NAME: dwrac

DB_NAME: dwrac

ORACLE_HOME: /oracle/product/10.2.0/db

SPFILE: +ARCH/dwrac/spfiledwrac.ora

DOMAIN: null

DB_ROLE: null

START_OPTIONS: null

POLICY: AUTOMATIC

ENABLE FLAG: DB ENABLED

 

可以看到,SPFILE的位置指向是+ARCH。解决方法是通过srvctl修改SPFILE的位置。

 

[oracle@dwdb01 dbs]$ srvctl modify database-d dwrac -p '+DBSYS/dwrac/spfiledwrac.ora'

[oracle@dwdb01 dbs]$ srvctl config database-d dwrac -a

dwdb01 dwrac1 /oracle/product/10.2.0/db

dwdb02 dwrac2 /oracle/product/10.2.0/db

dwdb03 dwrac3 /oracle/product/10.2.0/db

dwdb04 dwrac4 /oracle/product/10.2.0/db

DB_UNIQUE_NAME: dwrac

DB_NAME: dwrac

ORACLE_HOME: /oracle/product/10.2.0/db

SPFILE: +DBSYS/dwrac/spfiledwrac.ora

DOMAIN: null

DB_ROLE: null

START_OPTIONS: null

POLICY: AUTOMATIC

ENABLE FLAG: DB ENABLED

 

[oracle@dwdb01 dbs]$ srvctl stop database-d dwrac

[oracle@dwdb01 dbs]$ srvctl start database-d dwrac

sys@dwrac2> show parameter spfile

 

NAME TYPE VALUE

----------------------------------------------- ------------------------------

spfile string +DBSYS/dwrac/spfiledwrac.ora

 

可以看到,此时Oracle是用新的spfile启动的。

 

7.总结

在RAC环境下修改spfile:

 

1. 需要修改$ORACLE_HOME/dbs下的相关文件,指向新文件

2. 需要用srvctl修改config信息,指向新文件

 

第二篇:Oracle ASM存储Spfile解析

以下来自论坛:

在之前的文章《Oracle Restart启动数据库实例故障一例》(http://space.itpub.net/17203031/viewspace-774622)中,笔者解决了一个由于使用create pfilefrom spfile引起的Restart无法启动数据库实例的故障。

 

严格的说,笔者并没有完全将其解决。主要体现在Spfile的使用和存放上。

 

1、问题简述

 

Oracle Database安装在ASM存储的时候,默认都是使用ASM保存Spfile参数文件。与早期的pfile文件不同,Spfile是具有二进制格式,能够支持部分参数的动态调整。

 

所以,我们出现问题的时候,发现Restart的配置信息中包括了ASM中的Spfile参数内容。

 

 

[oracle@SimpleLinux ~]$ srvctl config database -d ora11g

Database unique name: ora11g

Database name:

Oracle home: /u01/app/oracle/product/11.2.0/db_1

Oracle user: oracle

Spfile: +DATA/ORA11G/spfileora11g.ora

Domain:

Start options: open

Stop options: immediate

Database role: PRIMARY

Management policy: AUTOMATIC

Database instance: ora11g

Disk Groups: DATA,RECO

Services:

 

 

我们之前的修复方法,就是将spfile内容置空,让数据库实例启动使用默认路径$ORACLE_HOME/dbs的spfile和pfile参数进行检索。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值