在非rac环境下,oracle数据库的参数文件默认放在$oracle_home/dbs目录下,oracle自动寻找参数文件的顺序是spfile$oracle_sid.ora
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