1. 程式人生 > >PFile and SPFile文件的管理和使用

PFile and SPFile文件的管理和使用

指定 系列 count 默認 手工 sql命令 不能 sci 物理

一、摘要
ORACLE中的參數文件是一個包含一系列參數以及參數對應值的操作系統文件,可以分為兩種類型PFile and SPFile。

它們是在數據庫實例啟動時候加載的,決定了數據庫的物理結構、內存、數據庫的限制及系統大量的默認值、數據庫的各種物理屬性、指定數據庫控制文件名和路徑等信息,是進行數據庫設計和性能調優的重要文件。

  1. 概念

初始化參數文件(Initialization Parameters Files),Oracle 9i之前,ORACLE一直采用PFILE方式存儲初始化參數,該文件為文本文件。

服務器參數文件(Server Parameter Files),從Oracle 9i開始,Oracle引入了SPFILE文件,該文件為二進制格式,不能通過手工修改。

  1. 修改spfile參數的三種模式

scope=both 立即並永久生效(默認模式)
scope=spfile 下次啟動才能生效
scope=memory 立即生效但下次啟動時失效

  1. 如何查看SPFILE與PFILE的目錄位置

方法1. 查看動態視圖

SELECT NAME, VALUE, DISPLAY_VALUE FROM V$PARAMETER WHERE NAME =‘spfile‘;

方法2. 查看參數

SQL> show parameter spfile
SQL> show parameter pfile

  1. 判斷數據庫從SPFILE還是PFILE啟動

方法1:查詢動態視圖V$PARAMETER,如果VALUE值為非空,則是SPFILE啟動,否則是PFILE。

SELECT name, value, display_value FROM v$parameter WHERE name =‘spfile‘;

方法2:SHOW PARAMETER命令查看

SQL> show parameter spfile;

方法3:通過v$spparameter視圖,如果一下查詢返回0值,表示你在使用pfile,否則表明你使用的是spfile

SQL> SELECT COUNT(1) FROM v$spparameter WHERE value is not null;

此v$spparameter的值來自於spfile文件定義,並在動態性能視圖中顯示

二、PFile 和 SPFile的區別

1:PFILE是文本文件的,而SPFILE是二進制格式的。

 PFILE文件可以用文本編輯器打開手工配置、而SPFILE不行,只能通過SQL命令在線修改。

 從操作系統上可以看到這兩者的區別,初始化參數文件為ASCII文本文件,SPFILE為數據文件。

2:SPFILE的修改是可以通過SQL命令在線修改,不再需要通過手工修改,對於動態參數所有更改可以立即生效,而PFILE的修改必須重啟實例才能生效。

3:手動創建數據庫而不是通過DBCA,則開始創建數據庫時,只能定義PFILE。

  創建數據庫完成後再通過PFILE定義SPFILE
三、Oracle啟用參數文件順序
Step1. spfile<sid>.ora

Unix/Linux缺省存放目錄 $ORACLE_HOME/dbs/

Step2. spfile.ora

Unix/Linux缺省存放目錄 $ORACLE_HOME/dbs/

Step3. init<sid>.ora

Unix/Linux缺省存放目錄 $ORACLE_HOME/dbs/

PFile and SPFile文件的管理和使用