Oracle 引數(pfile,spfile) 管理
阿新 • • 發佈:2020-10-09
做為一個 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 動態引數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給的一個 預設值
引數型別---SCOPE屬性 | spfile | memory | both | deferred |
靜態引數 | 可以,重啟伺服器生效 | 不可以 | 不可以 | 不可以 |
動態引數(issys_modifiable為immediate) | 可以,重啟伺服器生效 | 可以,立即生效,重啟服務失效 , | 可以,立即生效,重啟伺服器仍然有效果 | 不可以 |
動態引數(issys_modifiable為deferred) | 可以,重啟伺服器生效 | 不可以 | 不可以 | 可以 |