2 RMANの概要

RMANの最も重要な概念を理解し、バックアップおよびリカバリのタスクの実行方法を学ぶことによって、新しいユーザーはRMANをすぐに開始できます。

この章で説明するトピックは、バックアップおよびリカバリに関するその他のドキュメント・セットの代替となるものではありません。

2.1 RMAN環境の概要

Recovery Manager(RMAN)とは、データベースでバックアップおよびリカバリ・タスクを実行し、バックアップ計画の管理を自動化するOracle Databaseクライアントのことです。Recovery Managerによって、データベースのバックアップ、リストアおよびリカバリが大幅に簡単になります。

RMAN環境は、データのバックアップに使用されるユーティリティとデータベースで構成されます。RMANの環境には、最低限次のコンポーネントが含まれている必要があります。

  • ターゲット・データベース

    RMANがTARGETキーワードで接続されているOracle Database。ターゲット・データベースは、RMANがバックアップおよびリカバリ操作を実行するデータベースです。RMANは、常にデータベースの操作に関するメタデータをデータベースの制御ファイルに保持します。RMANのメタデータは、RMANリポジトリと呼ばれます。

  • RMANクライアント

    コマンドを解釈し、それらのコマンドを実行するようにサーバー・セッションに指示し、そのアクティビティをターゲット・データベースの制御ファイルに記録するOracle Database実行可能ファイル。このRMAN実行可能ファイルは、データベースとともに自動的にインストールされ、通常、他のデータベース実行可能ファイルと同じディレクトリに配置されます。たとえば、Linuxの場合、RMANクライアントは$ORACLE_HOME/binに配置されています。

一部の環境では、次のオプションのコンポーネントが使用されます。

  • 高速リカバリ領域

    バックアップおよびリカバリに関連するファイルをデータベースで格納および管理できるディスクの場所。高速リカバリ領域の場所およびサイズは、DB_RECOVERY_FILE_DESTおよびDB_RECOVERY_FILE_DEST_SIZE初期化パラメータを使用して設定します。

  • メディア管理ソフトウェア

    RMANがテープ・ライブラリなどのシーケンシャル・メディア・デバイスと対話するために必要なアプリケーション。メディア・マネージャは、バックアップおよびリカバリ中にこれらのデバイスを制御し、メディアのロード、ラベル付けおよびアンロードを管理します。メディア管理デバイスはSBT(テープへのシステム・バックアップ)デバイスと呼ばれる場合があります。

  • リカバリ・カタログ

    1つ以上のターゲット・データベースに対するRMANアクティビティを記録するために使用する個別のデータベース・スキーマ。リカバリ・カタログは、制御ファイルが消失した場合にRMANリポジトリ・メタデータを保持することで、制御ファイル消失後のリストアおよびリカバリを簡単に実行できるようにします。データベースは制御ファイル内の古いレコードを上書きする場合がありますが、RMANはユーザーがレコードを削除しないかぎり、カタログ内にレコードを永久に保持します。

この章では、リカバリ・カタログまたはメディア・マネージャを使用しない最も基本的な構成でRMANを使用する方法について説明します。

関連項目:

2.2 RMANの起動およびデータベースへの接続: クイック・スタート

RMANを使用して操作を実行する前に、ターゲット・データベースに接続する必要があります。

RMANクライアントは、オペレーティング・システムのコマンド・プロンプトでrmanコマンドを発行して起動します。起動すると、次の例に示すようなコマンド・プロンプトが表示されます。

% rman
RMAN>

RMANによるデータベースへの接続は、SQL*Plusによるデータベースへの接続と同じ方法で指定および認証します。唯一異なるのは、ターゲット・データベースまたは補助データベースへのRMAN接続ではSYSDBAまたはSYSBACKUP権限のいずれかが必要なことです。すべてのユーザーにこの権限が付与されています。

注意:

適切なセキュリティ・プラクティスとして、コマンドラインにパスワードを入力するときは、プレーン・テキストで入力しないでください。RMANでは、RMANプロンプトで要求された場合にのみパスワードを入力してください。パスワード保護については、『Oracle Databaseセキュリティ・ガイド』を参照してください。

データベースには、コマンドライン・オプションまたはCONNECT TARGETコマンドを使用して接続できます。次の例では、RMANを起動してから、SYSBACKUP権限を使用して作成されるユーザーsbuとして、Oracle Netを介してターゲット・データベースに接続します。RMANによってパスワードの入力を求められます。

% rman
RMAN> CONNECT TARGET "sbu@prod AS SYSBACKUP"

target database Password: password
connected to target database: PROD (DBID=39525561)

マルチテナント・アーキテクチャを使用する場合は、RMANによるデータベース接続の確立の説明に従って、ルートまたは指定されたプラガブル・データベース(PDB)に接続できます。

RMANクライアントを終了するには、RMANプロンプトでEXITと入力します。

RMAN> EXIT

一般的なRMANコマンドライン・オプションの構文

RMAN 
[ TARGET connectStringSpec 
| { CATALOG connectStringSpec } 
| LOG ['] filename ['] [ APPEND ]
.
.
. 
]...

connectStringSpec::=
['] [userid] [/ [password]] [@net_service_name] [']

次の例では、/tmp/msglog.logにあるテキスト・ファイルにRMANセッションの出力を追加します。

% rman TARGET / LOG /tmp/msglog.log APPEND

関連項目:

RMANクライアントの起動および操作の詳細は、「RMANクライアントの起動および操作」を参照してください

2.3 RMANのデフォルト構成の表示

RMANのバックアップおよびリカバリ環境は、ターゲット・データベースごとに事前構成されます。この構成は、RMANを終了して再起動した場合でも永続し、このターゲット・データベースで行うその後のすべての操作に適用されます。

RMANの構成設定では、バックアップ・デバイスを指定し、それらのバックアップ・デバイス(チャネルと呼ばれる)への接続を設定し、バックアップ計画に影響する方針の設定などを構成できます。

データベースの現行の構成を表示する手順

  1. 「RMANの起動およびデータベースへの接続」に説明されているとおりに、RMANを起動してターゲット・データベースに接続します。
  2. SHOW ALLコマンドを実行します。

    たとえば、RMANプロンプトでコマンドを次のように入力します。

    RMAN> SHOW ALL;
    

出力には、この構成を再作成するためのCONFIGUREコマンドが表示されます。

関連項目:

RMAN環境の構成方法については、「RMAN環境の構成」および「RMAN環境の構成: 高度なトピック」を参照してください。

2.4 データベースのバックアップ: クイック・スタート

ファイルをバックアップするには、BACKUPコマンドを使用します。RMANは、要求されたバックアップのタイプ用に構成されているデフォルトのデバイスにデータをバックアップします。

デフォルトでは、RMANはディスクにバックアップを作成します。高速リカバリ領域が有効になっていて、FORMATパラメータ(表2-1を参照)を指定していない場合、RMANは、リカバリ領域にバックアップを作成し、自動的に一意の名前を指定します。

デフォルトでは、RMANはイメージ・コピーではなくバックアップ・セットを作成します。バックアップ・セットは、1つ以上のバックアップ・ピースで構成されています。バックアップ・ピースとは、RMANのみがアクセス可能な形式で書き込まれた物理ファイルのことです。多重バックアップ・セットには、複数の入力ファイルからのブロックが含まれています。RMANは、バックアップ・セットをディスクまたはテープに書き込むことができます。

BACKUP AS COPYを指定すると、RMANは各ファイルをイメージ・コピーとしてコピーします。イメージ・コピーは、ディスクに作成されたデータベース・ファイルのビットごとのコピーです。イメージ・コピーは、LinuxのcpやWindowsのCOPYなどのオペレーティング・システム・コマンドで作成したコピーと同じですが、RMANのリポジトリに記録されるため、RMANで使用できます。RMANを使用すると、データベースがオープンしている間にイメージ・コピーを作成できます。

次の各項では、異なるモードでのデータベースのバックアップについて説明します。

関連項目:

2.4.1 一般的なRMANバックアップ・オプションについて

BACKUPコマンドには、バックアップの出力を制御する多くのオプション、パラメータおよび句が含まれています。

表2-1に、一般的なバックアップ・オプションの一部を示します。

表2-1 一般的なバックアップ・オプション

オプション 説明

FORMAT

バックアップ・ピースおよびコピー用の位置と名前を指定します。置換変数を使用して一意のファイル名を生成する必要があります。

最も一般的な置換変数は、一意の名前を生成する%Uです。その他の置換変数には、DB_NAMEを示す%d、バックアップ・セットのタイムスタンプを示す%t、バックアップ・セット番号を示す%sおよびバックアップ・ピース番号を示す%pがあります。

BACKUP 
  FORMAT 'AL_%d/%t/%s/%p' 
  ARCHIVELOG LIKE '%arc_dest%';

TAG

バックアップ用のラベルとしてユーザー定義文字列を指定します。タグを指定しない場合、RMANは、日付と時刻を含むデフォルト・タグを割り当てます。RMANリポジトリでは、タグは常に大文字で格納されます。

BACKUP
  TAG 'weekly_full_db_bkup' 
  DATABASE MAXSETSIZE 10M;

2.4.2 ARCHIVELOGモードでのデータベースのバックアップ

データベースは、ARCHIVELOGモードで稼働している場合、オープン状態でバックアップできます。

バックアップにチェックポイント後の変更が含まれている場合、非一貫性バックアップと呼ばれます。オープン状態のデータベースのバックアップは、バックアップのリカバリに必要なアーカイブREDOログが存在する場合、データ保護の手段として一貫性バックアップと同様に効率的です。

データベースをオープンした状態でデータベースおよびアーカイブREDOログをバックアップする手順

  1. 「RMANの起動およびデータベースへの接続」に説明されているとおりに、RMANを起動してターゲット・データベースに接続します。
  2. BACKUP DATABASEコマンドを実行します。

    たとえば、RMANプロンプトで次のコマンドを入力して、データベースおよびすべてのアーカイブREDOログ・ファイルをデフォルトのバックアップ・デバイスにバックアップします。

    RMAN> BACKUP DATABASE PLUS ARCHIVELOG;

2.4.3 NOARCHIVELOGモードでのデータベースのバックアップ

データベースがNOARCHIVELOGモードで稼働している場合、有効なデータベースのバックアップは一貫性バックアップのみです。

バックアップに一貫性を持たせるには、データベースを一貫性のある状態で停止させた後でマウントする必要があります。バックアップのリストア後にリカバリは必要ありませんが、バックアップ後に実行されたトランザクションは失われる場合があります。データ損失を最小限に抑えるために、一貫性バックアップからアーカイブ・ログを使用してリカバリできます。

一貫性のあるデータベースのバックアップを作成する手順

  1. 「RMANの起動およびデータベースへの接続」に説明されているとおりに、RMANを起動してターゲット・データベースに接続します。
  2. データベースを一貫した状態で停止してから、データベースをマウントします。

    たとえば、バックアップのためにデータベースを確実に一貫性のある状態にするには、次のコマンドを入力します。

    RMAN> SHUTDOWN IMMEDIATE;
    RMAN> STARTUP FORCE DBA;
    RMAN> SHUTDOWN IMMEDIATE;
    RMAN> STARTUP MOUNT;
    
  3. BACKUP DATABASEコマンドを実行します。

    たとえば、RMANプロンプトで次のコマンドを入力して、データベースをデフォルトのバックアップ・デバイスにバックアップします。

    RMAN> BACKUP DATABASE;
    

    次のコマンドは、データベース内のすべてデータファイルのイメージ・コピー・バックアップを作成します。

    RMAN> BACKUP AS COPY DATABASE;
    
  4. データベースをオープンして、通常の操作を再開します。

    データベースをオープンするには、次のコマンドを入力します。

    RMAN> ALTER DATABASE OPEN;

2.4.4 増分バックアップの作成: クイック・スタート

増分バックアップでは、前回の増分バックアップ後に行われたデータベースへのブロックレベルの変更が取得されます。

BACKUP INCREMENTALを指定すると、RMANはデータベースの増分バックアップを作成します。通常、増分バックアップは、データベースの全体バックアップより小さく、高速です。増分バックアップを使用したリカバリは、REDOログのみを使用したバックアップより高速です。

増分バックアップ方針の開始点は、レベル0の増分バックアップ(データベースのすべてのブロックのバックアップ)です。レベル0の増分バックアップの内容は全体バックアップと同じです。ただし、レベル0のバックアップは、全体バックアップと異なり、増分バックアップ計画の一部とみなされます。

レベル1の増分バックアップには、前回の増分バックアップ後に変更されたブロックのみが格納されます。レベル1のバックアップの実行時に現行または親のデータベース・インカネーションにレベル0のバックアップが存在しない場合は、RMANによってレベル0のバックアップが自動的に作成されます。

注意:

増分バックアップは、一貫性のある状態での停止の後にデータベースをマウントする場合は作成できますが、NOARCHIVELOGデータベースをオープンしている場合は作成できません。

レベル1のバックアップは、累積増分バックアップ(最新のレベル0のバックアップ後に変更されたブロックをすべて含む)または差分増分バックアップ(最新の増分バックアップ後に変更されたブロックのみを含む)のいずれかにできます。デフォルトでは、増分バックアップは、差分バックアップに設定されています。

リストアの操作時に、RMANは、まずレベル0のバックアップをリストアし、その後、必要に応じて、増分バックアップおよびREDOログを自動的に適用します。これにより、バックアップの開始以降にデータベースに対して行われた変更が再び適用されます。

データベースの増分バックアップを作成する手順

  1. 「RMANの起動およびデータベースへの接続」に説明されているとおりに、RMANを起動してターゲット・データベースに接続します。
  2. BACKUP INCREMENTALコマンドを実行します。

    次の例では、増分バックアップ計画の基礎となるレベル0の増分バックアップを作成します。

    BACKUP INCREMENTAL LEVEL 0 DATABASE;
    

    次の例では、レベル1の累積増分バックアップを作成します。

    BACKUP INCREMENTAL LEVEL 1 CUMULATIVE DATABASE;
    

    次の例では、レベル1の差分増分バックアップを作成します。

    BACKUP INCREMENTAL LEVEL 1 DATABASE;

関連項目:

増分バックアップの概念の詳細は、「RMANの増分バックアップについて」および「RMANの増分バックアップの作成および更新」を参照してください

2.4.5 増分更新バックアップの作成

増分更新バックアップによって、効率的な永久増分バックアップ計画を実装できます。

RMANの増分更新バックアップ機能には次の主な機能があります。

  • この計画では、基礎としてレベル0のデータファイル・コピーが必要です。このコピーには、システム定義またはユーザー定義のタグがあります。

  • レベル0のデータファイル・コピーと同じタグを使用して、レベル1の差分バックアップが定期的に作成されます。BACKUP FOR RECOVER OF COPYコマンドは、同じタグが含まれている最新の増分バックアップ以降に変更されたブロックのみが増分バックアップに含まれるよう指定します。

  • 増分バックアップがレベル0のデータファイル・コピーに定期的に適用されます。データファイル・コピーが最新の変更によって更新されているため、必要なメディア・リカバリが削減されます。

表2-2に、増分更新バックアップ計画の実装のために、FOR RECOVER OF COPYで使用するオプションを示します。

表2-2 FOR RECOVER OF COPYのオプション

BACKUPのオプション 説明

FOR RECOVER OF COPY WITH TAG 'tag_name'

TAGを使用して、バックアップ計画の基礎となるデータファイル・コピーのタグを識別します。RMANは、このコピーのレベル1のバックアップすべてに自動的に同じタグを割り当てます。

指定したタグが付けられたデータファイル・コピーが現行または親のデータベース・インカネーションに存在しない場合は、指定したタグが付けられたレベル0のデータファイル・コピーがRMANによって作成されます。

BACKUP 
  INCREMENTAL LEVEL 1
  FOR RECOVER OF COPY 
  WITH TAG 'incr_update'
  DATABASE;

FOR RECOVER OF COPY DATAFILECOPY FORMAT 'format'

データファイル・コピーがない場合は、RMANがコピーを作成する場所を指定します。データベースに新しいデータファイルを追加すると、RMANが増分バックアップ・ルーチンに必要なレベル0のコピーを自動的に作成するため、スクリプトを変更する必要がありません。

BACKUP 
  INCREMENTAL LEVEL 1
  FOR RECOVER OF COPY
  DATAFILECOPY FORMAT
  '/disk2/df1.cpy'
  DATABASE;

増分更新バックアップ計画を実装する手順

  1. 「RMANの起動およびデータベースへの接続」に説明されているとおりに、RMANを起動してターゲット・データベースに接続します。

  2. RECOVER COPYおよびBACKUP INCREMENTALコマンドを実行します。

    増分更新バックアップに基づく計画を実装するには、次のスクリプトを定期的に実行する必要があります。

    RECOVER COPY OF DATABASE 
      WITH TAG 'incr_update';
    BACKUP 
      INCREMENTAL LEVEL 1
      FOR RECOVER OF COPY WITH TAG 'incr_update'
      DATABASE;

2.4.6 データベース・ファイルおよびバックアップの検証: クイック・スタート

RMAN検証では、バックアップがリストアできるかどうかを確認します。検証では、ブロックが破損していないか、およびファイルが欠落していないかどうかも確認します。

VALIDATEコマンドを使用して、すべてのデータベース・ファイルが存在し、適切な場所にあり、物理的に破損していないことを確認します。CHECK LOGICALオプションを指定すると、論理ブロックの破損も確認できます。

データベース・ファイルを検証する手順

  1. 「RMANの起動およびデータベースへの接続」に説明されているとおりに、RMANを起動してターゲット・データベースに接続します。
  2. 目的のファイルに対してBACKUP VALIDATE ...コマンドを実行します。

    たとえば、すべてのデータベース・ファイルおよびアーカイブREDOログ・ファイルの物理的および論理的な破損を検証するには、次のコマンドを入力します。

    BACKUP VALIDATE CHECK LOGICAL
      DATABASE ARCHIVELOG ALL;
    

    次の例に示すように、VALIDATEコマンドを使用すると、個々のデータ・ブロックを検証することもできます。

    VALIDATE DATAFILE 4 BLOCK 10 TO 13;
    

    次の例に示すように、バックアップ・セットを検証することもできます。

    VALIDATE BACKUPSET 3;
    

    バックアップ・セットの指定には、LIST BACKUPコマンドの出力に表示されるプライマリ・キーを使用します。

関連項目:

2.4.7 RMAN操作のスクリプト化

RMANでは、週次バックアップなどの繰り返し行うタスクを管理するためのコマンド・ファイルを使用できます。

コマンド・ファイルとは、RMANプロンプトで入力するRMANコマンドと同じコマンドが含まれているクライアント側のテキスト・ファイルのことです。任意のファイル拡張子を指定できます。

ストアド・スクリプトは、ターゲット・データベースおよびそのリカバリ・カタログに接続可能なRMANクライアントに対してスクリプトを使用できるようにするコマンド・ファイルにかわるものです。

コマンド・ファイルを作成して実行する手順

  1. テキスト・エディタを使用してコマンド・ファイルを作成します。

    たとえば、次の内容でコマンド・ファイルを作成します。

    # my_command_file.txt
    CONNECT TARGET /
    BACKUP DATABASE PLUS ARCHIVELOG;
    LIST BACKUP;
    EXIT;
    
  2. RMANを起動して、RMANプロンプトで@コマンドを実行することによってコマンド・ファイルの内容を実行します。
    @/my_dir/my_command_file.txt  # runs specified command file
    

    また、次に示すように、コマンド・ファイルを実行して、RMANを起動することもできます。

    % rman @/my_dir/my_command_file.txt
    

関連項目:

2.5 RMAN操作に関するレポート: クイック・スタート

RMANはRMANリポジトリに格納されている情報を使用して、バックアップ・アクティビティにレポートを生成できます。

バックアップ操作のレポートにRMANのLISTおよびREPORTコマンドを使用します。SHOW ALLコマンドを使用すると、RMANの現行の構成が表示されます。さらに、RMANでは、カスタム・レポートを生成するための総合的なビューのセットが提供されています。

この項では、次の項目について説明します。

2.5.1 バックアップの表示: クイック・スタート

LIST BACKUPコマンドおよびLIST COPYコマンドは、リポジトリにリストされているバックアップおよびデータファイル・コピーに関する情報を表示します。

バックアップに対しては、表2-3および表2-4に示すオプションを使用して、LISTの出力形式を制御できます。

表2-3 バックアップ用のLISTオプション

オプション 説明

BY BACKUP

LIST BACKUP OF DATABASE BY BACKUP

バックアップ・セットごとに出力を編成します。これがデフォルトの表示モードです。

BY FILE

LIST BACKUP BY FILE

バックアップされたファイルに従ってバックアップを表示します。

SUMMARY

LIST BACKUP SUMMARY

サマリー出力を表示します。

バックアップおよびコピーの両方に、表2-4に示す追加オプションがあります。

表2-4 追加のLISTオプション

オプション 説明

EXPIRED

LIST EXPIRED COPY

RMANリポジトリに記録されているが、前回のCROSSCHECKコマンドの実行時にディスクまたはテープ上の適切な場所に存在していなかったバックアップを表示します。期限切れのバックアップは、オペレーティング・システムのユーティリティによって削除された可能性があります。

RECOVERABLE

LIST BACKUP RECOVERABLE

RMANリポジトリのステータスがAVAILABLEであり、リストアおよびリカバリも行うことができるデータファイルのバックアップまたはコピーを表示します。

バックアップおよびコピーを表示する手順

  1. 「RMANの起動およびデータベースへの接続」に説明されているとおりに、RMANを起動してターゲット・データベースに接続します。

  2. RMANプロンプトで、LISTコマンドを実行します。

    次の例に示すように、特定のオブジェクトを表示できます。

    LIST BACKUP OF DATABASE;
    LIST COPY OF DATAFILE 1, 2;
    LIST BACKUP OF ARCHIVELOG FROM SEQUENCE 10;
    LIST BACKUPSET OF DATAFILE 1;
    

関連項目:

2.5.2 データベース・ファイルおよびバックアップに関するレポート: クイック・スタート

REPORTコマンドは、LISTコマンドよりも複雑なレポート分析を実行します。

表2-5は、REPORTコマンドの主要オプションの一部を示します。

表2-5 REPORTのオプション

オプション 説明

NEED BACKUP

REPORT NEED BACKUP DATABASE

現行の保存方針に従ってバックアップする必要があるファイルを表示します。オプションのREDUNDANCYおよびRECOVERY WINDOWパラメータを使用して、様々な条件を指定します。

OBSOLETE

REPORT OBSOLETE

構成済のバックアップの保存方針に従って不要となっているバックアップを表示します。オプションのREDUNDANCYおよびRECOVERY WINDOWパラメータを使用して、デフォルトを上書きします。

SCHEMA

REPORT SCHEMA

現時点(デフォルト)または別の時点でデータベースにある表領域とデータファイルをレポートします。

UNRECOVERABLE

REPORT UNRECOVERABLE

データファイルの前回のバックアップ以降に、データファイル内のオブジェクトに対してリカバリ不能な操作が実行されているすべてのデータファイルを表示します。

データベース・ファイルおよびバックアップのレポートを生成する手順

  1. 「RMANの起動およびデータベースへの接続」に説明されているとおりに、RMANを起動してターゲット・データベースに接続します。

  2. RMANプロンプトで、REPORTコマンドを実行します。

    次の例では、現在構成されているバックアップ保存方針に従って不要となったバックアップをレポートします。

    REPORT OBSOLETE;
    

    次の例では、データベースのデータファイルおよび一時ファイルをレポートします。

    REPORT SCHEMA;
    

関連項目:

RMANのレポートにREPORTコマンドを使用する方法は、「バックアップおよびデータベース・スキーマに関するレポート」を参照してください。

2.6 RMANバックアップのメンテナンス

RMANリポジトリ・メタデータは、ターゲット・データベースの制御ファイルに常に格納されます。このメタデータは、バックアップの管理時にRMANのメンテナンス・コマンドで使用されます。

この項では、次の項目について説明します。

2.6.1 バックアップのクロスチェック: クイック・スタート

CROSSCHECKコマンドを使用して、RMANバックアップおよびコピーの論理レコードをストレージ・メディアのファイルと同期化します。

バックアップがディスク上に存在する場合は、CROSSCHECKによって、そのファイルのヘッダーが有効かどうかが判別されます。バックアップがテープ上に存在する場合は、RMANによって、バックアップ・ピースの名前と場所の問合せがRMANリポジトリに対して実行されます。この場合、バックアップおよびコピーは、クロスチェックしてから削除することをお薦めします。

ディスク上のすべてのバックアップおよびコピーをクロスチェックする手順

  1. 「RMANの起動およびデータベースへの接続」に説明されているとおりに、RMANを起動してターゲット・データベースに接続します。
  2. 次の例に示すように、CROSSCHECKコマンドを実行します。
    CROSSCHECK BACKUP;
    CROSSCHECK COPY;
    

関連項目:

RMANバックアップをクロスチェックする方法については、「RMANリポジトリのクロスチェック」を参照してください。

2.6.2 不要なバックアップの削除: クイック・スタート

DELETEコマンドでは、ディスクおよびテープからRMANのバックアップおよびコピーを削除し、制御ファイル・リポジトリ内のファイルのステータスをDELETEDに更新し、リカバリ・カタログからレコードを削除します(カタログを使用している場合)。

RMANを対話形式で実行し、NOPROMPTオプションを指定しなかった場合は、DELETEによってファイルのリストが表示され、リスト内のファイルを削除する前に確認を求められます。RMANリポジトリに記録されているバックアップおよびデータファイルのコピーのうち不要なものが削除されるため、DELETE OBSOLETEコマンドは特に役に立ちます。DELETEコマンドでオプションを使用して不要なものを指定するか、または構成済のバックアップの保存方針を使用することができます。

不要なバックアップおよびコピーを削除する手順

  1. 「RMANの起動およびデータベースへの接続」に説明されているとおりに、RMANを起動してターゲット・データベースに接続します。
  2. 次の例に示すように、DELETE OBSOLETEコマンドを実行します。
    DELETE OBSOLETE;
    

関連項目:

DELETEコマンドの使用方法については、「RMANバックアップおよびアーカイブREDOログの削除」を参照してください。

2.7 データ・リカバリ・アドバイザを使用した障害の診断および修復: クイック・スタート

データ・リカバリ・アドバイザは、永続的なデータ障害を診断し、修復オプションをユーザーに提示し、ユーザーのリクエストに応じて修復を実行するインフラストラクチャを提供するOracle Databaseツールです。

この項では、次の項目について説明します。

2.7.1 障害の表示および修復オプションの決定

障害とは、状態モニターによって検出される永続的なデータの破損のことです。例としては、物理的および論理的なデータ・ブロックの破損やデータファイルの欠落などがあります。

各障害には、障害優先順位および障害ステータスがあります。優先順位は、CRITICALHIGHまたはLOWのいずれかになります。ステータスは、OPENまたはCLOSEDのいずれかになります。

LIST FAILUREコマンドを実行すると、すべての既知の障害を表示できます。障害が存在する場合は、同じセッションでADVISE FAILUREコマンドを実行し、修復オプションを決定します。ADVISE FAILUREの出力には、手動および自動の両方の修復オプションが示されています。まず、手動での問題の解決を試行します。問題を手動で解決できない場合は、自動修復に関するセクションを参照してください。

自動修復オプションには、1つ以上の障害に関するサーバー管理の修復が記載されています。修復は、可能な場合は統合されているため、1回の修復で複数の障害を解決できます。修復オプションには、実行する修復およびその修復操作の実行によってデータが失われるかどうかが示されます。

関連項目:

「障害の表示」および「修復オプションの決定」を参照してください。

「障害の表示および修復オプションの決定」では、障害を表示し、修復オプションを決定するコマンドを示します。出力には、RMANコマンドが含まれている修復スクリプトのファイル名が示されています。データ・リカバリ・アドバイザを使用して障害を自動的に修復しない場合は、このスクリプトをリカバリ計画の基礎として使用します。

例2-1 LIST FAILUREおよびADVISE FAILURE

RMAN> LIST FAILURE;
 
Database Role: PRIMARY
List of Database Failures
=========================
 
Failure ID Priority Status    Time Detected Summary
---------- -------- --------- ------------- -------
142        HIGH     OPEN      23-APR-13     One or more non-system datafiles are missing
101        HIGH     OPEN      23-APR-13     Datafile 1: '/disk1/oradata/prod/system01.dbf' 
                                            contains one or more corrupt blocks

RMAN> ADVISE FAILURE;
 
Database Role: PRIMARY
List of Database Failures
=========================
 
Failure ID Priority Status    Time Detected Summary
---------- -------- --------- ------------- -------
142        HIGH     OPEN      23-APR-13     One or more non-system datafiles are missing
101        HIGH     OPEN      23-APR-13     Datafile 1: '/disk1/oradata/prod/system01.dbf' 
                                            contains one or more corrupt blocks
 
analyzing automatic repair options; this may take some time
using channel ORA_DISK_1
analyzing automatic repair options complete
 
Mandatory Manual Actions
========================
no manual actions available
 
Optional Manual Actions
=======================
1. If file /disk1/oradata/prod/users01.dbf was unintentionally renamed or moved, restore it
 
Automated Repair Options
========================
Option Repair Description
------ ------------------
1      Restore and recover datafile 28; Perform block media recovery of 
       block 56416 in file 1
  Strategy: The repair includes complete media recovery with no data loss
  Repair script: /disk1/oracle/log/diag/rdbms/prod/prod/hm/reco_660500184.hm

2.7.2 障害の修復: クイック・スタート

RMAN REPAIR FAILUREコマンドを使用して、検出された障害を修復します。

RMANセッションLIST FAILUREおよびADVISE FAILUREを実行した後、REPAIR FAILUREを実行して修復オプションを実行できます。他のコマンド・オプションを指定せずにREPAIR FAILUREを実行すると、RMANは、現在のセッションで最新のADVISE FAILUREコマンドの最初の修復オプションを使用します。最新のADVISE FAILUREコマンドで取得した修復オプション番号を指定することもできます。次の例に、例2-1で検出された障害の修復方法を示します。

RMAN> REPAIR FAILURE;

デフォルトでは、REPAIR FAILUREの実行を開始する前に確認を求められます。修復を実行した後、データ・リカバリ・アドバイザは、障害が修復されている可能性に関してすべての既存の障害を再評価します。データ・リカバリ・アドバイザは、障害が存在しているかどうかを常に確認し、修復されている障害を自動的にクローズします。エラーのため修復を完了できなかった場合は、そのエラーが原因で新しい評価が実行され、既存の障害および修復が再評価されます。

関連項目:

障害の修復

2.8 フラッシュバック・データベースを使用したデータベースの巻戻し: クイック・スタート

Oracle Flashback Databaseを使用すると、データベース全体を過去の時点に巻き戻すことができます。メディア・リカバリとは異なり、データファイルをリストアしてデータベースを過去の状態に戻す必要はありません。

RMANのFLASHBACK DATABASEコマンドを使用するには、フラッシュバック・ログが生成されるように、データベースを事前に構成しておく必要があります。この構成タスクの詳細は、「フラッシュバック・データベースについて」を参照してください。フラッシュバック・データベースによって、コマンドの実行時に存在しているデータファイルに対する変更が巻き戻されます。フラッシュバック・データベースを使用して、メディア障害や欠落したデータファイルを修復することはできません。

FLASHBACK DATABASEを発行する場合は、データベースがマウントされている必要があります。フラッシュバック・データベース・ウィンドウ内の任意の時点にフラッシュバックできます。以前に作成したリストア・ポイントがあれば便利ですが、必須ではありません。

フラッシュバック・データベースを使用してデータベースを巻き戻す手順

  1. 「RMANの起動およびデータベースへの接続」に説明されているとおりに、RMANを起動してターゲット・データベースに接続します。
  2. データベースがマウント状態であることを確認します。

    次のコマンドを実行して、データベースを停止してからマウントします。

    SHUTDOWN IMMEDIATE;
    STARTUP MOUNT;
    
  3. FLASHBACK DATABASEコマンドを実行します。

    次の例は、このコマンドの様々な形式を示しています。

    FLASHBACK DATABASE TO SCN 861150;
    
    FLASHBACK DATABASE 
      TO RESTORE POINT BEFORE_CHANGES;
    
    FLASHBACK DATABASE    
      TO TIMESTAMP TO_DATE(04-DEC-2009  03:30:00','DD-MON-YYYY HH24:MI:SS');
    
  4. フラッシュバック・データベースを実行した後、SQL*Plusを使用してデータベースを読取り専用でオープンし、いくつかの問合せを実行して、データベースの内容を検証します。

    次のように入力して、データベースを読取り専用でオープンします。

    ALTER DATABASE OPEN READ ONLY;
    
  5. 結果が適切である場合は、次の一連のコマンドを実行してデータベースを停止してからオープンできます。
    SHUTDOWN IMMEDIATE;
    STARTUP MOUNT;
    ALTER DATABASE OPEN RESETLOGS;

2.9 データベース・ファイルのリストアおよびリカバリ: クイック・スタート

物理データベース・ファイルをRMANでリストアおよびリカバリするには、RESTOREおよびRECOVERコマンドを使用します。

データファイルをリストアすると、バックアップからリカバリ操作に必要なデータファイルが取得されます。メディア・リカバリは、リストアしたデータファイルにREDOログおよび増分バックアップに含まれている変更を適用して、データファイルを目的のSCNまたは目標時点の状態にします。

この項では、次の項目について説明します。

2.9.1 データベース・ファイルのリストアおよびリカバリの準備: クイック・スタート

メディア障害によってデータベース・ファイルが破損したため、データベースをリカバリするには、必要なバックアップがあることを最初に確認します。

RESTORE ... PREVIEWコマンドを使用すると、指定した時点にリストアするためにRMANで使用可能なバックアップをレポートすることはできますが、リストアすることはできません。RMANは、メタデータは問い合せますが、実際にバックアップ・ファイルは読み取りません。このコマンドは、データベースをオープンしているときにも実行できます。

データベースのリストアおよびリカバリを確認する手順

  1. 「RMANの起動およびデータベースへの接続」に説明されているとおりに、RMANを起動してターゲット・データベースに接続します。
  2. 必要に応じて、次のコマンドで示すように、現行の表領域およびデータファイルを表示します。
    RMAN> REPORT SCHEMA;
    
  3. PREVIEWオプションを指定してRESTORE DATABASEコマンドを実行します。

    次のコマンドでは、バックアップのメタデータが冗長モードで表示されないようにSUMMARYを指定します(出力例も示します)。

    RMAN> RESTORE DATABASE PREVIEW SUMMARY;
     
    Starting restore at 21-MAY-13
    allocated channel: ORA_DISK_1
    channel ORA_DISK_1: SID=80 device type=DISK
     
    List of Backups
    ===============
    Key     TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag
    ------- -- -- - ----------- --------------- ------- ------- ---------- ---
    11      B  F  A DISK        18-MAY-13       1       2       NO         TAG20070518T181114
    13      B  F  A DISK        18-MAY-13       1       2       NO         TAG20070518T181114
    using channel ORA_DISK_1
     
    List of Archived Log Copies for database with db_unique_name PROD
    =====================================================================
     
    Key     Thrd Seq     S Low Time
    ------- ---- ------- - ---------
    47      1    18      A 18-MAY-13
            Name: /disk1/oracle/dbs/db1r_60ffa882_1_18_0622902157.arc
     
    Media recovery start SCN is 586534
    Recovery must be done beyond SCN 587194 to clear datafile fuzziness
    validation succeeded for backup piece
    Finished restore at 21-MAY-13

2.9.2 データベース全体のリカバリ: クイック・スタート

データベース全体をリカバリするには、RESTORE DATABASEおよびRECOVER DATABASEコマンドを使用します。

必要なすべてのファイルのバックアップを事前に作成しておく必要があります。このシナリオでは、すべてのデータファイルを元の場所にリストアできることを想定しています。元の場所にアクセスできない場合は、「デフォルト以外の場所へのデータファイルのリストアについて」の説明に従ってSET NEWNAMEコマンドを使用します。

データベース全体をリカバリする手順

  1. 「データベース・ファイルのリストアおよびリカバリの準備」の説明に従ってリカバリを準備します。
  2. データベースをマウント状態にします。

    次の例では、(起動されている場合は)データベース・インスタンスを終了し、データベースをマウントします。

    RMAN> STARTUP FORCE MOUNT;
    
  3. データベースをリストアします。

    次の例では、事前構成されたディスク・チャネルを使用して、データベースをリストアします。

    RMAN> RESTORE DATABASE;
    
  4. 次の例に示すように、データベースをリカバリします。
    RMAN> RECOVER DATABASE;
    
  5. 次の例に示すように、データベースをオープンします。
    RMAN> ALTER DATABASE OPEN;

2.9.3 表領域のリカバリ: クイック・スタート

データベースがオープンされている場合は、個々の表領域に対してRESTORE TABLESPACEおよびRECOVER TABLESPACEコマンドを使用します。この場合、リカバリが必要な表領域をオフラインにしてリストアし、表領域をリカバリしてからオンラインに戻す必要があります。

元の場所にデータファイルをリストアできない場合、RUNブロック内でRMAN SET NEWNAMEコマンドを使用して新しいファイル名と場所を指定します。その後、SQL文のALTER DATABASE RENAME FILEと同等のSWITCH DATAFILE ALLコマンドを使用して制御ファイルを更新し、RUNコマンドでSET NEWNAMEが発行されたすべてのデータファイルの新しい名前を反映します。

ユーザー管理のメディア・リカバリとは異なり、オンラインの表領域をバックアップ・モードにする必要はありません。RMANでは、データ・ブロックの形式が認識されるため、追加のロギングまたはバックアップが必要ありません。

データベースがオープンされている場合に個々の表領域をリカバリする手順

  1. 「データベース・ファイルのリストアおよびリカバリの準備」の説明に従ってリカバリを準備します。
  2. リカバリする表領域をオフラインにします。

    USERS表領域をオフラインにするには、次のように入力します。

    RMAN> ALTER TABLESPACE users OFFLINE;
    
  3. 表領域をリストアおよびリカバリします。

    RMANプロンプトで次のRUNコマンドを実行すると、USERS表領域にデータファイルの新しい名前が設定されます。

    RUN
    {
      SET NEWNAME FOR DATAFILE '/disk1/oradata/prod/users01.dbf' 
        TO '/disk2/users01.dbf';
      RESTORE TABLESPACE users;
      SWITCH DATAFILE ALL;   # update control file with new file names
      RECOVER TABLESPACE users;
    }
    
  4. 次の例に示すように、データベースをオンラインにします。
    RMAN> ALTER TABLESPACE users ONLINE;
    

データファイル・レベルのリカバリには、RESTORE DATAFILEおよびRECOVER DATAFILEを使用することもできます。

2.9.4 個々のデータ・ブロックのリカバリ: クイック・スタート

RMANは、破損した個々のデータファイル・ブロックをリカバリできます。

RMANによってバックアップ用のファイルの完全スキャンが実行されると、破損ブロックがV$DATABASE_BLOCK_CORRUPTIONにリストされます。通常、破損は、アラート・ログ、トレース・ファイルまたはSQL問合せの結果に記録されます。

データ・ブロックをリカバリする手順

  1. 「RMANの起動およびデータベースへの接続」に説明されているとおりに、RMANを起動してターゲット・データベースに接続します。
  2. 破損したブロックのブロック番号がわからない場合は、これらの番号を取得します。
    RMAN> SELECT NAME, VALUE FROM V$DIAG_INFO;
    
  3. RECOVERコマンドを実行してブロックを修復します。

    次のRMANコマンドによって、破損したすべてのブロックがリカバリされます。

    RMAN> RECOVER CORRUPTION LIST;
    

    次の例に示すように、個々のブロックをリカバリすることもできます。

    RMAN> RECOVER DATAFILE 1 BLOCK 233, 235 DATAFILE 2 BLOCK 100 TO 200;