日期:2014-05-16  浏览次数:20589 次

oracle启动与spfile文件

oracle启动中使用参数文件一般有如下几种情况

1      单实例

1.1    默认启动:

在非rac环境下,oracle数据库的参数文件默认放在$ORACLE_HOME/dbs目录下,oracle自动寻找参数文件的顺序是

spfile$ORACLE_SID.ora -> spfile.ora  -> init$ORACLE_SID.ora

1.2    手工指定参数文件

也可以手工启动非默认的pfile和spfile文件

STARTUP PFILE = /u01/oracle/dbs/myinit.ora

 

如果想启动非默认的spfile文件,建议采用如下方法:

pfile文件启动

STARTUP PFILE = /u01/oracle/dbs/spf_init.ora

pfile文件中通过SPFILE参数指定spfile文件的位置

cat /u01/oracle/dbs/spf_init.ora

SPFILE = /u01/oracle/dbs/test_spfile.ora

1.3    ASM和裸设备下使用参数文件

如果使用裸设备或者ASM存储spfile文件,一般的做法是

修改默认的pfile文件

vi $ORACLE_HOME/dbs/init$ORACLE_SID.ora

spfile='+Data/TYOLAP/spfile/spfile$ORACLE_SID.ora'

2      RAC环境

在oracle rac环境下,情况稍微有些复杂,pfile启动和单实例类似,每个实例均设置自己的pfile文件。而spfile启动,一般建议spfile文件放在共享存储上

2.1    Sqlplus启动

2.1.1  共享存储是裸设备或者ASM

如果共享存储是裸设备,官方文档建议采用pfile连接的方式,裸设备在oracle 10g rac版本中比较常见,方法如下

1,使用每个实例的默认pfile文件启动

$ORACLE_HOME/dbs/init$ORACLE_SID.ora

 2,pfile文件指向共享的SPFILE

SPFILE='/dev/vx/rdsk/vg_zw_data1/lv_zw_spfile'

 如果使用ASM放置spfile文件,SPFILE参数指向ASM中的路径即可

SPFILE='+disk_group_name/dbunique_name/spfiledbname.ora'

2.2    Srvctl启动

2.2.1  OCR中未配置参数文件,

则同sqlplus启动,在默认目录查找

 [oracle@dtydb5 ~]$ srvctl config database -d ms4adb -a
Database unique name: ms4adb
Database name: ms4adb
Oracle home: /oracle/app/oracle/product/11.2.0/db_1
Oracle user: oracle
Spfile: +DATA/ms4adb/spfiletest.ora
Domain: 
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: ms4adb
Database instances: ms4adb1,ms4adb2,ms4adb3
Disk Groups: DATA
Mount point paths: 
Services: 
Type: RAC
Database is enabled
Database is administrator managed

2,参数文件使用默认路径下的配置

sys@TYOLAP3(dtydb5)> show parameterpfile
NAME                                 TYPE        VALUE
spfile                               string      +DATA/tyolap/spfile/spfilety.ora

2.2.2  配置了参数文件的位置

如果存在改参数文件,则使用参数文件,也就是说优先使用OCR中配置的参数文件。

首先修改OCR中的spfile文件

srvctl modify database -d ms4adb -p'+DATA/ms4adb/spfiletest.ora'
 [oracle@dtydb5 ~]$ srvctl start database -dMS4ADB
 sys@MS4ADB3(dtydb5)> show parameterspfile
 NAME                                 TYPE                   VALUE

---------------------------------------------------------- ------------------------------
spfile                               string                 +DATA/ms4adb/spfiletest.ora 

2.2.3  OCR中配置的参数文件不存在

则启动报错, 且不会去$ORACLE_HOME/dbs目录下去找

[oracle@dtydb5 ~]$  srvctl modify database -d ms4adb -p'+DATA/ms4adb/spfilems4adb_bak.ora'
[oracle@dtydb5 ~]$ srvctl stop database -dms4adb
[oracle@dtydb5 ~]$ srvctl start database -dms4adb
PRCR-1079 : Failed to start resourceora.ms4adb.db
CRS-5017: The resource action"ora.ms4adb.db start" encountered the follow