oracle 數據庫啟動時加載spfile問題 及處理辦法


oracle數據庫在啟動時報錯 提示找不到相關的配置文件 ,這時明確oracle數據啟動時加載的原理

 

1.oracle實例啟動時,尋找參數文件的順序為
   spfileSID.ora----->spfile.ora------>initSID.ora

2.spfile與pfile的區別
  (1)pfile是文本文件,可以使用文本編輯器進行編輯,而spfile是二進制文件,不能使用任何編輯器進行修改,但是可以使用strings查看文件的內容
  (2)pfile里面是靜態參數,不能在線修改,而spfile里面有動態參數,可以在線修改,而不用重啟oracle

3.可以通過以下命令查看oracle使用pfile啟動,還是spfile啟動
   SQL> show parameter spfile
   NAME                                 TYPE        VALUE
   ------------------------------------ ----------- ------------------------------
   spfile                               string      /u01/app/oracle/product/10.2.0
                                                 /db_1/dbs/spfileora.ora
   如果value有值,說明是從spfile啟動,否則是通過pfile啟動

4.oracle的spfile,pfile存放位置
  pfile:$ORACLE_HOME/dbs目錄下,如果數據庫是用dbca創建的話,則在$ORACLE_BASE/admin/ora/pfile還有一個pfile文件,並且   在$ORACLE_HOME/dbs目錄下創建一個spfileSID.ora的spfile文件
  spfile:$ORACLE_HOME/dbs目錄下

5.spfile與pfile互相創建
  (1)如果oracle是從pfile啟動,則可以使用如下命令創建spfile
      SQL> create spfile from pfile
  (2)如果oracle是從spfile啟動,則可以使用以下命令創建pfile
      SQL> create pfile from spfile

6.利用pfile啟動oracle實例
  SQL>STARTUP PFILE = $ORACLE_HOME/dbs/initORCL.ora

 

================================================================

 

 (一)Pfile文件 
Pfile(Parameter File,參數文件)是基於文本格式的參數文件,含有數據庫的配置參數。 
Oracle 9i在安裝時為每個數據庫建立了一個Pfile,默認的名稱為“init+例程名.ora”,這是一個文本文件,可以用任何文本編輯工具打開。 
 

(二)SPfile文件

SPfile(Server Parameter File,服務器參數文件)是基於二進制格式的參數文件,含有數據庫及例程的參數和數值,但不能用文本編輯工具打開。

動態修改參數 

動態修改參數 
alter system set parameter=Value

scope={spfile|both|memory};

SCOPE參數有三個可選值:

MEMORY:只改變當前實例運行;

SPFILE:只改變SPFILE的設置(如果修改的是靜態參數,則必須指定SCOPE=SPFILE,否則將會報ORA-02095錯。);

BOTH:改變實例及SPFILE(使用BOTH選項實際上等同於不帶參數的ALTER SYSTEM語句)。

 

(三)spfile和pfile的對比表

image

 

(四)Oracle啟動時的調用

用startup(默認)啟動的順序

1、直接在默認路徑下查找spfileSID.ora --(spfile)

如果沒有再查找2

2、直接在默認路徑下查找spfile.ora      

如果沒有再查找3

3、直接在默認路徑下查找initSID.ora --(pfile) 

如果還沒有 就會報錯……

用startup pfile= 的方式啟動。

1、指定的pfile:

startup pfile=$ORACLE_HOME/dbs/initSID.ora

2、使用spfile啟動,需要變通一下如:vi一個pfile文件aaa.ora,包含以下內容:

spfile=$ORACLE_HOME/dbs/spfileSID.ora

再用startup pfile=$ORACLE_HOME/dbs/aaa.ora啟動即可。

若使用這兩種方式,級別會高於直接用startup啟動的方式。

常見操作命令:

sql>tnsping orcl(實例名稱) --查看遠程的listener是否啟動 

sql>crs_stat -t    查看集群資源運行狀態記錄

sql>SRVCTL Status

顯示指定數據庫的當前狀態

srvctl status database -d database_name

srvctl status instance -d database_name -i instance_name [,instance_name-list]

實例:顯示數據和所有實例狀態

srvctl status database -d mydb
sql>lsnrctl start

sql>lsnrctl status

sql>lsnrctl stop

sql>shutdown immediate;
實例:顯示指定實例的狀態

srvctl status instance -d mydb -i mydb,mydb

 

 

具體操作截圖如下:

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM