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

2014-11-24 17:10:05 · 作者: · 浏览: 6
e/product/11.2.0/db_1/dbs/initora11g.ora

ORACLE instance started.

Total System Global Area 263639040bytes

Fixed Size 1344312bytes

Variable Size 134221000bytes

Database Buffers 125829120bytes

Redo Buffers 2244608bytes

Database mounted.

Database opened.

SQL> show parameter spfile

NAME TYPE VALUE

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

spfile string

SQL> create spfile='+DATA/ORA11G/spfileora11g.ora'from pfile;

File created.

此时,我们在ASM里面可以看到生成的spfile二进制文件。

ASMCMD> ls -l

Type Redund Striped Time Sys Name

Y CONTROLFILE/

Y DATAFILE/

Y ONLINELOG/

Y PARAMETERFILE/

Y TEMPFILE/

N spfileora11g.ora => +DATA/ORA11G/PARAMETERFILE/spfile.267.829130539

第二部是创建维护一个“转发”参数文件。

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

[oracle@SimpleLinux ~]$ cd $ORACLE_HOME

[oracle@SimpleLinux db_1]$ cd dbs

[oracle@SimpleLinux dbs]$ ls -l

total 28

-rw-rw---- 1 oracle asmadmin 1544 Sep 12 12:58 hc_ora11g.dat

-rw-r--r-- 1 oracle oinstall 2851 May 15 2009 init.ora

-rwxr-x--- 1 oracle oinstall 959 Oct 18 09:51 initora11g.ora

-rwxrwx--- 1 oracle oinstall 887Sep 29 09:31 initora11g.ora.bk

-rw-r----- 1 oracle asmadmin 24Sep 12 12:58 lkORA11G

-rw-r----- 1 oracle oinstall 1536 Sep 12 13:11 orapwora11g

-rw-r----- 1 oracle asmadmin 2560 Oct 18 09:57spfileora11g.ora

在里面要完成两件事情,一个是将dbs目录下面的spfile删除。因为依据Oracle启动的原则,是先找spfile,之后再找pfile。第二件是修改文本参数文件,作为转发。

[oracle@SimpleLinux dbs]$ mv spfileora11g.ora spfileora11g.ora.bk

[oracle@SimpleLinux dbs]$ cat initora11g.ora

SPFILE='+DATA/ora11g/spfileora11g.ora’ –注意:不能包括*前缀或者SID前缀

[oracle@SimpleLinux dbs]$ ls -l

total 28

-rw-rw---- 1 oracle asmadmin 1544 Sep 12 12:58 hc_ora11g.dat

-rw-r--r-- 1 oracle oinstall 2851 May 15 2009 init.ora

-rwxr-x--- 1 oracle oinstall 41Oct 18 10:07 initora11g.ora

-rwxrwx--- 1 oracle oinstall 887Sep 29 09:31 initora11g.ora.bk

-rw-r----- 1 oracle asmadmin 24Sep 12 12:58 lkORA11G

-rw-r----- 1 oracle oinstall 1536 Sep 12 13:11 orapwora11g

-rw-r----- 1 oracle asmadmin 2560 Oct 18 09:57 spfileora11g.ora.bk

使用srvctl关闭和启动数据库

[oracle@SimpleLinux dbs]$ srvctl start database -d ora11g

[oracle@SimpleLinux dbs]$ 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:

[oracle@SimpleLinux dbs]$ srvctl status database -d ora11g

Database is running.

数据库中,spfile参数被设置为ASM路径。

SQL> show parameter spfile;

NAME TYPE VALUE

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

spfile string +DATA/ora11g/spfileora11g.ora

故障彻底解决。

4、结论

综合上面的实验,我们可以看到ASM下Spfile使用的方法。ASM下的Spfile并不是抛弃原有的启动规则,而是借助原有的pfile进行了目标转接。之后笔者查看MOS中的对应方案,官方推荐的也是这样的做法。

这样就需要一个前提,就是dbs或者database目录中不能包括spfile。如果包括了,Oracle设置的转接机制就被替换掉了。

另一个问题是我们一直看到的错误提示信息,提示参数文件initora11g.ora格式不能识别。笔者的理解是,原始的文件是笔者使用create pfilefrom spfile创建出来的,默认的SPFILE=XXX的内容被覆盖。而Oracle Restart不能识别这种非转接内容文件,所以报错。

第三篇:Oracle Restart启动数据库实例故障一例

网络整理:

Oracle Restart是11gR2中推出的重要高可用(HighAvailability)特性。在Single Instance情况下,Clusterware形成一个可用