ALTER SYSTEM SET ... SCOPE=MEMORY:僅影響當前實例記憶體SCOPE=SPFILE:僅寫入SPFILE,下次啟動生效SCOPE=BOTH (預設):記憶體+SPFILE雙寫DEFERRED:僅對新會話生效,現有會話不受影響| 方法 | 類型 | 可見範圍 | RAC支援 | 特點 |
|---|---|---|---|---|
SHOW PARAMETER | SQL*Plus命令 | 當前會話生效值 | 單實例 | 最常用,互動式 |
SHOW SPPARAMETER | SQL*Plus命令 (11g+) | SPFILE內容 | 單實例 | 不顯示記憶體修改 |
CREATE PFILE | SQL命令 | SPFILE或記憶體 | 單實例 | 輸出文本檔,**僅列用戶顯式設定值**,預設值不顯示,極清晰 |
V$PARAMETER | 動態視圖 | 當前會話可見 | GV$PARAMETER | 含預設值,會話層級 |
V$PARAMETER2 | 動態視圖 | 當前會話可見 | GV$PARAMETER2 | 多值參數**拆行顯示** (如control_files) |
V$SYSTEM_PARAMETER | 動態視圖 | **實例生效值** | GV$SYSTEM_PARAMETER | 實例層級,忽略會話覆蓋 |
V$SYSTEM_PARAMETER2 | 動態視圖 | 實例生效值 | GV$SYSTEM_PARAMETER2 | 多值參數拆行 |
V$SPPARAMETER | 動態視圖 | SPFILE儲存值 | GV$SPPARAMETER | ISSPECIFIED=FALSE 表示未在SPFILE設定 |
-- 多值參數 control_files
SELECT name, value FROM v$parameter WHERE name = 'control_files';
-- NAME: control_files
-- VALUE: /u01/ctl1.ctl, /u01/ctl2.ctl, /u01/ctl3.ctl (單行,逗號分隔)
SELECT name, value FROM v$parameter2 WHERE name = 'control_files';
-- NAME: control_files VALUE: /u01/ctl1.ctl
-- NAME: control_files VALUE: /u01/ctl2.ctl
-- NAME: control_files VALUE: /u01/ctl3.ctl (三行,各一值)
SHOW PARAMETER name 最快CREATE PFILE FROM MEMORY/SPFILE 產生純淨配置檔SELECT * FROM GV$SYSTEM_PARAMETER WHERE name='...' 比對各實例V$PARAMETER2 或 V$SYSTEM_PARAMETER2SELECT * FROM V$SPPARAMETER WHERE isspecified='TRUE'避坑:V$PARAMETER反映會話層級 (含ALTER SESSION修改),V$SYSTEM_PARAMETER反映實例層級,**兩者可能不同值**,請根據排查目的選擇。