oracle

Oracle アーカイブログモードの確認と切り替え

REDOログをアーカイブして別ファイルに残す事をアーカイブといい、アーカイブ化されたファイルをアーカイブログファイル(アーカイブREDOログとも呼ばれています)といい、トラブル発生時などである時点までデータをもどさないといけなくなった場合利用されます。具体的には、バックアップされていたデータをリストアした後、そこから戻したい時点まで差分データをアーカイブREDOログファイルを使って再現するという方法です。(SQL*PlusのRECOVERコマンドで実施)これは「メディアリカバリ」と呼ばれています。このメディアリカバリをするためには必ずアーカイブログモードでの運用が必要になります。

本来テスト環境、本番環境共に「アーカイブログモード」での運用が求められるのでしょうが、テスト環境は「非アーカイブログモード」で運用されている事多いですね。(システム要件によっては本番環境も非アーカイブログモードで運用している場合もありました。何かあった時はバックアップ時点に戻すだけでOKと潔い考えもありだと思います)

アーカイブログ出力モードになっているのか確認する

いくつか確認方法あります。お好みのものお使いください。

V$INSTANCEにて確認する
select INSTANCE_NAME,ARCHIVER from V$INSTANCE
;
INSTANCE_NAME                    ARCHIVER
-------------------------------- --------------
orau8                            STOPPED

SQL>
V$DATABASEにて確認する
select NAME,LOG_MODE from V$DATABASE
;
NAME               LOG_MODE
------------------ ------------------------
ORAU8              NOARCHIVELOG

SQL>
SQL*PlusやSQLclのコマンドで確認する
archive log list
SQL> archive log list
データベース・ログ・モード     非アーカイブ・モード
自動アーカイブ                 使用禁止
アーカイブ先                    USE_DB_RECOVERY_FILE_DEST
最も古いオンライン・ログ順序   2672
現行のログ順序               2675
SQL>

アーカイブログ出力モードへの切り替え

一度データベースをクローズしてからの作業になります。

SQL> shutdown immediate
データベースがクローズされました。
データベースがディスマウントされました。
ORACLEインスタンスがシャットダウンされました。
SQL> startup mount
ORACLEインスタンスが起動しました。

Total System Global Area 1191182336 bytes
Fixed Size                  2923728 bytes
Variable Size             436208432 bytes
Database Buffers          738197504 bytes
Redo Buffers               13852672 bytes
データベースがマウントされました。
SQL> alter database archivelog
  2  ;

データベースが変更されました。
--
--- アーカイブログからノーアーカイブログモードに切り替えるには
--- alter database noarchivelog とすればよいです。
--
SQL> alter database open
  2  ;

データベースが変更されました。

SQL> select log_mode from v$database
  2  ;

LOG_MODE
------------
ARCHIVELOG

SQL>
スポンサーリンク