【完全版】Oracle アーカイブログのバックアップと運用管理

Oracle Master Gold

Oracle Database において、アーカイブログ(Archived Redo Log)の管理は、障害発生時にデータを一切失わない「完全リカバリ」を実現するための生命線です。オンラインREDOログが上書きされる前にファイルとして保存し、RMAN でバックアップを取得しておくことが、DBA の必須業務となります。

本記事では、アーカイブログのモード確認から、具体的なバックアップ手順、運用の自動化、削除戦略までを網羅的に解説します。

💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?

Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?


1. アーカイブログとは?(基本概念)

トランザクションの変更履歴を記録する「オンラインREDOログ」は、容量がいっぱいになると循環(再利用)されます。もし、ログが再利用された後にディスク障害が発生すると、過去の履歴が失われ、そこまでのリカバリが不可能になります。

オンライン(バックアップ中にDBを止めない)バックアップの実現。

アーカイブログの役割: 上書きされる前のオンラインREDOログを別の領域へコピー・保存し、履歴を永続化する。

メリット:

障害時の完全リカバリ(データロスの最小化)。

スタンバイ・データベース(Data Guard)の構築・運用。


2. モードの確認と設定(アーカイブログモード)

データベースが「アーカイブログモード」で稼働しているかを確認し、有効化する手順です。

2.1 現状のモードを確認する

SELECT LOG_MODE FROM V$DATABASE;
-- 'ARCHIVELOG' であれば有効です。

2.2 モードを有効化する手順

有効化にはデータベースの再起動が必要です。

-- 1. DBを停止し、マウントモードで起動
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;

-- 2. モードを有効化
ALTER DATABASE ARCHIVELOG;

-- 3. オープンして確認
ALTER DATABASE OPEN;
SELECT LOG_MODE FROM V$DATABASE;

3. アーカイブログの保存先の設定

ログの出力先とファイル命名規則を決定します。

-- 出力先の指定
ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=/u01/app/oracle/archivelog' SCOPE=SPFILE;

-- ファイルの命名規則指定
ALTER SYSTEM SET LOG_ARCHIVE_FORMAT='arch_%t_%s_%r.log' SCOPE=SPFILE;

-- 設定反映のためDB再起動が必要
SHUTDOWN IMMEDIATE;
STARTUP;

4. RMAN を使用したバックアップ手順

アーカイブログのバックアップには RMAN を使用するのが標準です。

4.1 バックアップ取得パターン

  • すべて取得: BACKUP ARCHIVELOG ALL;
  • 期間指定: BACKUP ARCHIVELOG FROM TIME 'SYSDATE-1';(過去1日分)
  • SCN指定: BACKUP ARCHIVELOG FROM SCN 10000 UNTIL SCN 20000;
  • シーケンス指定: BACKUP ARCHIVELOG UNTIL SEQUENCE 100;

5. バックアップ後の削除戦略

ディスク容量を圧迫しないよう、バックアップ成功後にファイルを削除するのが運用の定石です。

5.1 バックアップ成功後に削除する(推奨)

最も安全な方法は、バックアップと同時に削除を指示することです。

RMAN> BACKUP ARCHIVELOG ALL DELETE INPUT;
  • メリット: バックアップが正常終了したことを確認してから消去するため、データ消失のリスクを回避できます。

5.2 すべてのログを強制削除(注意)

RMAN> DELETE ARCHIVELOG ALL;
  • 警告: バックアップ有無に関わらずファイルを削除するため、運用では使用に十分な注意が必要です。

6. FRA(高速リカバリ領域)による自動化

ストレージ管理を自動化したい場合は、FRA(Fast Recovery Area) の設定が最強です。

-- FRAのサイズと場所を指定
ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE = 20G SCOPE=BOTH;
ALTER SYSTEM SET DB_RECOVERY_FILE_DEST = '/u01/app/oracle/fast_recovery_area' SCOPE=BOTH;
  • FRAのメリット: 容量が枯渇しそうになると、RMAN が保持ポリシーに基づいて自動的に古いバックアップやアーカイブログを削除して領域を確保します。

7. リストアとリカバリ

リストア時も RMAN で簡単に実行可能です。

# 全アーカイブログのリストア
RMAN> RESTORE ARCHIVELOG ALL;

# SCN以降のリストア
RMAN> RESTORE ARCHIVELOG FROM SCN 10000;

# リストア後のDBリカバリ
RMAN> RECOVER DATABASE;

運用上の注意点

  • 監視: アーカイブログの出力先が満杯になると、DB が停止します。FRA の利用や、定期的なバックアップ削除を必ず cron 等で自動化してください。
  • 戻し方: 削除してはいけないログを消してしまった場合、データロスが発生します。保持期間の設定には余裕を持ってください。

FAQ:よくある質問

Q:なぜ NOARCHIVELOG 運用は推奨されないのですか? A:障害発生時、最後に取得したバックアップ以降の更新データがすべて失われるためです。ビジネス継続性の観点から、プロダクション環境では不可欠です。

Q:FRA を設定していればバックアップは不要ですか? A:いいえ。FRA は一時的な保管場所です。FRA 領域自体が故障すればログも消えるため、必ず別のメディアやバックアップピースとして外部へバックアップを取得してください。


まとめ

  • アーカイブログモード を有効にしてデータの完全性を担保する。
  • RMAN を使い、DELETE INPUT オプションで安全にバックアップ・削除する。
  • FRA(高速リカバリ領域) を設定し、自動化と領域保護を両立させる。
  • 運用は cron 等で自動化 し、ヒューマンエラーを防ぐ。

本記事は Oracle Database 19c を対象に解説します(他バージョンは画面や既定値が異なる場合があります)。


[参考]
Oracle Database バックアップおよびリカバリ・ユーザーズ・ガイド 19c

💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?

Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?

コメント

タイトルとURLをコピーしました