アーカイブログモード運用への移行

アーカイブログでの運用はミッションクリティカルなシステムにおいて非常に重要であるが、 ディスク容量不足や手動アーカイブモード時に REDO ログ・ファイル のアーカイブが行われない状況になると、システムは完全な一時停止状態(※)となる危険がある。
既に適切なアーカイブファイルの運用(フルバックアップと不要アーカイブファイルの削除)とディスク容量設計を行っていること。

(※) ORA-00257: アーカイブ・エラーです。解除されるまで内部接続のみにしてください。 となって、データベースがアーカイブできるまでの間、一時停止する。速やかな対処が必要になる。

ノーアーカイブ状態からアーカイブ運用にするには

データベースの停止を伴う工程になり、移行に失敗した事を考え、既に運用しているシステムの場合はコールドバックアップを行ってから作業を行う。

  1. 稼動している場合には停止し、MOUNT 状態にする
    SQL> SHUTDOWN IMMEDIATE ;
    ...
    SQL> STARTUP MOUNT ;
  2. アーカイブの出力先変更(設定を間違えると起動できなくなる⇒ SPFILEの誤設定による起動不能になった場合)
    --ファイルの場合
    SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=/u02/xxx/.../arc' SCOPE=BOTH ;
    -- スタンバイサーバーの場合
    SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=stand_by_server' SCOPE=BOTH ;

    LOG_ARCHIVE_DEST_n 形式は、Enterprise 版のみ (〜 Oracle 10g R1)
    SE 版では LOG_ARCHIVE_DEST,LOG_ARCHIVE_DUPLEX_DEST を使用し、書式も異なる。
    Oracle 10g R2 からは SE 版でも LOG_ARCHIVE_DEST_n 形式が使用できる。 Oracle 10g R2 であれば LOG_ARCHIVE_DEST_n 形式による設定をお勧めする。

  3. アーカイブログのステータスの確認
    SQL> ARCHIVE LOG LIST
    or
    SQL> SELECT LOG_MODE FROM V$DATABASE ;
  4. アーカイブログモードへ移行
    SQL> ALTER DATABASE ARCHIVELOG ;
    SQL> ALTER DATABASE OPEN ;

    Oracle 10g では ALTER DATABASE ARCHIVELOG; と同時に自動アーカイブモードになるが、そうならないバージョンもある。
    その場合は、ALTER SYSTEM ARCHIVE LOG START; を実行する。(10g では廃止)

  5. アーカイブ操作の確認 (実際にアーカイブファイルが生成される事を確認)
    SQL> SELECT LOG_MODE FROM V$DATABASE ;
    SQL> ALTER SYSTEM ARCHIVE LOG CURRENT ;

以上

  • 手動アーカイブモードにする場合(通常は使用しない)
    SQL> ALTER DATABASE ARCHIVELOG MANUAL ;
  • 以前の自動アーカイブのON/OFFを制御するコマンド(10gでは廃止)
    SQL> ALTER SYSTEM ARCHIVE LOG {START|STOP};
 


関連事項

日本オラクル
■ 日本オラクル 株式会社
■ オラクルマスター資格 (オラクルマスターとは
■ 会員制(無料)の公式技術サイト