Oracleデータベースを運用していると、「アーカイブログモード」という言葉を必ず耳にします。これはバックアップとリカバリにとって非常に重要な概念です。
この記事では、初心者でも理解できるように、アーカイブログモードの仕組み・用途・確認方法・切り替え手順をテキストの図付きで丁寧に解説します。
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?
アーカイブログモードとは?
Oracleデータベースは、トランザクションの変更情報をREDOログファイルに記録しています。REDOログは循環して使われるため、上書きされる前にバックアップとして保存する仕組みが「アーカイブログ」です。
アーカイブログは、「ログスイッチ(ログ切替)」が発生したタイミングで、直前のREDOログファイルの内容をアーカイブ(保存)する仕組みです。
┌─────────────┐
│ ログスイッチとは? │
└─────────────┘
↓
・REDOログファイルが切り替わるタイミング
・前のREDOログがアーカイブログとして出力される
そしてこのアーカイブログを出力するかどうかによって、Oracleデータベースは次の2つのモードに分かれます。
┌────────────────────────┐
│ ログの扱いモードの違い │
├────────┬────────────┤
│ NOARCHIVELOG モード │ REDOログを使い捨てにする │
│ ARCHIVELOG モード │ REDOログを保存して残す │
└────────┴────────────┘
NOARCHIVELOGとARCHIVELOGの違い
❌ NOARCHIVELOGモード
- REDOログは上書きされる。
- 障害が発生すると、最後のバックアップ以降のデータは失われる。
- オンラインバックアップ不可(データベースを止めてバックアップ)。
✅ ARCHIVELOGモード
- REDOログはアーカイブログとして保存される。
- 障害直前の状態まで完全リカバリが可能。
- オンラインバックアップに対応(業務を止めずにバックアップ可能)。
アーカイブログモードが必要な理由
アーカイブログモードは、次のようなケースで特に必要とされます。
- 金融・医療などデータロスが許されない業務。
- Oracle Recovery Manager(RMAN)を用いたオンラインバックアップを行う場合。
- ノンストップ24時間運用が求められるシステム。
┌─────────────┐
│ データベース障害発生! │
└─────────────┘
↓
・NOARCHIVELOG → バックアップ時点までしか戻れない(データロスあり)
・ARCHIVELOG → アーカイブログで障害直前まで戻せる(データロスなし)
アーカイブログモードの確認方法
現在のモードを確認するには、以下のコマンドをSQL*Plusで実行します。
ARCHIVE LOG LIST
出力例:
SQL> archive log list
データベース・ログ・モード アーカイブ・モード ★
自動アーカイブ 有効
アーカイブ先 /u01/app/oracle/product/19.0.0/dbhome_1/dbs/arch
最も古いオンライン・ログ順序 10
アーカイブする次のログ順序 12
現行のログ順序 12
アーカイブログモードの切り替え手順
-- データベース停止
SHUTDOWN IMMEDIATE
-- マウントモードで起動(OPENしない)
STARTUP MOUNT
-- アーカイブログモードに切り替え
ALTER DATABASE ARCHIVELOG;
-- データベースをオープン
ALTER DATABASE OPEN;
アーカイブログの保存先確認と設定
SHOW PARAMETER log_archive_dest
ALTER SYSTEM SET log_archive_dest_1='LOCATION=/u02/arch' SCOPE=BOTH;
アーカイブログは複数のディレクトリに出力可能!
ALTER SYSTEM SET log_archive_dest_1='LOCATION=/u01/arch1' SCOPE=BOTH;
ALTER SYSTEM SET log_archive_dest_2='LOCATION=/u02/arch2' SCOPE=BOTH;
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?
FRAとアーカイブログの関係
ALTER SYSTEM SET db_recovery_file_dest_size=10G SCOPE=BOTH;ALTER SYSTEM SET db_recovery_file_dest='/u03/fra' SCOPE=BOTH;
ALTER SYSTEM SET log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST' SCOPE=BOTH;
FRA についてはコチラ。
アーカイブログモード運用の注意点
| 項目 | 注意点 |
|---|---|
| 出力先の容量 | ディスクがいっぱいになるとログ出力できず、データベース停止の原因になる |
| バックアップとの連携 | RMANと組み合わせて自動削除や整合性のある運用を推奨 |
| アーカイブログの削除管理 | 古いログはRMANで定期的に削除 |
| 複数出力設定時の確認 | 全ての出力先で正常に書き込みされているかを確認 |
🔁 リストアとリカバリにおけるアーカイブログの役割
アーカイブログモードが真価を発揮するのは、障害時のリストアとリカバリです。
🔧 リストア(Restore)
- RMANで取得したバックアップを用いて、データファイル・制御ファイル等を元の状態に戻す処理。
- ディスク障害等でファイルが破損・削除された場合に実施。
🔁 リカバリ(Recovery)
- アーカイブログとオンラインREDOログを適用して、障害発生直前の状態までトランザクションを再実行する処理。
- 「いつ」「どこまで」戻すかを指定して柔軟に復旧可能。
┌─────────────────────────────┐
│ アーカイブログモードの復旧イメージ図 │
├─────────────┬─────────────┤
│ リストア │ バックアップからファイルを復元 │
│ リカバリ │ アーカイブログでトランザクションを再実行 │
└─────────────┴─────────────┘
例:完全リカバリの基本コマンド(RMAN)
# バックアップからのリストア
RESTORE DATABASE;
# アーカイブログを使ってリカバリ
RECOVER DATABASE;
# データベースのオープン
ALTER DATABASE OPEN;
まとめ:アーカイブログモードは安全な運用の基盤
アーカイブログモードは、Oracleデータベースのデータ保護・災害対策・高可用性運用に欠かせない機能です。
┌────────────────────────────┐
│ アーカイブログモードのメリットまとめ │
├────────────────────────────┤
│ ✔ 障害時に完全リカバリが可能(データロスなし) │
│ ✔ オンラインバックアップと両立できる │
│ ✔ 複数出力で冗長化し可用性アップ │
│ ✔ リストア+アーカイブログで柔軟な復旧が可能 │
└────────────────────────────┘
あなたのデータベースがまだNOARCHIVELOGモードなら、今すぐ見直しをおすすめします!
[参考]
データベース管理者ガイド – 12 アーカイブREDOログ・ファイルの管理




コメント