ノーアーカイブログモードでのRMANバックアップ

Oracle Master Gold

1. ノーアーカイブログモードとは

ノーアーカイブログモードは、データベースのREDOログをアーカイブせずに上書きするモードです。このモードでは、アーカイブログが不要な環境(テスト環境など)でパフォーマンスを向上させる目的で使用されます。

データベースがノーアーカイブログモードの状態の場合、バックアップはデータベースを停止して実行する必要があります。
データベースを停止して行うバックアップを一貫性バックアップと呼びます。

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

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

アーカイブログモードとの違い

モードアーカイブログバックアップ運用
アーカイブログモードREDOログをアーカイブするポイント・イン・タイムリカバリが可能
ノーアーカイブログモードREDOログをアーカイブしないバックアップ取得時にデータベースの停止が必要

ノーアーカイブログモードでは、オンラインREDOログが上書きされるため、REDOログを使用した完全リカバリができません。そのため、データの保全が重要な本番環境では推奨されません。

2. ノーアーカイブログモードの設定方法

1. 現在のモードの確認

データベースがノーアーカイブログモードで動作しているかどうかは、以下のSQL文で確認できます。

SQL> SELECT LOG_MODE FROM V$DATABASE;

出力例:

LOG_MODE
---------
NOARCHIVELOG

もし「NOARCHIVELOG」と表示されていれば、ノーアーカイブログモードで動作しています。

2. ノーアーカイブログモードへの切り替え

アーカイブログモードからノーアーカイブログモードに変更するには、以下の手順を実施します。

SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE NOARCHIVELOG;
SQL> ALTER DATABASE OPEN;

この操作により、データベースはノーアーカイブログモードに切り替わります。

3. ノーアーカイブログモードでのRMANバックアップ取得

ノーアーカイブログモードでは、バックアップの前にデータベースをマウント状態にする必要があります。

1. データベースのマウント

RMAN> SHUTDOWN IMMEDIATE;
RMAN> STARTUP MOUNT;

2. データベースのバックアップ取得

RMAN> BACKUP DATABASE;

または、バックアップを特定の場所に保存したい場合は、

RMAN> BACKUP DATABASE FORMAT '/backup_location/db_%U.bkp';

と指定します。

RMAN> SELECT LOG_MODE FROM V$DATABASE;

リカバリ・カタログのかわりにターゲット・データベース制御ファイルを使用しています
LOG_MODE
------------
NOARCHIVELOG ★ノーアーカイブログモード

RMAN> SELECT STATUS FROM V$INSTANCE;

STATUS
------------
OPEN ★オープン状態

RMAN> BACKUP DATABASE FORMAT '/u01/app/oracle/backup/db_%U.bkp'; ★バックアップ失敗

backupを25-02-22で開始しています
チャネル: ORA_DISK_1が割り当てられました
チャネルORA_DISK_1: SID=104 デバイス・タイプ=DISK
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: backupコマンドが02/22/2025 00:09:51で失敗しました
RMAN-06149: NOARCHIVELOGモードでデータベースをバックアップできません

RMAN> SHUTDOWN IMMEDIATE; ★停止

データベースがクローズしました
データベースがディスマウントされました。
Oracleインスタンスがシャットダウンしました

RMAN> STARTUP MOUNT; ★マウントで起動

ターゲット・データベースに接続しました(起動していません)。
Oracleインスタンスが起動しました
データベースがマウントされました。

システム・グローバル領域の合計は、 1543500120バイトです。

Fixed Size 8925528バイト
Variable Size 889192448バイト
Database Buffers 637534208バイト
Redo Buffers 7847936バイト

RMAN> BACKUP DATABASE FORMAT '/u01/app/oracle/backup/db_%U.bkp'; ★バックアップ

backupを25-02-22で開始しています
チャネル: ORA_DISK_1が割り当てられました
チャネルORA_DISK_1: SID=37 デバイス・タイプ=DISK
チャネルORA_DISK_1: フル・データファイル・バックアップ・セットを開始しています
チャネルORA_DISK_1: バックアップ・セットにデータファイルを指定しています
入力データファイル ファイル番号=00001 名前=/u01/app/oracle/oradata/V19/system01.dbf
入力データファイル ファイル番号=00003 名前=/u01/app/oracle/oradata/V19/sysaux01.dbf
入力データファイル ファイル番号=00004 名前=/u01/app/oracle/oradata/V19/undotbs01.dbf
入力データファイル ファイル番号=00005 名前=/u01/app/oracle/oradata/V19/rctbs01.dbf
入力データファイル ファイル番号=00007 名前=/u01/app/oracle/oradata/V19/users01.dbf
チャネルORA_DISK_1: ピース1 (25-02-22)を起動します
チャネルORA_DISK_1: ピース1 (25-02-22)が完了しました
ピース・ハンドル=/u01/app/oracle/backup/db_013ictk8_1_1_1.bkp タグ=TAG20250222T001048 コメント=NONE
チャネルORA_DISK_1: バックアップ・セットが完了しました。経過時間: 00:00:36
backupを25-02-22で終了しました

Control File and SPFILE Autobackupを25-02-22で開始しています
ピース・ハンドル=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/c-2957249400-20250222-00 コメント=NONE
Control File and SPFILE Autobackupを25-02-22で終了しました

RMAN>

3. 制御ファイルとSPFILEのバックアップ

制御ファイルとSPFILEのバックアップも取得しておくことで、復旧時の安全性を高めることができます。

RMAN> BACKUP CURRENT CONTROLFILE;
RMAN> BACKUP SPFILE;

4. ノーアーカイブログモードでの注意点

  • 定期的なフルバックアップを取得する
  • バックアップ後に新しいデータが追加された場合、それを復元できない
  • 重要なデータを扱う場合はアーカイブログモードの使用を検討する
  • REDOログが利用できないため、障害時には最新のデータが失われる可能性がある

5. まとめ

ノーアーカイブログモードは、パフォーマンスを優先する環境やテスト環境に適しています。ただし、障害発生時に最新のデータが失われるリスクがあるため、本番環境では慎重に運用する必要があります。

また、ノーアーカイブログモードを利用する場合は、定期的なフルバックアップの取得と制御ファイル・SPFILEのバックアップを強く推奨します。

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

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

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

コメント

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