Oracleのアーカイブログモードとは?仕組み・確認方法・切り替え手順を図解で完全解説!

Oracle Master Bronze

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ログ・ファイルの管理

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

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

コメント

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