Oracle アーカイブログモードの有効化と設定

Oracle Master Gold

Oracleデータベースの運用において、データの消失を防ぎ、万が一の障害から「特定の時点」まで復旧させるために不可欠なのがアーカイブログモード(ARCHIVELOGモード)です。

「データベースのバックアップをオンラインで取得したい」「障害直前の状態まで戻したい」といった悩みは、この設定を有効にすることで解決します。本記事では、Oracle アーカイブログの仕組みから、19c環境での具体的な切り替え手順、運用上の注意点までをプロの視点で分かりやすく解説します。

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

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

結論:アーカイブログモードでやることリスト

アーカイブログモードへの切り替えは、データベースを一時的に停止して「MOUNT」状態で行う必要があります。

  1. 現在のモード確認: V$DATABASE ビューで確認。
  2. DBのクリーン停止: SHUTDOWN IMMEDIATE を実行。
  3. マウント起動: STARTUP MOUNT で制御ファイルまで読み込む。
  4. モード変更: ALTER DATABASE ARCHIVELOG を実行。
  5. DBオープン: ALTER DATABASE OPEN でサービス再開。
  6. 保存先設定: LOG_ARCHIVE_DEST_1 等でアーカイブ出力先を確定させる。

アーカイブログモードとは?(基礎知識)

Oracleデータベースには、データの変更履歴を記録する「オンラインREDOログファイル」があります。通常、このファイルはいっぱいになると上書きされます(NOARCHIVELOGモード)。

アーカイブログモードとは、上書きされる前にREDOログのコピーを別の中継地点(アーカイブログファイル)として保存する運用モードのことです。

主なメリット

  • ポイントインタイムリカバリ (PITR): 誤操作の直前など、特定の時刻を指定して復旧できる。
  • オンラインバックアップ: データベースを稼働させたままバックアップが取得可能。
  • データ保護: アーカイブログを遠隔転送(Data Guard等)することで災害対策になる。

アーカイブログモードの確認方法

まずは現在の設定を確認しましょう。SQL*Plusなどで管理権限(SYSDBA)を持つユーザーでログインして実行します。

-- 現在のログモードを確認する
SELECT LOG_MODE FROM V$DATABASE;
  • ARCHIVELOG: 有効(バックアップ運用が可能)
  • NOARCHIVELOG: 無効(初期状態。障害時のデータ保護に制限あり)

実装:アーカイブログモードへの変更手順

19c (CDB/PDB構成) の場合、通常は CDB(ルート・コンテナ) で設定を行います。

【前提条件】

  • 権限: SYSDBA 権限が必要。
  • 環境: ORACLE_SID が正しく設定されていること。
  • リスク: データベースの一時停止(ダウンタイム)が発生します。

1. データベースをマウント状態で起動する

モード変更はデータベースがオープンしている状態では実行できません。

-- 1. データベースを正常停止
SHUTDOWN IMMEDIATE

-- 2. マウント状態で起動
STARTUP MOUNT

2. アーカイブログモードを有効化する

以下のコマンドで、ログを保存する設定に切り替えます。

-- アーカイブログモードへ変更
ALTER DATABASE ARCHIVELOG;

-- データベースをオープン
ALTER DATABASE OPEN;

3. アーカイブログの保存先(出力先)を設定する

保存先が未設定、または高速リカバリ領域(FRA)がいっぱいだとDBが停止する原因になります。

-- 保存先パラメータの確認
SHOW PARAMETER LOG_ARCHIVE_DEST_1;

-- 保存先を特定のディレクトリに指定する例(例:/u01/app/oracle/arch)
-- パス末尾に「LOCATION=」を付与します
ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=/u01/app/oracle/arch' SCOPE=BOTH;

補足: SCOPE=BOTH を指定することで、即時反映および再起動後も有効になります。


逆の手順:NOARCHIVELOGモードへ戻す方法

テスト環境などでアーカイブ出力を停止したい場合の手順です。

  1. SHUTDOWN IMMEDIATE;
  2. STARTUP MOUNT;
  3. ALTER DATABASE NOARCHIVELOG;
  4. ALTER DATABASE OPEN;

トラブルシューティング:よくあるエラー

エラーコード原因対処法
ORA-00257アーカイブ先ディスクが満杯不要なアーカイブログをRMANで削除するか、領域を拡張する。
ORA-01126データベースをマウントせずに変更SHUTDOWN 後、STARTUP MOUNT をやり直す。

運用上の注意点

  • ディスク容量の監視: アーカイブログは自動では消えません。放置するとディスクを使い果たし、データベースがハング(停止)します。
  • RMANによるバックアップ: アーカイブログは、RMAN(Recovery Manager)を使用してバックアップを取得した後に削除する運用が標準的です。
  • パフォーマンス: 大量のデータ更新(バッチ処理など)を行う際、アーカイブ出力のI/O負荷が発生することを考慮してください。

FAQ:よくある質問

Q. PDB(プラガブル・データベース)ごとにモードを変えられますか?

A. いいえ。アーカイブログモードはインスタンス全体(CDB単位)の設定であり、個別のPDBで切り替えることはできません。

Q. 設定変更後に再起動は必要ですか?

A. ALTER DATABASE ARCHIVELOG 自体はマウント状態での操作なので、最終的に ALTER DATABASE OPEN を行えば完了です。ただし、パラメータ LOG_ARCHIVE_DESTSCOPE=SPFILE で書き換えた場合は再起動が必要です。

Q. アーカイブログを手動で削除してもいいですか?

A. OSコマンドでの直接削除は非推奨です。Oracleがファイルの存在を認識できなくなり、リカバリ時に不整合が起きます。必ず RMAN コマンドを使用して削除してください。


まとめ

  • アーカイブログモードはオンラインバックアップと任意時点への復旧に必須。
  • 設定変更にはデータベースの停止とマウント起動が必要。
  • 運用開始後はアーカイブ先の空き容量監視を怠らない。

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


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

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

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

コメント

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