2009年5月8日 星期五

Oracle Spfile 與 Pfile..

一開始真是霧灑灑~~
熟的同事很忙沒法帶,只好靠google大神自修~~
摘入自 Link1 與 Link2

1、pfile 文本文件 client端參數文件;不能動態修改,可以用普通的編輯器修改,修改之後需要重啟。pfile可能會導致服務器啟動不一致,因為可以在客戶端啟動。
2、spfile 二進制文件 服務器端參數文件,有了spfile,oracle可以實現動態參數在線修改,部分參數修改之後無需重啟。但是,因為是二進制文件,所以不能用普通的編輯器修改,要用alter命令從sql裡面來修改。spfile保證服務器每次的啟動都是一致的。只有spfile而沒有pfile文件時,可以通過:

create pfile='位置+名字' from spfile;

如:
create pfile='E:\ORACLE\PRODUCT\10.2.0\DB_1\DBS\spfileorcl_bak.ora' from spfile;

進行創建pfile文件。

同理,只有pfile而沒有spfile時,可以通過:

create spfile='位置+名字' from pfile;

進行創建spfile文件。pfile和spfile二者可以互相備份。

3、通過spfile或pfile啟動數據庫

(1)startup nomount啟動方式,查找文件的順序是 spfileSID.ora-〉spfile.ora-〉initSID.ora-〉init.ora(spfile優先於pfile)。
(2)startup pfile='文件目錄'----通過pfile文件啟動;
(3)startup spfile='文件目錄'----通過spfile文件啟動。


-------------------------------------------------------
查看系統是以pfile還是spfile啟動
Select isspecified,count(*) from v$spparameter group by isspecified;
如果isspecified裡有true,表明用spfile進行了指定配置
如果全為false,則表明用pfile啟動

使用SPfile的好處
Spfile改正了pfile管理混亂的問題,在多結點的環境裡,pfile會有多個image
啟動時候需要跟蹤最新的image。這是個煩瑣的過程。
用spfile以後,所有參數改變都寫到spfile裡面(只要定義scope=spfile或both),參數配置有個權威的來源。

查看spfile location
show parameter spfile

從spfile獲取pfile
Create pfile='d:pfileSID.ora' from spfile;
Create pfile='d:pfileSID.ora' from spfile='spfile_location';

從pfile獲取spfile
Create spfile from pfile='Your_pfile_location'
Create spfile='spfile_location' from pfile='Your_pfile_location'

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

Startup nomount的時候需要讀去spfile或pfile,兩者共存,spfile優先

強制用pfile啟動
SQL>startup pfile='Your_Pfile.ora'
startup spfile='/data/oracle/product/10.2.0/db_1/dbs/dbs/spfile_mqq.ora' force

通過pfile連接到spfile啟動
修改pfile文件


1 則留言: