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

oracle pfile spfile,pfilespfile

編輯:Oracle教程

oracle pfile spfile,pfilespfile


1.參數文件的定義、作用
  oracle數據庫通過一系列參數來對數據庫進行配置。這些參數是以鍵-值對的形式來表 示的,如:
MAXLOGFILES=50
BACKGROUND_DUMP_DEST=C:DUMP
其中,等號左邊是參數名,右邊是對應的參數的值,值的類型有多種,典型的如數字和 字符串.

  參數文件就是存儲這些參數的地方,oracle在啟動時會從參數文件中讀取相關的配置。

2.參數文件的分類
  在9i之前,參數文件只有一種,它是文本格式的,稱為pfile,在9i及以後的版本中,新 增了服務器參數文件,稱為spfile,它是二進制格式的。這兩種參數文件都是用來存儲參 數配置以供oracle讀取的,但也有以下不同點:
第一,pfile是文本文件,spfile是二進制文件;
第二,對於參數的配置,pfile可以直接以文本編輯器打開手工配置,而spfile不行,必須在數據庫啟動後,通過sql命令進行在線修改。
第三,pfile配置改變後,要使用其生效,必須重新啟動數據庫,spfile的配置生效時限和作用域可以由修改參數的sql命令指定,可以立即生效,也可以不立即生效。當然有些 參數的修改必須重啟數據庫才能生效;
第四,可用sql命令由pfile創建spfile,也可以由spfile創建pfile;
第五,如果是手動創建數據庫而不是通過DBCA,則開始創建數據庫時,只能定義pfile 。因為它是文本格式的;
第六,oracle數據庫只使用一個參數文件,要麼是pfile,要麼是spfile,即麼如何判斷數據庫當前使用的是哪一個參數文件呢?一種方法是能過create pfile來鑒別,如果當 前使用的不是spfile,則相應格式的create pfile會產生錯誤。另一種方法是show parameter spfile命令,用來顯示spfile的位置,如果顯示的值為空,則表示使用的是pfile。

3.參數文件的動作原理
  oracle實例在啟動時,會去讀取參數文件中的配置,這個過程是這樣的:
數據庫的startup命令中可以指定以哪個pfile來啟動,但是請注意,只能指定pfile,不能指定spfile。當使用不帶pfile 子句的startup 命令時,Oracle 將從平台指定的默認位置上$ORACLE_HOME/dbs(unix/linux平台),$ORACLE_HOME /database(windows)讀取服務器 參數文件(spfile)中的初始化參數。Oracle查找spfile或init.ora的順序是:在平台指定的默認位置上,Oracle首先查找名為 spfile$ORACLE_SID.ora的文件,如果沒有就查找spfile.ora文件,還沒有的話,就找init$ORACLE_SID.ora 文件。在$ORACLE_BASE/admin/$db_names /pfile下,你很可能可以看到一個類似這樣init.ora.1 92003215317]名字的文件,這就是初始化參數文件,只是跟上了時間戳。對於Oracle920 ,缺省的就使用spfile啟動,但是這個spfile不是憑空而來,而是根據這個文件創建而來 ,你可以去掉這個長後綴,就是標准的pfile文件了。
對於Windows NT 和Windows 2000 ,其位置是:$ORACLE_HOME/database/spfile$ORACLE_SID.ora。
  數據庫在啟動後,參數的配置值可以通過查詢數據字典v$parameter得到。

4.參數文件的修改方法
  分為手動修改和在線修改。
  手動修改用於修改pfile,直接用文本編輯打開pfile修改。要使用修改生效,須重啟數據庫。
  在線修改是在數據庫運行時,用alter system命令進行修改,命令如下(詳細的命令 語句請參考oracle官方參考文檔):
sql>alter system set job_queue_processed=50 scope=MEMORY
注意,scope=MEMORY表示應用范圍,取值如下:
SPFILE:修改只對SPFILE有效,不影響當前實例,需要重啟數據庫才能生效;
MEMORY:修改只對內存有效,即只對當前實例有效,且立即生效,但不會保存到SPFILE, 數據庫重啟後此配置丟失;
BOTH:顧名思義,包含以上兩種,立即生效,且永久生效。
  對於ALTER SYSTEM的參數修改命令,請注意以下幾點:
第一,如果當前實例使用的是pfile而非spfile,則scope=spfile或scope=both會產生錯 誤;
第二,如果實例以pfile啟動,則scope的默認值為MEMORY,若以spfile啟動,則默認值為 BOTH;
第三,可以使用DEFERRED表示所作修改只適用於將來的會話,還可以使用COMMENT寫入注 釋,如:ALTER SYSTEM SET JOB_QUEUE_PROCESSES=50 SCOPE=BOTH DEFERRED COMMENT=" 注釋"
第四,刪除參數的方法如下:ALTER SYSTEM SET PARAMETER='';

5.創建參數文件
  對於pfile,你可以用文本編輯器直接手工編輯一個,也可以使用create pfile命令 從spfile創建,如:CREATE PFILE='C:PFILEMYPFILE.ORA' FROM SPFILE='D:SPFILEMYSPFILE.ORA',或者從當前實例所使用的spfile創建:create pfile='c:pfilemypfile.ora' from spfile。
  創建spfile的命令如下:CREATE SPFILE FROM PFILE='C:PFILEMYPFILE'。

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