问题描述
这里希望提醒大家的是:在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.
搞定!!
欢迎光临 重庆思庄Oracle、Redhat认证学习论坛 (http://bbs.cqsztech.com/) | Powered by Discuz! X3.2 |