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>