Top > ALTER SYSTEM > ALTER SYSTEM SET

ALTER SYSTEM による初期化パラメータの変更

ALTER SYSTEM SET 〜 コマンドは 初期化パラメータを SQL から変更するコマンドである。
サーバー・パラメータ・ファイル (SPFILE) を使用している場合は再起動後しても変更した設定を保持した状態にしておくことが可能。PFILE 運用ではインスタンス停止時になくなる。

ALTER SYSTEM SET には、稼動しているインスタンス設定のみを変更する MEMORY スコープ、設定ファイルのみを変更する SPFILE スコープ、その両方を設定する BOTH スコープがある。
SPFILE 運用時には BOTH がデフォルトで他のスコープも指定可能、PFILE 運用時には MEMORY がデフォルトで他のスコープは指定できない。

初期化パラメータには「即時反映可」「遅延反映可」「SPFILE に対してのみ変更可」「変更不可」の種類がある。⇒ 初期化パラメータ一覧

  • 即時反映可 ⇒ 即座に全セッションに有効
  • 遅延反映可 ⇒ 現セッションでは無効、後続セッションから有効
  • SPFILE に対してのみ変更可 ⇒ 現インスタンスでは無効、再起動後から有効

「遅延反映可」な初期化パラメータには DEFERRED 句の付与が必要。「SPFILE に対してのみ変更可」な初期化パラメータには SCOPE = SPFILE 句の指定が必要となる。

以下の操作を行なうには ALTER SYSTEM システム権限 が必要。

ALTER SYSTEM SET parameter

ALTER SYSTEM SET name = value [ , value2 ... ]
   [ COMMENT = commnet_string ] [ DEFERRED ] 
   [ SCOPE = { MEMORY | SPFILE | BOTH } ]

ALTER SYSTEM SET 〜 SCOPE = MEMORY

SCOPE = MEMORY は インスタンスのメモリ上に変更を加えるだけで再起動時には設定は破棄され前の状態に戻る。 PFILE 運用の場合はデフォルト、かつ、唯一のスコープ。

システム日付を任意に設定する初期化パラメータ FIXED_DATE の設定 (SCOPE = MEMORY)

ALTER SYSTEM SET FIXED_DATE = '2011-12-31-23:59:59'
 SCOPE = MEMORY

FIXED_DATE 初期化パラメータ ⇒ システム日付を任意に設定する

ALTER SYSTEM SET 〜 SCOPE = SPFILE

SCOPE = SPFILE は サーバー・パラメータ・ファイル (SPFILE) に変更を加えるだけで現インスタンスには反映されない。再起動後に有効となる。

プロセス数の初期化パラメータ PROCESSES の設定 (SCOPE = SPFILE)

ALTER SYSTEM SET PROCESSES = 300 SCOPE = SPFILE

コントロールファイルの場所を設定する複数文字列の初期化パラメータ CONTROL_FILES の設定 (SCOPE = SPFILE)

ALTER SYSTEM SET CONTROL_FILES = '/u01/replace_dir/control01.ctl' ,
                                 '/u02/replace_dir/control02.ctl'
 SCOPE = SPFILE

ファイルは物理的には移動しないので OS コマンドで複製または移動する必要がある。
参考: V$CONTROLFILE ビュー

ALTER SYSTEM SET 〜 SCOPE = BOTH

SCOPE = BOTH は 現行インスタンス、および、サーバー・パラメータ・ファイル (SPFILE) に変更を加える。再起動時にも有効となる。SPFILE 運用の場合はデフォルト。

DDL 使用時の排他ロック獲得待機時間を設定する初期化パラメータ DDL_LOCK_TIME Oracle 11g の設定 (SCOPE = BOTH)

ALTER SYSTEM SET ddl_lock_timeout = 60
 SCOPE = BOTH

ロックの解放を 60 秒までは待機する。60秒を超えると ORA-00054: リソース・ビジー、NOWAITが指定されていました。 が発生する。

ALTER SYSTEM による初期化パラメータの削除

ALTER SYSTEM RESET 〜 コマンドは 初期化パラメータ を SPFILE から削除するコマンドである。
設定ファイルのみを変更する SPFILE スコープのみ有効である。(Oracle 11g 〜)

ALTER SYSTEM RESET parameter

ALTER SYSTEM RESET の構文

  • Oracle 11g
    ALTER SYSTEM RESET name [ SID = { '*' | 'oracle_sid' ] [ SCOPE = SPFILE ] Oracle 11g
  • Oracle 10gR2 以前では SID の指定が必須 かつ SCOPE の後でなければならない。
    ALTER SYSTEM RESET name [ SCOPE = { MEMORY | SPFILE | BOTH } ] SID = { '*' | 'oracle_sid' } Oracle 10g

シングルインスタンスの場合 SID= '*' を指定して接続インスタンスに対してリセットを行なう。

 

FIXED_DATE 初期化パラメータを SCOPE = BOTH で設定してしまった場合の復旧

ALTER SYSTEM RESET FIXED_DATE SCOPE = SPFILE
 


関連事項

日本オラクル
■ 日本オラクル 株式会社
■ オラクルマスター資格 (オラクルマスターとは
■ オラクルサポートセンター