oracle spfile和pfile文件
pfile(Parameter?File)從oracle8i開始使用,在oracle9i中也可以用。它以文本文件的形式存在,可以用vi等編輯器對 其中數據庫參數進行修改。文件格式為initSID.ora。Oracle?9i在安裝時為每個數據庫建立了一個Pfile,默認的名稱為“init+例 程名.ora”。
???Oracle8i使用pfile存儲初始化參數配置,這些參數在實例啟動時被讀取,任何修改需要重起實例才能生效。
???spfile專用于oracle9i及以后版本,以二進制文件形式存在,含有數據庫及例程的參數和數值,能夠使用RMAN進行備份,但不能用文本編輯工具打開,不能用vi編輯器對其中數據庫參數進行修改。文件格式為spfileSID.ora。
????????Oracle9i及以后版本,使用spfile存儲初始化參數配置,支持使用ALTER?SYSTEM或ALTER?SESSION來動 態修改那些可動態修改的參數,任何更改能夠立即生效,您能夠選擇使更改只應用于當前實例還是同時應用到spfile。這就使得任何對spfile的修改都 能夠在命令行完成,我們能夠完全告別手工修改初始化參數文檔,這就大大減少了人為錯誤的發生。
???除了第一次啟動數據庫需要pfile(然后根據pfile創建spfile),我們能夠不再需要pfile,ORACLE強烈推薦使用spfile,應用其新特性來存儲和維護初始化參數配置。
???spfile改正了pfile管理混亂的問題,在多結點的環境里,pfile會有多個image,啟動時候需要跟蹤最新的image。這是個煩瑣的 過程。?用spfile以后,所有參數改變都寫到spfile里面(只要定義scope=spfile或both),參數配置有個權威的來源。
pfile和pfile的區別
? ?
? ? 就Oracle的spfile和pfile的區別主要是spfile的修改是可以在線的,而pfile的修改必須關閉數據庫,到參數文件所在路徑下通過 vi或記事本等文本編輯工具修改。(因為參數文件里面的內容太多,編輯起來容易導致錯誤的編輯到其它的參數,從而導致數據庫無法起來,所以在9i以前一般 都是要備份pfile后再來做參數的修改,而且修改任何參數都需要停庫,非常的不方便;在9i以后的spfile就可以同通過命令修改指定的參數了,而且 有很多參數都不用重啟數據庫,能夠在線生效,這個在線生效的參數會隨著數據庫的版本增高而增加。如果參數修改有問題數據庫起不來了可以在nomount狀 態下創建成pfile再修改回來即可。)
修改spfile參數的三種模式:
scope=both? ?? ? 立即并永久改變,(默認模式)
scope=spfile? ???下次啟動執行新的改變。
scope=memory? ???立即臨時改變下次啟動新參數失效
spfile 修改的方法:
SQL> alter system set processes = 100 scope=both;? ?? ?? ?? ?? ?? ?----該參數不支持動態修改,必須修改完后重啟數據庫
alter system set processes = 100 scope=both
? ?? ?? ?? ?? ???*
ERROR at line 1:
ORA-02095: specified initialization parameter cannot be modified
-------------------------------------------------------------------------------------------------------------------------------
SQL> show parameter pga;
NAME? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?TYPE? ???VALUE
------------------------------------ -------- ------
pga_aggregate_target? ?? ?? ?? ?? ???big inte 798M
? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? ger
SQL> alter system set pga_aggregate_target = 500m scope=both;? ?? ?-----該參數支持動態修改,所以就立即生效了
System altered.
SQL> show parameter pga;
NAME? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?TYPE? ???VALUE
------------------------------------ -------- ------
pga_aggregate_target? ?? ?? ?? ?? ???big inte 500M
? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? ger
SQL>
SQL> alter system set processes = 100 scope=spfile;? ?? ?? ?? ?? ? ----修改完后重啟數據庫能生效,不信你試試。
System altered.
SQL> alter system set pga_aggregate_target = 700m scope=spfile;? ? ----當然也可以選擇數據庫下次啟動的時候生效。
System altered.
SQL> alter system set processes = 100 scope=memory;? ?? ?? ?? ?? ? ----因為該參數不支持動態修改,同樣也就無法實現立即生效,下次啟動失效。
alter system set processes = 100 scope=memory
? ?? ?? ?? ?? ???*
ERROR at line 1:
ORA-02095: specified initialization parameter cannot be modified
SQL>
SQL> alter system set pga_aggregate_target = 600m scope=memory;? ? ---因為該參數支持動態修改,當然也就可以實現立即生效,下次啟動失效咯。
System altered.
SQL>
如果使用的是pfile則無法通過命令進行修改,會報ORA-02095或32001錯誤。
SQL> alter system set processes = 100;
alter system set processes = 100
? ?? ?? ?? ?? ???*
ERROR at line 1:
ORA-02095: specified initialization parameter cannot be modified
SQL> alter system set processes = 100 scope=spfile;
alter system set processes = 100 scope=spfile
*
ERROR at line 1:
ORA-32001: write to SPFILE requested but no SPFILE specified at startup
SQL> alter system set processes = 100 scope=both;
alter system set processes = 100 scope=both
? ?? ?? ?? ?? ???*
ERROR at line 1:
ORA-02095: specified initialization parameter cannot be modified
SQL> alter system set processes = 100 scope=memory;
alter system set processes = 100 scope=memory
? ?? ?? ?? ?? ???*
ERROR at line 1:
ORA-02095: specified initialization parameter cannot be modified
pfile文件路徑/admin/pfile下面
通過create pfile='e:\initeyglen.ora' from spfile;保存
startup pfile='e:\initeyglen.ora'
create spfile from pfile='e:\initeyglen.ora';?? //新的spfile生效,spfile是二進制文件,看不到,在系統運行時有
轉載于:https://www.cnblogs.com/zmlctt/p/3881115.html
總結
以上是生活随笔為你收集整理的oracle spfile和pfile文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VBS建立快捷方式
- 下一篇: lsof找回误删的文件