程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> oracle啟動與spfile文件

oracle啟動與spfile文件

編輯:Oracle教程

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 following error:
ORA-01078: failure in processing systemparameters
ORA-01565: error in identifying file'+DATA/ms4adb/spfilems4adb_bak.ora'
總之:如果使用srvctl啟動,優先使用的是srvctl查詢出的配置文件,如果配置文件錯,這不能正常啟動,如果配置文件為null,則從默認路徑下查找(目前我還沒有找到把pfile參數改回空值的方法)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved