暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

Oracle RAC 环境下Pfile 与Spfile​

Young Seven 2019-07-29
1850

Oracle RAC 环境下Pfile 与Spfile

在维护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指向的内容即可。


oracle官方文档解释如下

必须在所有实例上具有相同设置的参数

某些对于创建数据库或影响某些数据库操作至关重要的初始化参数,对于Oracle RAC数据库中的每个实例而言,都必须具有相同的值。在SPFILE中或每个实例的单个PFILE中指定这些参数值。以下列表包含每个实例上必须相同的参数:

CLUSTER_DATABASE

COMPATIBLE

CONTROL_FILES

DB_BLOCK_SIZE

DB_DOMAIN

DB_FILES

DB_NAME

DB_RECOVERY_FILE_DEST

DB_RECOVERY_FILE_DEST_SIZE

DB_UNIQUE_NAME

DML_LOCKS (只有设置为0)

INSTANCE_TYPE (RDBMS或ASM)

PARALLEL_EXECUTION_MESSAGE_SIZE

REMOTE_LOGIN_PASSWORDFILE

RESULT_CACHE_MAX_SIZE (在所有情况下启用或禁用)

UNDO_MANAGEMENT


关于Oracle Real Application Clusters的服务器参数文件

当您创建数据库时,Oracle会在您指定的文件位置创建一个SPFILE。此位置可以是Oracle ASM磁盘组或集群文件系统上的文件。在本指南描述的环境中,SPFILE在Oracle ASM磁盘组上创建。

集群数据库中的所有实例在启动时都使用相同的SPFILE。仅当SPFILE不存在或您PFILESTARTUP命令中指定时,Oracle RAC才会使用传统参数文件。Oracle建议您使用SPFILE来简化管理,保持参数设置的一致性,并确保跨数据库关闭和启动事件的参数设置持久性。另外,您可以配置RMAN来备份您的SPFILE。


文章转载自Young Seven,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论