大家在维护RAC环境是,请不要轻易使用ldquo;create pfile from spfile;rdquo;命令创建PFILE文件。 原因是这样的,在RAC环境,S
注意:大家在维护rac环境是,请不要轻易使用“create pfile from spfile;”命令创建pfile文件。
原因是这样的,在rac环境,,spfile默认情况下会存放在共享存储上(裸设备或asm磁盘组上),rac的每个节点都是使用pfile指向spfile的方法来完成spfile的定位的。即pfile文件中存放的是spfile的路径。
如:
[oracle@rac1]#cat /oracle/app/oracle/product/10.2.0/db_1/dbs/nitracdb1.ora
spfile=+data/racdb/spfileracdb.ora
一旦使用“create pfile from spfile;”命令创建pfile后,新生成的pfile将覆盖原有dbs目录下的pfile,此时pfile文件中存放的是具体的参数,而不是spfile的路径了,此后数据库实例启动时读取的将不再是共享存储上的spfile,转而读取本地的pfile文件的内容。
实验的具体步骤如下:
1.默认情况下$oracle_home/dbs目录下的pfile initracdb.ora中只有一行记录,记录着spfile的路径指向。
[oracle@rac1]#cat /oracle/app/oracle/product/10.2.0/db_1/dbs/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文件中记录的具体参数值完成数据库的启动,这样将会给数据库的管理带来比较大的影响。
sql>create pfile from spfile;
sql> show parameter spfile
name type value
--------------- ----------- ------------------------------
spfile string /oracle/app/oracle/product/10.2.0/db_1/dbs/initracdb1.ora
4.小结
本文描述的是一个常识性的问题,希望大家在对rac数据库进行维护和管理的过程中不要因此给自己带来不必要的麻烦。
如果出现了这样的问题该如何处理呢?方法比较简单,修改pfile文件,重新指向spfile的路径即可,spfile=+data/racdb/spfileracdb.ora
将pfile的内容恢复为具有spfile指向的内容即可。
RMAN还原相关概念、spfile、controlfile恢复
Oracle启动与spfile文件
使用spfile将所配置的初始化参数重置为系统默认值
又一例spfile设置错误导致数据库无法启动
Oracle oradim的pfile参数
本文永久更新链接地址:











