spfile在共享存储上启动数据库实例的要点及解决办法

问题描述

这里希望提醒大家的是:在RAC环境中轻易不要使用“create pfile from spfile;”命令创建PFILE。

因为在RAC环境,默认情况下的SPFILE会放到共享存储上(裸设备或ASM磁盘组上),RAC的每台主机上是使用PFILE指向SPFILE的方法来完成SPFILE的定位的。

一旦使用“create pfile from spfile;”命令创建PFILE后,新生成的PFILE将覆盖原有dbs目录下的PFILE,此后数据库实例启动时读取的将不再是共享存储上的SPFILE,转而读取本地的PFILE文件的内容。

1.默认情况下$ORACLE_HOME/dbs目录下的PFILE initracdb.ora中只有一行记录,记录着SPFILE的路径指向。

/oracle/app/oracle/product/10.2.0/db_1/dbs$ cat initracdb1.ora

spfile=+DATA/racdb/spfileracdb.ora

2.此时可以从数据库参数得到目前使用的是SPFILE启动的数据库

SQL> show parameter spfile

NAME TYPE VALUE

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

spfile string +DATA/racdb/spfileracdb.ora

3.此时如果使用“create pfile from spfile;”命令创建PFILE,原有PFIEL中的SPFILE指向将被具体的数据库参数所取代。

当数据库再次启动时,因为无法找到SPFILE的位置,将使用PFILE文件中记录的具体参数值完成数据库的启动,这样将会给数据库的管理带来比较大的影响,不再享受到SPFILE参数的便捷。

4.小结

本文描述的是一个常识性的问题,希望大家在对RAC数据库进行维护和管理的过程中不要因此给自己带来不必要的麻烦。

如果出现了这样的问题该如何处理呢?方法比较简单,将PFILE的内容恢复为具有SPFILE指向的内容即可,也许在具体场景中需要重新创建SPFILE。

解决办法创建spfile

SQL>create spfile=’/oradata/oracle/spfileoracle.ora'from pfile=’/home/oracle/initoracle.ora’;

以上spfile位置是没有限制的,而且最好不要把spfile放入到默认位置下

接下来如果在共享存储中的双机或集群环境下直接使用startup启动数据库实例

那么就要做一下步骤了:

在oracle用户下进入$ORACLE_HOME找到dbs如果没有手动创建

[root@localhost dbs]# su - oracle

[oracle@localhost ~]$ cd $ORACLE_HOME/dbs

[oracle@localhost dbs]$ ll

total 60

-rwxrwxr-x 1 oracle dba 1544 May 28 09:06 hc_oracle.dat

-rwxrwxr-x 1 oracle dba 8385 Sep 11 1998 init.ora

-rwxrwxr-x 1 oracle dba 12920 May 3 2001 initdw.ora

-rwxrwxr-x 1 oracle dba 35 May 31 03:47 initoracle.ora

-rw-rw---- 1 oracle oracle 24 May 31 02:53 lkORACLE

[oracle@localhost dbs]$ cat initoracle.ora

spfile='/oracle/spfileoracle.ora'

[oracle@localhost dbs]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on Fri May 31 03:47:47 2013

Copyright (c) 1982, 2005, Oracle. All rights reserved.

Connected to an idle instance.

SQL> startup

ORACLE instance started.

Total System Global Area 289406976 bytes

Fixed Size 1218992 bytes

Variable Size 92276304 bytes

Database Buffers 188743680 bytes

Redo Buffers 7168000 bytes

Database mounted.

Database opened.

搞定!!

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180423A0SAV500?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券