1. 程式人生 > 實用技巧 >Oracle 引數(pfile,spfile) 管理

Oracle 引數(pfile,spfile) 管理

做為一個 ORACLE DBA 就必定要和 資料庫 引數打交道,我也是一個初學者 ,根據我的使用 總結一下引數的使用 測試 環境Solaris 10 +Oracle 10g 首先 配置檔案:pfile(引數檔案),spfile(伺服器配置檔案)在以前8i 以前的版本 是不可以動態的修改 系統引數的 但是 從9i 過後 就開始有了 spfile 提供給 管理員 更方便的 修改系統引數 兩個檔案 區別: pfile 是 文字檔案 可以通過 文字編輯器 編輯引數 而spfile是二進位制檔案 最好不要用文字編輯軟體編輯 內容,系統startup 預設 是讀取spfile 下面 做一個例子 就清楚了 我在pfile設定了 timed_statistics=false
然後 看下面的操作 它是讀取的 spfile 顯示的timed_statistics=true 他們之間的轉化是 create spfile(pfile) from pfile(spfile)(=' ') 下面 提及 重點 上面的 結果 查詢出了 靜態引數是 107個 動態引數是144+7=151個 三者的修改使用範圍:
引數型別---SCOPE屬性 spfile memory both deferred
靜態引數 可以,重啟伺服器生效 不可以 不可以 不可以
動態引數(issys_modifiable為immediate) 可以,重啟伺服器生效 可以,立即生效,重啟服務失效 , 可以,立即生效,重啟伺服器仍然有效果 不可以
動態引數(issys_modifiable為deferred) 可以,重啟伺服器生效 不可以 不可以 可以
靜態引數 必須指定為scope 動態引數issys_modifiable為IMMEDIATE不加scope預設的是 both,而動態引數issys_modifiable為DEFERRED的必須加上scope=spfile 或者 加上derferred,下面做演示 演示一:靜態引數 演示二:(動態引數 modifiable='IMMEDIATE') 測試預設: 我就直接說了: scope=spfile需要重啟生效,scope=memory重啟就失效了 只是當前有效果,scope=both就是 當前立即生效,重啟伺服器也有效果 因為寫入到了spfile了的 讀取 啟動startup 是啟動spfile 測試三: (動態引數 issys_modifiable為deferred)
上面的實驗 一直沒有 看看 scope=spfile的效果 ,這樣修改後 在spfile裡面值是改變了的 ,意思就是 下一次 服務啟動生效, 但是pfile 中的 引數是沒有變的,看下面的插圖 看到了 效果 我們吧sort_area_size改成了0 但是 結果 我們檢視spfile 而不是0而是 系統推薦的數 那麼不妨再改改 改成10塊資料塊的大小 再看看 伺服器引數檔案: OK 完了 上面 不是實驗 測試當設定為 0的時候 設定成了98304 而不是設定成 0 為什麼啊? 因為 我們採用的是deferred; 如果採用 scope=spfile 則為 0 ,哈哈 原來 還有這樣一說 採用deferred給的一個 預設值