日本語PDF

9 データベースのバックアップ

この章では、最も基本的なバックアップ作業の実行方法およびRMANを使用したバックアップ計画の実装方法について説明します。この章のトピックは、次のとおりです:

関連項目:

9.1 RMANバックアップの概要

RMANバックアップは、BACKUPコマンドを使用して作成されます。

この項では、RMANバックアップの概要について説明します。

9.1.1 RMANバックアップの目的

RMANバックアップの主要な目的は、データを保護することです。メディア障害が発生した場合は、バックアップをリストアして、消失した変更をリカバリできます。

また、バックアップを作成すると、長期アーカイブ用のデータの保持やデータの転送が可能になります。

9.1.2 RMANバックアップの基本的な概念

RMANクライアント内からBACKUPコマンドを使用して、データベースの全部または一部をバックアップできます。

多くの場合、バックアップ計画に従ってデータベースを構成しておくと、RMANプロンプトで次のコマンドを入力してデータベースをバックアップできます。

RMAN> BACKUP DATABASE;

RMANは、構成された設定、以前のバックアップのレコードおよびデータベース構造の制御ファイル・レコードを使用して、効率的な一連のバックアップ・ステップを決定します。その後、それらのステップを実行します。

「Data Guard環境でのRMANによるファイル管理について」で説明されているように、Data Guard環境の任意のデータベースでRMANバックアップを実行できます。バックアップにアクセスできる場合、環境内の任意のデータベースのすべてのバックアップを他のデータベースのリカバリに使用できます。データベース・ファイルのすべてのバックアップ(制御ファイルのバックアップを含む)をフィジカル・スタンバイ・データベースにオフロードすると、プライマリ・データベース上のリソースの消費を回避できます。

関連項目:

9.2 バックアップ出力オプションの指定

BACKUPコマンドに引数を指定して、デフォルトのバックアップ・オプションを上書きできます。

BACKUP DATABASEなどのRMANのコマンドに最低限必要なオプションしか指定しないと、構成済の環境およびRMANの組込みのデフォルトに基づいて、バックアップ先のデバイス、バックアップ出力の格納場所およびバックアップ・タグが自動的に決定されます。

この項では、最も一般的なバックアップ・オプションについて説明します。

9.2.1 RMANバックアップ用のデバイス・タイプの指定

BACKUPコマンドでは、ディスクまたはテープ・デバイスのいずれにバックアップするかを指定するDEVICE TYPE句を使用します。

DEVICE TYPE句を指定しないでBACKUPを実行すると、RMANは、構成されているデフォルトのデバイス(ディスクまたはSBT)にバックアップを格納します。CONFIGURE DEFAULT DEVICE TYPEコマンドを使用して、デフォルトのデバイスを設定します。

例9-1 デバイス・タイプDISKの指定

この例は、ディスクにバックアップする場合の例です。

BACKUP 
   DEVICE TYPE DISK
   DATABASE;

9.2.2 ディスクへのRMANバックアップ用のバックアップ・セットまたはバックアップ・コピーの指定

RMANは、イメージ・コピーまたはバックアップ・セットとしてバックアップをディスク上に作成できます。

デフォルト・デバイスが構成されている場合は、AS COPY句またはAS BACKUPSET句を使用してこのデフォルトを上書きできます。

例9-2 イメージ・コピーの作成

この例では、BACKUP AS COPYを使用して、イメージ・コピーとしてディスクにバックアップします。

BACKUP AS COPY
  DEVICE TYPE DISK 
  DATABASE;

例9-3 バックアップ・セットの作成

バックアップ・セットにデータをバックアップするには、AS BACKUPSET句を使用します。この例では、バックアップ・セットを、構成されているデフォルト・デバイスに作成したり、ディスクまたはテープに明示的に格納する方法を示します。

BACKUP AS BACKUPSET 
  DATABASE;

BACKUP AS BACKUPSET 
  DEVICE TYPE DISK 
  DATABASE;

BACKUP AS BACKUPSET 
  DEVICE TYPE SBT 
  DATABASE;

9.2.3 RMANバックアップのフォーマットの指定

RMANには、BACKUPコマンドで生成されるファイルに名前を指定するための様々なオプションが用意されています。

RMANは、優先順位に従って示されている次のルール・セットを使用して、出力ファイル形式を決定します。

  1. BACKUPコマンドでFORMATパラメータを指定すると、この設定により、生成されるファイル名が制御されます。

    たとえば、次のコマンドに示すように、出力を特定の場所に格納することができます。

    BACKUP DATABASE 
      FORMAT "/disk1/backup_%U";  # specifies a location on the file system
    

    この場合、バックアップは、生成された一意のファイル名(/disk1/backup_という接頭辞付き)で格納されます。ファイル名のその部分に一意の文字列を生成するために使用される、置換変数%Uが必要です。

    また、次の例に示すように、FORMATパラメータを使用して、バックアップ先としてASMディスク・グループを指定することもできます。

    BACKUP DATABASE 
      FORMAT '+dgroup1';  # specifies an ASM disk group
    

    この場合、必要に応じて自動ストレージ管理(ASM)で一意のファイル名が生成されるため、%Uは不要です。ただし、必要な場合は、%Uを指定できます。

    ノート:

    高速リカバリ領域が有効になっている場合にFORMATを指定すると、RMANはFORMATの設定に従います。FORMAT句で場所を指定しなかった場合、RMANはプラットフォーム固有の場所にバックアップを作成します。
  2. FORMAT設定がバックアップで使用される特定のチャネル用に構成されている場合、生成されるファイル名の制御はこの設定によって行われます。
  3. FORMAT設定がバックアップで使用されるデバイス・タイプ用に構成されている場合、生成されるファイル名の制御はこの設定によって行われます。
  4. ディスク・バックアップ中に高速リカバリ領域が有効になっていて、FORMATが指定されていない場合は、自動生成された名前で高速リカバリ領域にバックアップが作成されます。
  5. このリストの他の条件が当てはまらない場合は、バックアップのデフォルトの場所およびファイル名の書式はプラットフォーム固有になります。
9.2.3.1 ディスク・バックアップの複数のフォーマットの指定

ディスクにバックアップする際、フォーマットを指定して複数のドライブにバックアップを分散させることで、パフォーマンスを向上させることができます。

  • データベースを複数のディスク・ドライブにバックアップするには、ファイル名が異なるディスク上で生成されるように、ALLOCATE CHANNELコマンドでディスク・ドライブごとに1つのDISKチャネルを割り当てて、フォーマット文字列を指定します。

    RUN
    { 
      ALLOCATE CHANNEL disk1 DEVICE TYPE DISK FORMAT '/disk1/%d_backups/%U';
      ALLOCATE CHANNEL disk2 DEVICE TYPE DISK FORMAT '/disk2/%d_backups/%U';
      ALLOCATE CHANNEL disk3 DEVICE TYPE DISK FORMAT '/disk3/%d_backups/%U';
      BACKUP AS COPY DATABASE; 
    } 
  • デフォルトでバックアップを複数のディスク・ドライブに分散するデフォルト構成を作成するには、複数のディスク・チャネルを構成します。

    CONFIGURE DEVICE TYPE DISK PARALLELISM 3;
    CONFIGURE DEFAULT DEVICE TYPE TO DISK;
    CONFIGURE CHANNEL 1 DEVICE TYPE DISK FORMAT '/disk1/%d_backups/%U';
    CONFIGURE CHANNEL 2 DEVICE TYPE DISK FORMAT '/disk2/%d_backups/%U';
    CONFIGURE CHANNEL 3 DEVICE TYPE DISK FORMAT '/disk3/%d_backups/%U';
    BACKUP AS COPY DATABASE;

通常、テープにバックアップする場合には、デフォルトの %U変数によってテープ・バックアップに一意のファイル名が生成されるため、フォーマットを指定する必要はありません。

9.2.4 RMANバックアップのタグの指定

RMANは、バックアップを識別する方法として、作成するすべてのバックアップにtag と呼ばれる文字列を追加します。デフォルトのタグを受け入れるか、またはBACKUPコマンドのTAGパラメータで独自のタグを指定できます。

9.2.4.1 バックアップ・タグについて

ユーザー指定のタグは、異なる種類のバックアップまたはコピーの目的や使用方法を示すのに役立ちます。

バックアップ・セット、プロキシ・コピー、データファイル・コピーまたは制御ファイル・コピーにタグを付けることができます。たとえば、SWITCHコマンドで使用する予定のデータファイル・コピーにはfor_switch_onlyというタグを付け、RESTOREコマンドでのみ使用するファイル・コピーにはfor_restore_onlyというタグを付けることができます。

タグは一意である必要はないため、複数のバックアップ・セットまたはイメージ・コピーに同じタグ(weekly_backupなど)を付けることができます。特定のタグが付いたバックアップからデータファイルをリストアするように指定するとします。要求したファイルの複数のバックアップにそのタグが含まれている場合、RMANは、RESTOREコマンドの制約内で、指定したタグが含まれている最新のバックアップをリストアします。

実際には、タグは、多くの場合、増分バックアップ計画などの1つの計画の一環として作成された一連のバックアップを区別する場合に使用されます。たとえば、週次の増分バックアップを作成し、BACKUP TAG weekly_incrementalなどのタグを付けることができます。BACKUPコマンドの多くの形式では、タグをバックアップに関連付けることができます。また、RESTOREおよびRECOVERコマンドの多くでは、RESTOREまたはRECOVER操作で使用するバックアップを制限するタグを指定できます。

BACKUPコマンドのTAGパラメータを使用して明示的にタグを指定しない場合は、RMANによって、バックアップ(制御ファイルの自動バックアップ以外)のデフォルト・タグが暗黙的に作成されます。タグの形式は、TAGYYYYMMDDTHHMMSSです。ここで、YYYYは年、MMは月、DDは日、HHは時間(24時間形式)、MMは分、SSは秒です。たとえば、データファイル1のバックアップには、タグTAG20070208T133437が割り当てられる場合があります。日時は、バックアップを実行するインスタンスのタイムゾーンで、RMANがバックアップを開始した日時です。1つのBACKUPコマンドによって複数のバックアップ・セットが作成される場合、各バックアップ・ピースには同じデフォルト・タグが割り当てられます。

入力時に使用した大/小文字に関係なく、タグは大文字で格納されます。バックアップ・タグの最大長は30バイトです。オペレーティング・システムの環境変数または%T%Dなどの特殊な書式は、タグに使用できません。

9.2.4.2 バックアップ・セットおよびイメージ・コピーのタグの指定

BACKUPコマンドとともにTAGパラメータを使用して、バックアップ・セットおよびイメージ・コピーのタグを指定します。

タグで使用する文字は、ターゲットのデータベース・ファイル・システムでファイル名として有効な文字に制限する必要があります。 たとえば、自動ストレージ管理(ASM)では、内部的に使用されるファイル名でのハイフン(-)の使用はサポートされていません。このため、ASMディスク・グループでのバックアップの場合、ハイフンが含まれているタグ(weekly-incrなど)は無効なタグ名になります。

バックアップ・セットにタグを指定すると、そのタグは、指定したバックアップ・セットのコピーに含まれる各バックアップ・ピースの属性になります。多重バックアップ・セットを作成すると、バックアップ・セットの各コピーに同じタグが割り当てられます。

例9-4 バックアップ・セットへのタグの適用

この例では、タグMONDAYBKPが指定されたバックアップ・セットを1つ作成します。

BACKUP AS BACKUPSET
  COPIES 1 
  DATAFILE 7
  TAG mondaybkp; 

例9-5 イメージ・コピーへのタグの適用

この例では、表領域usersおよびtoolsのデータファイルのコピーに、タグMONDAYCPYを割り当てます。イメージ・コピーにタグを指定すると、そのタグは各コピーに適用されます。

BACKUP AS COPY 
  TABLESPACE users, tools
  TAG mondaycpy;

例9-6 出力コピーへのタグの割当て

この例では、タグfull_cold_copyが含まれている、データベースのすべてのイメージ・コピーのコピーを新しく作成し、その新しいコピーにタグnew_full_cold_copyを割り当てます。FROM TAGを使用して特定のタグが含まれているイメージ・コピーをコピーした後、TAGを使用して出力コピーに別のタグを割り当てることができます。

BACKUP AS COPY
  COPY OF DATABASE
    FROM TAG full_cold_copy
  TAG new_full_cold_copy;

9.2.5 圧縮バックアップの作成

バックアップ・セットを作成する際、BACKUPコマンドにAS COMPRESSED BACKUPSETオプションを含めることで、バックアップ・セットのバイナリ圧縮に関するRMANのサポートを使用できます。

RMANは、バックアップ・セットの内容を圧縮してからディスクに書き込みます。使用されるバイナリ圧縮レベルの詳細が自動的にバックアップ・セットに記録されます。使用される圧縮のタイプやリカバリ操作でのバックアップ・セットの解凍方法を明示的に示す必要はありません。

バイナリ圧縮では、バックアップおよびリカバリ操作中に、パフォーマンスにある程度のオーバーヘッドが発生します。バイナリ圧縮はCPUリソースを消費するため、CPU使用率が高いときは、圧縮バックアップを通常スケジュールにしないでください。ただし、次の状況では、パフォーマンスが低下する可能性があります。

  • 高速リカバリ領域またはその他のディスクベースのバックアップ先内のディスク領域が制限されている状況で、ディスクベースのバックアップを使用している場合

  • CPU使用率よりネットワーク帯域幅を削減することのほうが重要となる状況で、ネットワークを介して特定のデバイスへのバックアップを実行している場合

  • CD、DVDなどのアーカイブ・バックアップ・メディアを使用しており、バックアップ・サイズを削減することでメディア・コストおよびアーカイブ・ストレージを節約できる場合

例9-7 圧縮バックアップの作成

この例では、データベース全体とアーカイブ・ログを、構成済のデフォルトのバックアップ先(ディスクまたはテープ)にバックアップし、圧縮バックアップ・セットを作成します。

BACKUP 
  AS COMPRESSED BACKUPSET 
  DATABASE PLUS ARCHIVELOG;

9.2.6 マルチセクション増分バックアップの指定

マルチセクション・バックアップでは、複数のチャネルでパラレルにバックアップできるように、大規模なデータファイルをセクションに分割できます。これにより、より高速なバックアップ・パフォーマンスとリカバリ時間の短縮を実現します。

マルチセクション・バックアップには、複数のバックアップ・ピースが含まれます。マルチセクション・バックアップ操作の際、RMANはバックアップ・ピースごとに別々のチャネルを使用し、各バックアップ・ピースにパラレルで書き込みます。

データベースとデータファイルのマルチセクション・フル・バックアップは、Oracle Database 11gリリース1からサポートされます。RMANでは、Oracle Database 12cリリース1 (12.1)から、マルチセクション増分バックアップをサポートします。マルチセクション増分バックアップを作成する際に、適用できる場合は、未使用ブロック圧縮とブロック・チェンジ・トラッキングも使用されます。バックアップ・セットを使用すると、マルチセクションの全体または増分バックアップを作成できます。

レベル0のマルチセクション増分バックアップを作成するには、COMPATIBLEパラメータに11.0以上を設定する必要があります。ただし、レベル1以上のマルチセクション増分バックアップを作成するには、COMPATIBLEパラメータに12.0.0以上を設定する必要があります。RMANでは、常に、FILESPERSETを1に設定して、マルチセクション増分バックアップを作成します。

マルチセクション・バックアップを作成するには、BACKUPコマンドに SECTION SIZE句を使用します。SECTION SIZE句では、各バックアップ・セクションのサイズを指定します。ファイルのサイズより大きいセクション・サイズを指定した場合、RMANはそのファイルのマルチセクション・バックアップを使用しません。小さなセクション・サイズを指定した結果、セクションの数が256を超えると、RMANは、正確に256になる値までセクション・サイズを増やします。

マルチセクション・バックアップを識別するためのビュー

バックアップがマルチセクション・バックアップであるかどうかは、V$BACKUP_SETビューまたはリカバリ・カタログ・ビューRC_BACKUP_SETMULTI_SECTION列を使用して確認します。マルチセクション・バックアップの場合、MULTI_SECTION列に、Yesが含まれます。

マルチセクション・バックアップのメタデータを含むビュー

V$BACKUP_DATAFILEビューとRC_BACKUP_DATAFILEビューでは、マルチセクション・バックアップの各セクションに、ブロック数に関する情報が表示されます。BLOCKS列に、各マルチセクション・バックアップのブロック数が表示されます。

例9-8 データベースのバックアップ・セットとしてのマルチセクション増分バックアップ

次の例では、データファイルのマルチセクション・レベル1増分バックアップをバックアップ・セットとして作成します。

  1. ターゲット・データベースの初期化パラメータCOMPATIBLEが12.0.0以上に設定されていることを確認します。

  2. RMANを起動し、SYSBACKUP権限またはSYSDBA権限を持つユーザーとして、ターゲット・データベースに接続します。

  3. 必要な場合、RMANを構成してバックアップ・デバイスにパラレルに書き込みます。

    次の例では、2つのディスク・チャネルをパラレルで使用するようにRMANを構成します。

    CONFIGURE DEVICE TYPE disk PARALLELISM 2;
  4. BACKUPSECTION SIZEを使用して実行し、マルチセクション・バックアップを作成する必要があることを指定します。

    次の例では、データファイルusers_df.dbfのマルチセクション・セクション・レベル1のバックアップをバックアップ・セットを使用して作成します。各バックアップ・ピースは、100MBです。

    BACKUP 
       INCREMENTAL LEVEL 1
       SECTION SIZE 100M
       DATAFILE '/oradata/datafiles/users_df.dbf';

9.2.7 イメージ・コピーを使用したマルチセクション・バックアップの作成

イメージ・コピーの作成中、RMANは複数のチャネルを使用してファイルのセクションに書き込みます。ただし、この操作の出力は、各データファイルに対して1つのコピーです。

マルチセクション・バックアップでは、大規模なファイルをバックアップするために複数のチャネルをパラレルで使用することで、より高いパフォーマンスを提供します。Oracle Database 12cリリース1 (12.1)以降、イメージ・コピーとして格納されるマルチセクション・フル・バックアップを作成できます。

  • マルチセクション・バックアップを作成するには、BACKUPコマンドに SECTION SIZE句を使用します。

    指定したセクション・サイズがファイルのサイズより大きい場合、RMANはそのファイルのマルチセクション・バックアップを使用しません。セクションの数が256を超えることになる小さなセクション・サイズを指定した場合、RMANは、正確に256セクションになる値までセクション・サイズを増やします。

例9-9 データファイルのイメージ・コピーとしてのマルチセクション・バックアップ

データベースのマルチセクション・バックアップをイメージ・コピーとして作成するには、次のステップを使用します。

  1. ターゲット・データベースのCOMPATIBLEパラメータに12.0.0以上が設定されていることを確認します。

  2. RMANを起動し、SYSBACKUP権限またはSYSDBA権限を持つユーザーとして、ターゲット・データベースに接続します。

  3. 必要に応じて、RMANが複数のドライブをパラレルに使用してバックアップ操作を実行できるように、チャネルのパラレル化を構成します。

  4. BACKUPSECTION SIZEおよびAS COPYを使用して実行し、イメージ・コピーを使用してマルチセクション・バックアップを作成する必要があることを指定します。

    次のコマンドは、イメージ・コピーを使用してデータベース全体のマルチセクション増分バックアップを作成します。各バックアップ・ピースは、500MBです。

    BACKUP 
       AS COPY
       SECTION SIZE 500M
       DATABASE;

9.3 RMANを使用したデータベース・ファイルのバックアップ

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

9.3.1 RMANを使用したデータベース全体のバックアップ

データベース全体のバックアップは、データベースをマウントまたはオープンした状態で実行できます。

データベース全体のバックアップを実行するには、RMANプロンプトからBACKUP DATABASEコマンドを使用します。

必要に応じて、データベース全体のバックアップから指定した表領域を除外できます。常にスキップする表領域ごとにCONFIGURE EXCLUDEコマンドを実行して、RMANセッションで表領域を永続的にスキップできます。構成済の設定は、BACKUP ... NOEXCLUDEで上書きできます。

データベースをバックアップするには:

  1. RMANを起動し、ターゲット・データベースおよびリカバリ・カタログ(使用している場合)に接続します。

    オペレーティング・システム認証(ローカルに接続する場合)またはパスワード・ファイル認証を使用できます。次の例では、パスワード・ファイル認証を使用してターゲット・データベースとリカバリ・カタログに接続します。

    %rman
    RMAN> CONNECT TARGET "sbu@prod as SYSBACKUP";
    RMAN> CONNECT CATALOG rco@catdb;

    RMANによって、sbuおよびrcoユーザーのパスワードが要求されます。ここで、prodはターゲット・データベースのサービス名、sbuはターゲット・データベースに対するSYSBACKUP権限を持つユーザーです。catdbはリカバリ・カタログのサービス名です。

  2. データベースがマウントまたはオープンされていることを確認します。
  3. RMANプロンプトでBACKUP DATABASEコマンドを発行します。

    このコマンドの最も簡単な形式にはオプションまたはパラメータは必要ありません。

    BACKUP DATABASE;

    バックアップされるファイルのリストは、BACKUPコマンドとともに使用されるキーワードに依存します。

    次の例では、データベースをバックアップし、オンラインREDOログを切り替え、アーカイブ・ログをバックアップに格納します。

    BACKUP DATABASE PLUS ARCHIVELOG;
    

    バックアップの直後にログをアーカイブすることによって、バックアップ時間全体のアーカイブ・ログの完全なセットを取得します。これによって、このバックアップのリストア後にメディア・リカバリを実行できることが保証されます。

9.3.2 RMANによる表領域とデータファイルのバックアップ

BACKUP TABLESPACEコマンドでは1つ以上の表領域、 BACKUP DATAFILEコマンドでは1つ以上のデータファイルをバックアップできます。

表領域を指定すると、RMANは表領域の名前を一連のデータファイルに内部的に変換します。データベースは、マウントされている状態でもオープンされている状態でもかまいません。表領域は、読取り/書込みでも読取り専用でもかまいません。

ノート:

以前のリリースと同様に、トランスポータブル表領域は、バックアップに対して読取り/書込みモードである必要はありません。

バックアップにデータファイル1が含まれている場合、RMANは、制御ファイルおよびサーバー・パラメータ・ファイル(インスタンスがサーバー・パラメータ・ファイルで起動されている場合)を自動的にバックアップします。制御ファイルの自動バックアップが有効になっている場合、RMANは、現行の制御ファイルおよびサーバー・パラメータ・ファイルを別の自動バックアップ・ピースに書き込みます。そうでない場合、RMANは、データファイル1が含まれているバックアップ・セットにこれらのファイルを書き込みます。

表領域またはデータファイルをバックアップするには:

  1. RMANを起動し、ターゲット・データベースおよびリカバリ・カタログ(使用している場合)に接続します。
  2. データベース・インスタンスが起動されていない場合は、データベースをマウントまたはオープンします。
  3. RMANプロンプトで、BACKUP TABLESPACEコマンドまたはBACKUP DATAFILEコマンドを実行します。

次の例では、usersおよびtools表領域をテープにバックアップします。

BACKUP
  DEVICE TYPE sbt
  TABLESPACE users, tools;

次の例では、SBTチャネルを使用して、データファイル1から4および/tmp/system01.dbfに格納されているデータファイルのコピーをテープにバックアップします。

BACKUP 
  DEVICE TYPE sbt 
  DATAFILE 1,2,3,4 
  DATAFILECOPY '/tmp/system01.dbf';

9.3.3 RMANを使用した制御ファイルのバックアップ

制御ファイルは、データベースがマウントまたはオープンされた状態でバックアップできます。RMANは、スナップショット制御ファイルを使用して、読取り一貫性のバージョンを保証します。

CONFIGURE CONTROLFILE AUTOBACKUPコマンドをON(デフォルトではOFF)に設定すると、各バックアップの実行後、およびデータベースの構造変更後に、RMANで制御ファイルとサーバー・パラメータ・ファイルが自動的にバックアップされます。制御ファイルの自動バックアップには、障害時リカバリに不可欠な前回のバックアップに関するメタデータが含まれます。

ノート:

1つのData Guardデータベースで作成された制御ファイルのバックアップを、環境内の他のすべてのデータベースにリストアすることができます。プライマリ制御ファイルのバックアップとスタンバイ制御ファイルのバックアップには互換性があります。

自動バックアップ機能が設定されていない場合は、次のいずれかの方法を使用して、手動で制御ファイルをバックアップする必要があります。

  • BACKUP CURRENT CONTROLFILEを実行します。

  • BACKUPコマンドのINCLUDE CURRENT CONTROLFILEオプションを使用して、制御ファイルのバックアップをいずれかのバックアップに含めます。

  • データファイル1をバックアップします(制御ファイルおよびサーバー・パラメータ・ファイルは、RMANによって自動的にデータファイル1のバックアップに格納されるため)。

ノート:

制御ファイルのブロック・サイズがデータファイル1のブロック・サイズと異なる場合、制御ファイルをデータファイルと同じバックアップ・セットに書き込むことはできません。ブロック・サイズが異なる場合、RMANは、制御ファイルを単独で別のバックアップ・セットに書き込みます。V$CONTROLFILE.BLOCK_SIZEは制御ファイルのブロック・サイズを示し、DB_BLOCK_SIZE初期化パラメータはデータファイル1のブロック・サイズを示します。
9.3.3.1 制御ファイルの手動バックアップについて

制御ファイルの手動バックアップは、制御ファイルの自動バックアップとは異なります。RMANは、BACKUPコマンドで指定されたファイルをバックアップした後、制御ファイルの自動バックアップを作成します。

このため、制御ファイルの手動バックアップとは異なり、自動バックアップには、完了直後のバックアップに関するメタデータが含まれます。また、RMANは、リカバリ・カタログを使用しないで自動バックアップを自動的にリストアすることもできます。

現行の制御ファイルを、バックアップ・セットまたはイメージ・コピーとして、手動バックアップを作成できます。バックアップ・セットの場合、RMANは読取り一貫性のためのスナップショット制御ファイルを最初に作成します。スナップショット制御ファイルのファイル名と場所を構成することができます。イメージ・コピーの場合、スナップショット制御ファイルは必要ありません。

Oracle Real Application Clusters (Oracle RAC)環境では、次の制限事項があります。

  • スナップショット制御ファイルの場所は、共有記憶域(すべてのOracle RACインスタンスからアクセス可能な記憶域)上である必要があります。

  • 現行の制御ファイルのイメージ・コピーの宛先は、共有記憶域である必要があります。

9.3.3.2 制御ファイルの手動バックアップの作成

手動バックアップを作成するには、他のファイルをバックアップする際にINCLUDE CURRENT CONTROLFILEを指定するか、またはBACKUP CURRENT CONTROLFILEを指定します。

また、CONTROLFILECOPYパラメータを指定して、制御ファイルのコピーをディスクにバックアップすることもできます。

  1. RMANを起動し、ターゲット・データベースおよびリカバリ・カタログ(使用している場合)に接続します。
  2. ターゲット・データベースがマウントまたはオープンされていることを確認します。
  3. 必要な制御ファイル句を指定してBACKUPコマンドを実行します。

例9-10 テープへの表領域および現行の制御ファイルのバックアップ

この例では、表領域usersをテープにバックアップし、そのバックアップに現行の制御ファイルを含めます。

BACKUP DEVICE TYPE sbt 
  TABLESPACE users 
  INCLUDE CURRENT CONTROLFILE;

例9-11 高速リカバリ領域への現行の制御ファイルのバックアップ

この例では、現行の制御ファイルをバックアップ・セットとして高速リカバリ領域にバックアップします。

BACKUP CURRENT CONTROLFILE;

RMANは、スナップショット制御ファイルを最初に作成します。

例9-12 イメージ・コピーとしての現行の制御ファイルのバックアップ

この例では、現行の制御ファイルをデフォルトのディスク・デバイスにイメージ・コピーとしてバックアップします。

BACKUP AS COPY
  CURRENT CONTROLFILE 
  FORMAT '/tmp/control01.ctl';

例9-13 制御ファイル・コピーのバックアップ

この例では、前述の例で作成した制御ファイルのコピーをテープにバックアップします。

BACKUP AS COPY 
  CURRENT CONTROLFILE 
  FORMAT '/tmp/control01.ctl';
BACKUP DEVICE TYPE sbt 
  CONTROLFILECOPY '/tmp/control01.ctl';

制御ファイルのコピーをバックアップする場合、スナップショット制御ファイルは必要ありません。

制御ファイルの自動バックアップ機能が有効になっている場合、RMANは、これらの例で制御ファイルのバックアップを2つ作成します。1つはBACKUPコマンドで指定したファイルの明示的なバックアップで、もう1つは制御ファイルおよびサーバー・パラメータ・ファイルの自動バックアップです。

9.3.4 RMANを使用したサーバー・パラメータ・ファイルのバックアップ

RMANは、特定の場合に現在のサーバー・パラメータ・ファイルを自動的にバックアップします。BACKUP SPFILEコマンドは、パラメータ・ファイルを明示的にバックアップします。バックアップされるサーバー・パラメータ・ファイルは、インスタンスで現在使用されているサーバー・パラメータ・ファイルです。

  1. RMANを起動し、ターゲット・データベースおよびリカバリ・カタログ(使用している場合)に接続します。
  2. ターゲット・データベースがマウントまたはオープンされていることを確認します。

    サーバー・パラメータ・ファイルを使用して、データベースを起動している必要があります。インスタンスがクライアント側の初期化パラメータ・ファイルを使用して起動されている場合にBACKUP ... SPFILEを実行すると、RMANによってエラーが発行されます。

  3. BACKUP ... SPFILEコマンドを実行します。

    次の例では、サーバー・パラメータ・ファイルがテープにバックアップされます。

    BACKUP DEVICE TYPE sbt SPFILE;

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

データベースがクローズされ、一貫した状態の場合は、NOARCHIVELOGモードでのみデータベースをバックアップできます。

例9-14に示すスクリプトを実行すると、データベースがデータベース全体の一貫性バックアップを行うための正しいモードになり、バックアップされます。このスクリプトでは、制御ファイルの自動バックアップがデータベースに対して有効になっていると想定されています。

読取り専用表領域などの表領域はスキップできますが、バックアップからデータベースをリストアする必要がある場合、最新のバックアップ以降にオフラインまたは読取り専用になっていなかった表領域はスキップすると消失します。

例9-14 NOARCHIVELOGモードでのデータベースのバックアップ

SHUTDOWN IMMEDIATE; 
# Start the database in case it suffered instance failure or was 
# closed with SHUTDOWN ABORT before starting this script. 
STARTUP FORCE DBA; 
SHUTDOWN IMMEDIATE; 
STARTUP MOUNT;
# this example uses automatic channels to make the backup
BACKUP 
  INCREMENTAL LEVEL 0
  MAXSETSIZE 10M
  DATABASE
  TAG 'BACKUP_1';
# Now that the backup is complete, open the database. 
ALTER DATABASE OPEN; 

9.3.6 データベース全体のプリプラグイン・バックアップの作成

プリプラグイン・バックアップは、非CDBがPDBとしてCDBに組み込まれた後、RMANバックアップを使用できるようにします。

Oracle Databaseリリース18c以降では、非CDBのプリプラグイン・バックアップを作成できます。プリプラグイン・バックアップは、この非CDBがPDBとして宛先CDBに組み込まれた後、リストアおよびリカバリ操作に使用されます。プリプラグイン・バックアップは、テープまたはディスク・バックアップのいずれかにできます。

非CDBのプリプラグイン・バックアップを作成するには:

  1. RMANを開始し、「RMANによるデータベース接続の確立」の説明に従って、SYSDBAまたはSYSBACKUP権限を持つユーザーとしてターゲット・データベース(非CDB)に接続します。

    リカバリ・カタログが使用されている場合は、リカバリ・カタログに接続します。

  2. Oracle Databaseバックアップおよびリカバリ・リファレンスで説明されているように、必須の前提条件が満たされていることを確認します。
  3. (オプション)制御ファイルおよびサーバー・パラメータ・ファイルの自動バックアップの構成の説明に従って、データベースの制御ファイルおよびサーバー・パラメータ・ファイルの自動バックアップを構成します。
  4. アーカイブREDOログ・ファイルを含む、非CDBの完全バックアップを実行します。

    非CDBのバックアップがすでに存在する場合、アーカイブREDOログ・ファイルのバックアップのみを作成できます。dbms_pdb.exportrmanbackup()プロシージャを使用してRMANバックアップのメタデータをデータ・ディクショナリにエクスポートした後、すべての既存のRMANバックアップが使用可能になります。

    アーカイブREDOログ・ファイルをバックアップすることは必須ではありませんが、そうすることをお薦めします。バックアップの直後にログをアーカイブすることによって、バックアップ時間全体のアーカイブ・ログの完全なセットを取得します。これによって、このバックアップのリストア後にメディア・リカバリを実行できます。

    次のコマンドでは、すべてのアーカイブREDOログ・ファイルを含む非CDBがバックアップされます。TAG句は、このRMANバックアップの識別に使用されるバックアップ・タグを指定します。

    RMAN> BACKUP DATABASE PLUS ARCHIVELOG ALL TAG for_migration; 
  5. RMANを終了します。
  6. ターゲット・データベースで、SYSDBAまたはSYSBACKUP権限を持つユーザーとしてSQL*Plusに接続します。
  7. DBMS_PDB.EXPORTRMANBACKUPプロシージャを使用して、非CDBのRMANバックアップ・メタデータをそのデータ・ディクショナリにエクスポートします。
    SQL> EXECUTE DBMS_PDB.EXPORTRMANBACKUP();

    非CDBをPDBとして宛先CDBに組み込んでいる間に、このソース非CDBのバックアップ・メタデータが、宛先CDBのデータ・ディクショナリにコピーされます。

9.4 CDBおよびPDBのバックアップ

BACKUPコマンドを使用して、マルチテナント・コンテナ・データベース(CDB)およびプラガブル・データベース(PDB)をバックアップします。

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

ノート:

非CDBがPDBとして別のCDBに組み込まれた後は、その非CDBのバックアップは使用できません。

関連項目:

PDBの概要については、Oracle Database概要を参照してください。

9.4.1 CDBおよびPDBのバックアップについて

RMANおよびOracle Enterprise Manager Cloud Controlによって、マルチテナント環境でのバックアップとリカバリが完全にサポートされます。

マルチテナント・アーキテクチャによってOracle DatabaseはCDBとして機能できます。CDB全体、ルートのみまたは1つ以上のプラガブル・データベース(PDB)をバックアップおよびリカバリすることができます。また、PDB内の個々の表領域とデータファイルをバックアップおよびリカバリすることができます。

増分バックアップ計画を使用してマルチテナント・コンテナ・データベース(CDB)全体のバックアップを夜間に実行できるほか、個々のPDBの個別バックアップを高頻度で行ってCDB全体またはルートのバックアップを低頻度で行うこともできます。

データ損失からのリカバリ機能に関して、CDBシードを含むrootとすべてのPDBを別々にバックアップすることは、CDB全体をバックアップすることと同じです。主な違いは、入力する必要があるRMANコマンドの数とリカバリの時間です。rootに加えてすべてのPDBをリカバリするよりも、CDB全体の方が短時間でリカバリできます。

CDBおよびPDBの互換性パラメータが12.2以上に設定されている場合、RMANでは、CDBおよびPDBのスパース・バックアップを実行することもできます。これらのバックアップでは、各データベースに割り当てられたデルタ記憶領域の最新の更新がコピーされます。

関連項目:

スパース・バックアップの詳細は、スパース・バックアップについてを参照してください。

9.4.2 CDB全体のバックアップ

マルチテナント・コンテナ・データベース(CDB)全体のバックアップは、CDB以外のバックアップと同様です。CDB全体をバックアップすると、RMANはルート、すべてのプラガブル・データベース(PDB)およびアーカイブREDOログをバックアップします。

CDBをバックアップするには、BACKUPコマンドを使用します。その後、CDBのバックアップから、CDB全体、rootのみまたは1つ以上のPDBをリカバリすることができます。

CDB全体をバックアップするには:

  1. RMANを開始し、「RMANによるデータベース接続の確立」の説明に従って、SYSBACKUPまたはSYSDBA権限を持つ共通ユーザーとしてrootおよびリカバリ・カタログ(使用している場合)に接続します。
  2. データベースがマウントまたはオープンされていることを確認します。
  3. RMANプロンプトでBACKUP DATABASEコマンドを発行します。

    このコマンドの最も簡単な形式にはオプションまたはパラメータは必要ありません。

    BACKUP DATABASE;

    バックアップされるファイルのリストは、BACKUPコマンドとともに使用されるキーワードに依存します。

    次の例では、CDBをバックアップし、オンラインREDOログを切り替え、アーカイブ・ログをバックアップに格納します。

    BACKUP DATABASE PLUS ARCHIVELOG;
    

    バックアップの直後にログをアーカイブすることによって、バックアップ時間全体のアーカイブ・ログの完全なセットを取得します。これによって、このバックアップのリストア後にメディア・リカバリを実行できることが保証されます。

ノート:

プロキシPDBは、CDBのバックアップ中にはバックアップされません。

9.4.3 RMANを使用したrootのバックアップ

RMANを使用して、rootのみのバックアップを行うことができます。ルートにはCDB全体の重要なメタデータが含まれるため、ルートのバックアップまたはCDB全体のバックアップを定期的に作成することをお薦めします。

  1. RMANを起動し、SYSBACKUP権限またはSYSDBA権限を持つ共通ユーザーとして、rootに接続します。
  2. 次のコマンドを入力します。
    BACKUP DATABASE ROOT;

9.4.4 Oracle Enterprise Manager Cloud Controlを使用したrootのバックアップ

Oracle Enterprise Manager Cloud Control (Cloud Control)を使用して、ルートをバックアップできます。

次のステップを使用して、Cloud Controlでルートをバックアップします。

  1. 「データベース・ホーム」ページの「可用性」メニューから「バックアップとリカバリ」を選択し、「バックアップのスケジュール」を選択します。
  2. その前にデータベースにログインしていなければ、「データベース・ログイン」ページが表示されます。「named」または「新規」資格証明を使用してログインし、「ログイン」をクリックします。

    バックアップのスケジュール・ページが表示されます。

  3. 「カスタマイズ・バックアップ」セクションで、「コンテナ・データベース・ルート」を選択し、「カスタマイズ・バックアップのスケジュール」をクリックします。

    「バックアップのスケジュール」ウィザードが表示され、「オプション」ページが表示されます。

  4. rootをバックアップするページの残りの部分を移動して、ウィザードを完了します。ウィザードの各ページの詳細を表示するには、「ヘルプ」をクリックします。

9.4.5 RMANを使用したPDBのバックアップ

RMANでは、BACKUPコマンドを使用してCDB内の1つ以上のPDBをバックアップできます。

RMANによるPDBのバックアップには2つの方法があります。

  • rootに接続し、BACKUP PLUGGABLE DATABASEコマンドを使用します。この方法では、単一のコマンドで複数のPDBをバックアップすることができます。

    rootに接続してPDBをバックアップした場合、そのバックアップは、rootおよびその特定のPDBからは表示できますが、他のPDBからは表示できません。

  • PDBに接続し、BACKUP DATABASEコマンドを使用します。この方法では、単一のPDBのみをバックアップし、非CDBのバックアップに使用したコマンドと同じコマンドを使用することができます。

    いずれかのPDBへの接続時に作成されたバックアップは、rootに接続すると表示されます。

個々のPDBをバックアップする場合、アーカイブREDOログはバックアップされません。

rootへの接続中に1つ以上のPDBをバックアップするには:

  1. RMANを起動します。ターゲットとしてのrootへの接続の説明に従って、SYSBACKUPまたはSYSDBA権限を持つ共通ユーザーとしてrootおよびリカバリ・カタログ(使用している場合)に接続します。

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

    次の例では、PDB salesおよびhrをバックアップします。

    BACKUP PLUGGABLE DATABASE sales, hr;

PDBへの接続中に1つのPDBをバックアップするには:

  1. RMANを開始し、ターゲットとしてのPDBへの接続の説明に従って、SYSBACKUPまたはSYSDBA権限を持つローカル・ユーザーとしてPDBおよびリカバリ・カタログ(使用している場合)に接続します。
  2. RMANプロンプトで、BACKUP DATABASEコマンドを実行します。
    BACKUP DATABASE;

ノート:

RMANを使用したプロキシPDBのバックアップはサポートされていません。

ノート:

PDBバックアップは、このPDBの変更を含むすべてのアーカイブREDOログ・ファイルがバックアップに含まれている場合のみ、メディア・リカバリを実行するために使用できます。PDBへの接続中にバックアップを作成するとき、すべての必要なログはバックアップされない場合があります。

9.4.6 RMANを使用したPDBのプリプラグイン・バックアップの作成

PDBのプリプラグイン・バックアップを使用して、PDBが移行されて異なる宛先CDBに組み込まれた後にリストアおよびリカバリ操作を実行します。PDBのプリプラグイン・バックアップは、ディスクまたはテープに作成できます。

ノート:

宛先CDBは、ソースCDBが宛先CDBに組み込まれた後に、そのソースCDBで作成されたバックアップを管理しません。

PDBのプリプラグイン・バックアップを作成するには:

  1. 『Oracle Databaseバックアップおよびリカバリ・リファレンス』BACKUPコマンドで説明されているプリプラグイン・バックアップの前提条件が満たされていることを確認します。
  2. RMANを起動し、次のいずれかの方法を使用して接続します。
    • SYSDBA権限またはSYSBACKUP権限を持つ共通ユーザーとして、rootに接続します。

    • SYSDBAまたはSYSBACKUP権限を持つローカル・ユーザーまたは共通ユーザーとしてPDBに接続します。

  3. (オプション)制御ファイルおよびサーバー・パラメータ・ファイルの自動バックアップの構成の説明に従って、ターゲット・データベースの制御ファイルおよびサーバー・パラメータ・ファイルの自動バックアップを構成します。
  4. アーカイブREDOログ・ファイルを含む、PDBの完全バックアップを作成します。

    PDBのRMANバックアップがすでに存在する場合、これらのバックアップは、PDBを別の宛先CDBに移行した後に使用可能になります。ただし、アーカイブREDOログ・ファイルをバックアップすることをお薦めします。

    次のコマンドでは、SYSDBAまたはSYSBACKUP権限を持つローカル・ユーザーとしてPDBに接続している場合、PDBがバックアップされます。

    RMAN> BACKUP DATABASE PLUS ARCHIVELOG ALL TAG for_migration; 

    次のコマンドでは、SYSDBAまたはSYSBACKUPで権限を持つ共通ユーザーとしてROOTに接続している場合、PDBのmy_pdbがバックアップされます。

    RMAN> BACKUP PLUGGABLE DATABASE my_pdb PLUS ARCHIVELOG ALL TAG for_migration;

    ノート:

    BACKUP PLUGGABLE DATABASEを使用すると、CDBがローカルUNDOを使用する場合のみ、必要なすべてのアーカイブREDOログ・ファイルがバックアップされます。

これらのプリプラグイン・バックアップを宛先CDBで使用できるようにするために必要なメタデータは、PDBがソースCDBから切断されたときに作成されたXMLファイルに含まれます。

9.4.7 Oracle Enterprise Manager Cloud Controlを使用したPDBのバックアップ

Oracle Enterprise Manager Cloud Control (Cloud Control)を使用して、プラガブル・データベース(PDB)のバックアップを実行できます。

Cloud Controlを使用して1つ以上のPDBをバックアップするには、次のステップを実行します。

  1. 「データベース・ホーム」ページの「可用性」メニューから「バックアップとリカバリ」を選択し、「バックアップのスケジュール」を選択します。

  2. その前にデータベースにログインしていなければ、「データベース・ログイン」ページが表示されます。「named」または「新規」資格証明を使用してログインし、「ログイン」をクリックします。

    バックアップのスケジュール・ページが表示されます。

  3. 「カスタマイズ・バックアップ」セクションで、「プラガブル・データベース」を選択し、「カスタマイズ・バックアップのスケジュール」をクリックします。

    「バックアップのスケジュール」ウィザードが表示され、「プラガブル・データベース」ページが表示されます。

  4. 次のステップを実行して、バックアップするPDBを選択します。

    1. 「追加」をクリックして、使用可能なプラガブル・データベース・ページを表示します。

    2. 表示されたPDBのリストから、「選択」列で、バックアップするPDBをクリックして指定します。オプションで「すべて選択」をクリックして、使用可能なすべてのPDBに対し「選択」オプションをオンにします。「選択解除」をクリックすると、すべてのPDBの選択が解除されます。

    3. 「選択」ボタンをクリックして、プラガブル・データベース・ページに戻ります。

    4. オプションで、削除する各PDBの「選択」列をクリックし、「削除」をクリックすると、表からPDBを削除できます。

  5. 「次へ」をクリックして、ウィザードのオプションページに移動します。

  6. PDBをバックアップするページの残りの部分を移動して、ウィザードを完了します。ウィザードの各ページの詳細を表示するには、「ヘルプ」をクリックします。

9.4.8 PDB内の表領域とデータファイルのバックアップ

異なるPDBの表領域に同じ名前を付けることができるため、1つ以上のPDBの表領域をバックアップするには、曖昧さを排除するため、PDBに直接接続する必要があります。

対照的に、データファイル番号とパスはCDB全体で一意であるため、rootまたはPDBのどちらに接続しても、PDBデータファイルをバックアップすることができます。rootに接続する場合は、単一のコマンドで複数のPDBからデータファイルをバックアップできます。PDBに接続する場合は、そのPDBのデータファイルのみをバックアップできます。

CDBがオープンまたはマウントされていることを確認します。表領域は、読取り専用でも読取り/書込みでもかまいません。

PDBの表領域をバックアップするには:

  1. RMANを起動します。ターゲットとしてのPDBへの接続の説明に従って、SYSBACKUPまたはSYSDBA権限を持つローカル・ユーザーとしてPDBおよびリカバリ・カタログ(使用している場合)に接続します。

  2. BACKUP TABLESPACEコマンドを発行します。

    次の例では、表領域usersおよびexamplesを構成されたデフォルトのデバイスにバックアップします。

    BACKUP TABLESPACE users, examples;

PDBのデータファイルをバックアップするには:

  1. 次のいずれかを行います:
    • RMANを起動し、SYSBACKUP権限またはSYSDBA権限を持つ共通ユーザーとして、rootに接続します。

    • RMANを起動し、SYSBACKUP権限またはSYSDBA権限を持つローカル・ユーザーとして、PDBに接続します。

  2. BACKUP DATAFILEコマンドを発行します。
    BACKUP DATAFILE 10, 13;

9.4.9 例: RMANを使用したPDBのプリプラグイン・バックアップの作成

この例では、CDB cdb_prodに含まれているPDB my_pdbのプリプラグイン・バックアップを作成します。CDBは共有UNDOを使用し、読取り/書込みモードでオープンされています。

  1. Oracle Databaseバックアップおよびリカバリ・リファレンスの説明に従って、プリプラグイン・バックアップを作成するために必要な前提条件が満たされていることを確認します。
  2. RMANを起動し、SYSBACKUP権限を持つ共通ユーザーとして、rootに接続します。

    次のコマンドでは、パスワード・ファイル認証を使用してrootに接続します。cdb_prodはCDBのネット・サービス名です。

    CONNECT TARGET "sbu@cdb_prod AS SYSBACKUP";

    sbuユーザーのパスワードを要求された場合は入力します。

  3. CDBの制御ファイルの自動バックアップを有効にします。
    CONFIGURE CONTROLFILE AUTOBACKUP ON;
  4. BACKUP PLUGGABLE DATABASEコマンドを使用してPDBをバックアップします。必要に応じて、このバックアップを使用してメディア・リカバリを実行できるように、バックアップにアーカイブREDOログを含めます。

    次のコマンドは、アーカイブREDOログ・ファイルを含む、my_pdbのプリプラグイン・バックアップを作成します。バックアップに名前を付けるときに使用されるタグは、mypdb_bkupです。

    BACKUP PLUGGABLE DATABASE my_pdb PLUS ARCHIVELOG TAG mypdb_bkup;

9.5 アプリケーション・コンテナのバックアップ

RMAN BACKUPコマンドを使用して、アプリケーション・ルート、1つ以上のアプリケーションPDBおよびアプリケーション・コンテナでバックアップ操作を実行できます。

9.5.1 アプリケーション・コンテナのバックアップについて

RMANでは、アプリケーション・コンテナ、アプリケーションPDBおよびアプリケーション・ルートをバックアップできます。

アプリケーション・コンテナは、CDBのオプション・コンポーネントで、1つ以上のアプリケーションのデータを格納し、アプリケーションのメタデータと共通データを共有します。CDBにはゼロまたはそれ以上のアプリケーション・コンテナを含めることができます。アプリケーション・コンテナは、1つのアプリケーション・ルート(そのCDBのルートとは異なる)と、1つ以上のアプリケーションPDBで構成されます。アプリケーション・ルートは、そこに接続しているすべてのアプリケーションPDBの親コンテナの役割を果たします。

アプリケーション・コンテナには、通常、1人以上のアプリケーション共通ユーザーが含まれます。アプリケーション共通ユーザーは、そのユーザーが作成されたアプリケーション・ルートか、このアプリケーション・ルートに接続しているPDBのみに接続できます。アプリケーション・ルートには固有のサービス名があり、PDBに接続するのと同じ方法でアプリケーション・ルートに接続できます。

アプリケーション・ルートまたはアプリケーションPDBに対してバックアップおよびリカバリのタスクを実行するには、アプリケーション・ルートまたはCDBのrootに接続します。

関連項目:

9.5.2 アプリケーション・ルートのバックアップ

RMANのBACKUPコマンドを使用して、アプリケーション・ルートをバックアップします。

CDBのCOMPATIBLEパラメータは、19.0以上に設定する必要があります。

アプリケーション・ルートをバックアップするには:

  1. RMANを起動し、SYSDBAまたはSYSBACKUP権限を持つ共通ユーザーとしてCDBのrootに接続するか、SYSDBAまたはSYSBACKUP権限を持つアプリケーション共通ユーザーとしてアプリケーション・ルートに接続します。
  2. BACKUP APPLICATION ROOTコマンドを使用して、アプリケーション・ルートをバックアップします。
    BACKUP APPLICATION ROOT DATABASE;

9.5.3 アプリケーション・ルートとそのアプリケーションPDBのバックアップ

BACKUPコマンドを使用してアプリケーション・コンテナをバックアップします。アプリケーション・コンテナは、アプリケーション・ルートと、それに属するすべてのアプリケーションPDBで構成されます。

CDBのCOMPATIBLEパラメータは、12.2以上に設定する必要があります。

CDBに接続し、アプリケーション・ルートとそのアプリケーションPDBすべてをバックアップするには:

  1. RMANを起動し、SYSDBAまたはSYSBACKUP権限を持つ共通ユーザーとしてCDBのrootに接続します。
  2. 次のコマンドを使用します。hr_appcontはアプリケーション・ルートの名前です。
    BACKUP PLUGGABLE DATABASE hr_appcont
アプリケーション・ルートに接続し、アプリケーション・ルートとそのアプリケーションPDBすべてをバックアップするには:
  1. RMANを起動し、SYSDBAまたはSYSBACKUP権限を持つアプリケーションの共通ユーザーとしてアプリケーション・ルートに接続します。
    アプリケーション・ルートには固有のサービス名があり、PDBに接続するのと同じ方法でアプリケーション・ルートに接続できます。
  2. 次のコマンドを使用してアプリケーション・コンテナをバックアップします。
    BACKUP DATABASE;

9.5.4 アプリケーションPDBのバックアップ

BACKUPコマンドを使用して、1つ以上のアプリケーションPDBをバックアップします。

CDBのCOMPATIBLEパラメータは、12.2以上に設定する必要があります。

1つ以上のアプリケーションPDBをバックアップするには:
  1. RMANを起動して、次の接続タイプのいずれかを確立します。
    • SYSDBAまたはSYSBACKUP権限を持つアプリケーションの共通ユーザーとしてアプリケーション・ルートに接続します。

      アプリケーション・ルートには固有のサービス名があり、PDBに接続するのと同じ方法でアプリケーション・ルートに接続できます。

    • SYSDBA権限またはSYSBACKUP権限を持つ共通ユーザーとして、CDBのrootに接続します。

  2. BACKUP PLUGGABLE DATABASEコマンドを使用して、アプリケーションPDBをバックアップします。複数のアプリケーションPDBをバックアップするには、アプリケーションPDB名のカンマ区切りリストを使用します。

    次のコマンドは、hr_app_pdbという名前のアプリケーションPDBをバックアップします。

    BACKUP PLUGGABLE DATABASE hr_app_pdb;

9.6 RMANを使用したスパース・データベースのバックアップ

BACKUPコマンドを使用して、スパース・データベースをバックアップします。

ノート:

スパース・データベースのベース(読取り専用)データファイルは、暗号化されていません。基本データファイルは、保護されたストレージに保存し、安全な通信を使用してアクセスするようにします。

9.6.1 RMANを使用したスパース・データベースのバックアップ

RMANを使用すると、データベース全体のバックアップと似たステップを使用して、スパース・データベースをバックアップ・セットまたはイメージ・コピー形式でバックアップできます。

スパース・データベースのバックアップでの違いは、RMANがデータベースのデルタ記憶領域のデータのみをバックアップする点です。この記憶領域には、スパース・データベース内のデータ・ブロックに加えられた最新の変更が含まれます。

スパース・データベースをバックアップする前に、次の要件が満たされていることを確認します。
  • スパース・データベースのベース・データベースは読取り専用である必要があります。

  • バックアップするデータベースのCOMPATIBLE初期化パラメータは、12.2以上に設定されている必要があります。

スパース・データベースをバックアップする手順

  1. RMANを開始し、「RMANによるデータベース接続の確立」の説明に従ってターゲット・データベースに接続します。
  2. データベースがマウントまたはオープンされていることを確認します。
  3. AS SPARSEオプションを指定してBACKUPコマンドを発行します。バックアップ形式を指定するには、次のオプションのいずれかを使用します。
    • バックアップ・セット形式でバックアップを作成する場合は、AS SPARSE BACKUPSETオプションを使用します。次の例では、バックアップ・セット形式でスパース・バックアップが実行されます。
      BACKUP AS SPARSE BACKUPSET DATABASE PLUS ARCHIVELOG;
    • イメージ・コピー形式でバックアップを作成する場合は、AS SPARSE COPYオプションを使用します。次の例では、イメージ・コピー形式でバックアップが実行されます。
      BACKUP AS SPARSE COPY DATABASE PLUS ARCHIVELOG;
    • 圧縮されたバックアップ・セットの形式でバックアップを作成する場合は、COMPRESSED BACKUPSETオプションを使用します。次の例では、圧縮されたバックアップ・セット形式でバックアップが実行されます。
      BACKUP AS SPARSE COMPRESSED BACKUPSET DATABASE;

    関連項目:

    関連項目:

    スパース・データベースのバックアップ・オプションの詳細は、Oracle Databaseバックアップおよびリカバリ・リファレンスを参照してください。

9.6.2 RMANを使用したスパース表領域とデータファイルのバックアップ

スパース・データファイルが格納された1つ以上の表領域または個別のスパース・データファイルを、BACKUPコマンドを使用してバックアップできます。

表領域のバックアップ中に、RMANは、BACKUPコマンドをスパース対応の個別のデータファイルに変換します。同様に、スパース・データ・ブロックが含まれるデータファイルのみが、スパース・バックアップの対象となります。RMANでは、スパース・データファイルのスパース・バックアップと、非スパース・データファイルの非スパース・バックアップが作成されます。
スパース表領域またはデータファイルが含まれるデータベースのCOMPATIBLE初期化パラメータが、12.2以上に設定されていることを確認します。
  1. RMANを起動し、ターゲット・データベースに接続します。CDB内の表領域およびデータファイルの場合は、SYSDBA権限またはSYSBACKUP権限を持つユーザーとしてrootに接続する必要があります。
  2. データベース・インスタンスがマウントまたはオープンされていることを確認します。
  3. AS SPARSEオプションを指定して、表領域またはデータファイルに対してBACKUPコマンドを実行します。バックアップの形式をバックアップ・セット形式、イメージ・コピー形式または圧縮されたバックアップ・セット形式から指定します。これを行うには、次のオプションのいずれかを指定します。
    • バックアップ・セット形式でバックアップを作成する場合は、AS SPARSE BACKUPSETオプションを使用します。次の例では、バックアップ・セット形式でスパース・バックアップが実行されます。
      BACKUP AS SPARSE BACKUPSET TABLESPACE MYTBS1;
    • イメージ・コピー形式でバックアップを作成する場合は、AS SPARSE COPYオプションを使用します。次の例では、イメージ・コピー形式でバックアップが実行されます。
      BACKUP AS SPARSE COPY DATAFILE 8,9,10;
    • 圧縮されたバックアップ・セットの形式でバックアップを作成する場合は、COMPRESSED BACKUPSETオプションを使用します。次の例では、圧縮されたバックアップ・セット形式でバックアップが実行されます。
      BACKUP AS SPARSE COMPRESSED BACKUPSET TABLESPACE MYTBS3;

9.6.3 RMANを使用したスパースCDBのバックアップ

スパース・マルチテナント・コンテナ・データベース(CDB)のバックアップまたはスパース・プラガブル・データベース(PDB)が格納されたCDBのバックアップを行うには、BACKUPコマンドを使用して、スパース・データベースのバックアップと同様のバックアップ操作を実行します。
CDBのCOMPATIBLE初期化パラメータが12.2以上に設定されていることを確認します。

スパースCDBをバックアップするには:

  1. RMANを起動し、SYSBACKUP権限またはSYSDBA権限を持つ共通ユーザーとしてrootに接続します。
  2. CDBがARCHIVELOGモードでマウントまたはオープンされていることを確認します。
  3. AS SPARSEオプションを指定してBACKUPコマンドを入力します。バックアップを作成する形式を指定します。
    • バックアップ・セット形式でバックアップを作成する場合は、AS SPARSE BACKUPSETオプションを使用します。次の例では、バックアップ・セット形式でスパースCDBのバックアップが実行されます。
      BACKUP AS SPARSE BACKUPSET DATABASE;
    • イメージ・コピー形式でバックアップを作成する場合は、AS SPARSE COPYオプションを使用します。次の例では、イメージ・コピー形式でスパースCDBのバックアップが実行されます。
      BACKUP AS SPARSE COPY DATABASE;
    • 圧縮されたバックアップ・セットの形式でバックアップを作成する場合は、COMPRESSED BACKUPSETオプションを使用します。次の例では、圧縮されたバックアップ・セット形式でスパースCDBのバックアップが実行されます。
      BACKUP AS SPARSE COMPRESSED BACKUPSET DATABASE;

9.6.4 RMANを使用したスパースPDBのバックアップ

RMANでは、CDB内の1つ以上のスパースPDBをバックアップできます。

COMPATIBLE初期化パラメータが12.2以上に設定されていることを確認します。

rootへの接続中にスパースPDBをバックアップするには:

  1. RMANを起動し、SYSBACKUP権限またはSYSDBA権限を持つ共通ユーザーとして、rootに接続します。

  2. プラガブル・データベースに対してBACKUPコマンドを実行します。バックアップの形式を指定します。
    • バックアップ・セット形式でバックアップを作成する場合は、AS SPARSE BACKUPSETオプションを使用します。次の例では、バックアップ・セット形式でスパース・バックアップが実行されます。
      BACKUP AS SPARSE BACKUPSET PLUGGABLE DATABASE PDB1;
    • イメージ・コピー形式でバックアップを作成する場合は、AS SPARSE COPYオプションを使用します。次の例では、イメージ・コピー形式でバックアップが実行されます。
      BACKUP AS SPARSE COPY PLUGGABLE DATABASE PDB1;
    • 圧縮されたバックアップ・セットの形式でバックアップを作成する場合は、COMPRESSED BACKUPSETオプションを使用します。次の例では、圧縮されたバックアップ・セット形式でバックアップが実行されます。
      BACKUP AS SPARSE COMPRESSED BACKUPSET PLUGGABLE DATABASE PDB1;

PDBへの接続中にスパースPDBをバックアップするには:

  1. RMANを開始します。SYSBACKUP権限またはSYSDBA権限を持つローカル・ユーザーとして、スパースPDBに接続します。
  2. AS SPARSEオプションと必要な形式を指定して、RMANプロンプトでBACKUPコマンドを実行します。バックアップ形式を指定するには、次のコマンドのいずれかを使用します。
    • バックアップ・セット形式でバックアップを作成する場合は、AS SPARSE BACKUPSETオプションを使用します。次の例では、バックアップ・セット形式でスパース・バックアップが実行されます。
      BACKUP AS SPARSE BACKUPSET DATABASE;
    • イメージ・コピー形式でバックアップを作成する場合は、AS SPARSE COPYオプションを使用します。次の例では、イメージ・コピー形式でバックアップが実行されます。
      BACKUP AS SPARSE COPY DATABASE;
    • 圧縮されたバックアップ・セットの形式でバックアップを作成する場合は、COMPRESSED BACKUPSETオプションを使用します。次の例では、圧縮されたバックアップ・セット形式でバックアップが実行されます。
      BACKUP AS SPARSE COMPRESSED BACKUPSET DATABASE;
  3. スパースPDBから表領域をバックアップするには、選択したPDBに直接接続して、AS SPARSEオプション、適切なバックアップ形式および表領域の名前を指定してBACKUPコマンドを実行します。
  4. スパースPDBのデータファイルをバックアップするには、rootに接続するかPDBに直接接続できます。AS SPARSEオプション、バックアップ形式およびデータファイル名を指定してBACKUPコマンドを実行して、個別のデータファイルをバックアップします。

9.7 RMANを使用したアーカイブREDOログのバックアップ

アーカイブREDOログは、メディア・リカバリを正常に実行するために重要です。アーカイブREDOログは、定期的にバックアップする必要があります。

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

9.7.1 非CDBのアーカイブREDOログのバックアップについて

RMANバックアップのいくつかの機能は、アーカイブREDOログ専用です。たとえば、BACKUP ... DELETEを使用すると、アーカイブREDOログをバックアップ・セットにバックアップした後、そのアーカイブREDOログの1つのコピーまたはすべてのコピーをディスクから削除できます。

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

9.7.1.1 アーカイブREDOログ・フェイルオーバーについて

REDOログが複数のアーカイブ先にアーカイブされている場合でも、RMANを使用してアーカイブREDOログをバックアップすると、RMANはアーカイブREDOログ・ファイルのコピーを1つのみ選択してバックアップに含めます。同じログ順序番号を持つログは同一であるため、複数のログ・コピーを含める必要はありません。

アーカイブREDOログ・フェイルオーバー機能を使用すると、RMANは、一部のアーカイブ先でログが欠落している場合またはログに破損ブロックが存在する場合でも、バックアップを完了できます。特定のログ順序およびスレッドに対応する1つ以上のログが、高速リカバリ領域またはいずれかのアーカイブ先で使用可能な場合、RMANはそのログのバックアップを試みます。バックアップ中にログ・ファイルで破損ブロックが検出された場合、RMANは、他の出力先で破損ブロックのないそのログのコピーを検索します。

たとえば、/arch1および/arch2の2つのアーカイブ先に、ログ121から124をアーカイブするとします。表9-1に、制御ファイル内のアーカイブREDOログ・レコードを示します。

表9-1 アーカイブREDOログ・レコードの例

順序 /arch1内のファイル名 /arch2内のファイル名

121

/arch1/archive1_121.arc

/arch2/archive1_121.arc

122

/arch1/archive1_122.arc

/arch2/archive1_122.arc

123

/arch1/archive1_123.arc

/arch2/archive1_123.arc

124

/arch1/archive1_124.arc

/arch2/archive1_124.arc

ここで、あるユーザーが、RMANを使用せずに/arch1ディレクトリからログ122および124を削除したとします。その後、次のバックアップを実行したとします。

BACKUP ARCHIVELOG
  FROM  SEQUENCE 121 
  UNTIL SEQUENCE 125;

フェイルオーバーによって、RMANは、/arch2のログ122および124を使用してバックアップを完了します。

9.7.1.2 オンラインREDOログ・スイッチについて

自動オンラインREDOログ・スイッチは、RMANの重要な機能です。

最新のオンラインREDOログが含まれている、アーカイブREDOログのオープンされているデータベースのバックアップを作成するには、次のいずれかの句を指定してBACKUPコマンドを実行します。

  • PLUS ARCHIVELOG

  • ARCHIVELOG ALL

  • ARCHIVELOG FROM ...

RMANは、バックアップを開始する前に、現行のREDOログ・グループからの切替えを行い、コマンドの発行時に最新だったREDOログ・グループまでのアーカイブされていないすべてのオンラインREDOログをアーカイブします。この機能によって、コマンド開始前に生成されたすべてのREDOがバックアップに含まれるようになります。

アーカイブREDOログをバックアップする最も効果的な方法の1つとして、BACKUP ... PLUS ARCHIVELOGコマンドを使用する方法があります。これによって、RMANで次の操作が実行されます。

  1. ALTER SYSTEM ARCHIVE LOG CURRENT文を実行します。

  2. BACKUP ARCHIVELOG ALL を実行します。バックアップの最適化が有効になっている場合、RMANは、指定したデバイスにすでにバックアップされているログをスキップします。

  3. BACKUPコマンドに指定された残りのファイルをバックアップします。

  4. ALTER SYSTEM ARCHIVE LOG CURRENT文を実行します。

  5. バックアップ中に生成された残りのアーカイブ・ログをバックアップします。バックアップの最適化が有効になっていない場合、RMANは、ステップ1で生成されたログおよびバックアップ中に生成されたすべてのログをバックアップします。

前述のステップによって、コマンド実行中に作成されるデータファイルのバックアップを一貫性のある状態にリカバリできます。また、バックアップ終了時にオンラインREDOログがアーカイブされていない場合、そのバックアップでDUPLICATEを実行することはできません。

9.7.2 CDBのアーカイブREDOログのバックアップについて

CDBでは、SYSDBAまたはSYSBACKUP権限を持つ共通ユーザーとしてrootに接続した場合のみ、アーカイブREDOログをバックアップできます。

SYSDBAまたはSYSBACKUP権限を持つローカル・ユーザーとしてPDBに接続した場合は、アーカイブREDOログのバックアップまたは削除を行うことはできません。

アーカイブREDOログを複数の宛先にコピーする場合、rootに接続してアーカイブREDOログ・ファイルをコピーすると、RMANはアーカイブREDOログの1つのコピーのみをバックアップに含めます。CDBのrootに接続すると、アーカイブREDOログ・ファイルを切り替えることができます。したがって、「アーカイブREDOログ・フェイルオーバーについて」および「オンラインREDOログ・スイッチについて」の情報は、rootに接続する場合に適用されます。ただし、PDBに接続している場合は、アーカイブREDOログ・ファイルのバックアップや切り替えはできません。

9.7.3 非CDBのアーカイブREDOログ・ファイルのバックアップ

アーカイブ・ログをバックアップするには、BACKUP ARCHIVELOGコマンドを使用します。

バックアップの最適化が有効になっている場合、RMANは、指定したデバイスにすでにバックアップされているアーカイブ・ログのバックアップをスキップします。

アーカイブREDOログ・ファイルをバックアップするには:

  1. RMANを開始し、「RMANによるデータベース接続の確立」の説明に従って、ターゲット・データベースおよびリカバリ・カタログ(使用している場合)に接続します。
  2. ターゲット・データベースがマウントまたはオープンされていることを確認します。
  3. BACKUP ARCHIVELOGまたはBACKUP ... PLUS ARCHIVELOGコマンドを実行します。

    次の例では、データベースおよびすべてのアーカイブREDOログをバックアップします。

    BACKUP DATABASE PLUS ARCHIVELOG;
    

    次の例では、構成済のディスクまたはSBTのチャネルを使用して、すべてのアーカイブREDOログの各ログ順序番号のコピーを1つバックアップします。

    BACKUP ARCHIVELOG ALL;
    

    また、アーカイブREDOログの範囲を、時間、SCN、またはログ順序番号で指定することもできます。次に例を示します。

    BACKUP ARCHIVELOG 
      FROM TIME  'SYSDATE-30'
      UNTIL TIME 'SYSDATE-7';

9.7.4 バックアップが必要なアーカイブREDOログのみのバックアップ

RMANがアーカイブREDOログのバックアップを自動的にスキップするように指定できます。

次のいずれかの方法を使用します。

  • バックアップの最適化を構成します。

    バックアップの最適化が有効になっている場合、指定したデバイス・タイプに同一のアーカイブ・ログがバックアップされていると、BACKUP ARCHIVELOGコマンドはファイルのバックアップをスキップします。DBID、スレッド、順序番号、およびRESETLOGSのSCNと時刻が同じアーカイブ・ログは同一であるとみなされます。

  • アーカイブREDOログの削除方針の構成

    削除方針がBACKED UP integer TIMES句で構成されている場合、指定したデバイス・タイプ上にinteger個のバックアップが存在していないかぎり、BACKUP ARCHIVELOGコマンドはログをコピーします。ログのinteger個のバックアップが存在している場合、BACKUP ARCHIVELOGコマンドはログをスキップします。

BACKUP ... NOT BACKED UP integer TIMESコマンドを指定すると、RMANは、指定したデバイスにinteger回以上バックアップされていないアーカイブ・ログ・ファイルのみをバックアップします。ファイルのバックアップの数を決定する場合、RMANは、現行のバックアップと同じデバイス・タイプに作成されているバックアップのみを考慮します。

BACKED UP句は、指定したメディアにアーカイブ・ログをバックアップする場合に有効です。たとえば、RMANがテープに各アーカイブREDOログのコピーを2つ保持し、追加のバックアップをスキップするように指定できます。

  1. RMANを開始し、SYSDBAまたはSYSBACKUP権限を持つ共通ユーザーとしてrootに接続します。リカバリ・カタログに接続します(使用している場合)。
  2. ターゲット・データベースがマウントまたはオープンされていることを確認します。
  3. バックアップに適切なチャネルが構成されていることを確認します。
  4. NOT BACKED UP句を指定してBACKUP ARCHIVELOGコマンドを実行します。
    BACKUP ARCHIVELOG ALL NOT BACKED UP 2 TIMES;

9.7.5 CDBのアーカイブREDOログのバックアップ

マルチテナント・コンテナ・データベース(CDB)のアーカイブREDOログをバックアップするには、BACKUP ARCHIVELOGコマンドを使用します。

CDBのアーカイブREDOログをバックアップするには:

  1. RMANを開始し、「ターゲットとしてのrootへの接続」の説明に従って、SYSDBAまたはSYSBACKUP権限を持つユーザーとしてrootに接続します。

  2. ターゲットCDBがマウントまたはオープンされていることを確認します。

  3. BACKUP ARCHIVELOGまたはBACKUP ... PLUS ARCHIVELOGコマンドを実行します。

    次の例では、データベースおよびすべてのアーカイブREDOログをバックアップします。

    BACKUP DATABASE PLUS ARCHIVELOG;
    

    次の例では、構成済のディスクまたはSBTのチャネルを使用して、すべてのアーカイブREDOログの各ログ順序番号のコピーを1つバックアップします。

    BACKUP ARCHIVELOG ALL;
    

CDBのバックアップが必要なアーカイブREDOログのみをバックアップするには:

  1. RMANを開始し、SYSDBAまたはSYSBACKUP権限を持つ共通ユーザーとしてrootに接続します。

  2. ターゲットCDBがマウントまたはオープンされていることを確認します。

  3. バックアップに適切なチャネルが構成されていることを確認します。

  4. RMANを構成して、アーカイブREDOログのバックアップを自動的にスキップします。次のいずれかの方法を使用します。

    • バックアップの最適化を構成し、指定したデバイス・タイプに同一のアーカイブ・ログがバックアップされている場合にBACKUP ARCHIVELOGコマンドでファイルのバックアップをスキップします。

    • BACKED UP integer TIMES句を使用して、アーカイブREDOログの保存ポリシーを構成します。指定したデバイス・タイプ上にintegerバックアップが存在していないかぎり、BACKUP ARCHIVELOGコマンドはログをコピーします。

  5. NOT BACKED UP句を指定してBACKUP ARCHIVELOGコマンドを実行します。

    BACKUP ARCHIVELOG ALL NOT BACKED UP 2 TIMES;

9.7.6 非CDBのバックアップ後のアーカイブREDOログの削除

BACKUP ARCHIVELOG ... DELETE INPUTコマンドは、アーカイブ・ログ・ファイルをバックアップした後、それらのファイルを削除します。このコマンドを使用すると、アーカイブREDOログを手動で削除するステップを実行する必要がなくなります。

DELETE INPUTを実行すると、RMANは、バックアップ・セットに選択されたアーカイブ・ログの特定のコピーのみを削除します。DELETE ALL INPUTを実行すると、RMANは、バックアップ済の各アーカイブREDOログ・ファイルを、ログのすべてのアーカイブ先から削除します。

BACKUP ... DELETE INPUTおよびDELETE ARCHIVELOGコマンドは、すべてのアーカイブの場所のログのアーカイブREDOログの削除ポリシーに従います。たとえば、テープに2回以上バックアップされた場合にのみログを削除するように指定した場合、BACKUP ... DELETEはこの方針に従います。

次の手順では、/arc_dest1/arc_dest2および高速リカバリ領域にアーカイブすることを想定しています。

バックアップ後にアーカイブREDOログを削除するには:

  1. RMANを開始し、「RMANによるデータベース接続の確立」の説明に従って、ターゲット・データベースおよびリカバリ・カタログ(使用している場合)に接続します。
  2. ターゲット・データベースがマウントまたはオープンされていることを確認します。
  3. DELETE INPUT句を指定してBACKUPコマンドを実行します。

    次のBACKUPコマンドを実行するとします。

    BACKUP DEVICE TYPE sbt 
      ARCHIVELOG ALL 
        DELETE ALL INPUT;
    

    この場合、RMANは、これらのアーカイブ場所にある各ログ順序番号のコピーを1つのみバックアップします。RMANは、高速リカバリ領域内および他のアーカイブ先内からバックアップしたログのコピーをすべて削除します。

    DELETE ALL INPUTではなく、DELETE INPUTを指定すると、RMANはバックアップした特定のアーカイブREDOログ・ファイルのみを削除します。たとえば、RMANは、/arc_dest1内のログがバックアップのソースとして使用された場合はそれらのファイルを削除しますが、/arc_dest2の内容はそのまま残します。

関連項目:

9.7.7 CDBのバックアップ後のアーカイブREDOログの削除

CDBでは、BACKUP ARCHIVELOG ... DELETE INPUTコマンドを使用して、バックアップ後にアーカイブREDOログを削除できます。

バックアップ後にCDBのアーカイブREDOログを削除するには:

  1. RMANを開始し、「RMANによるデータベース接続の確立」の説明に従って、SYSDBAまたはSYSBACKUP権限を持つユーザーとしてrootに接続します。

  2. ターゲット・データベースがマウントまたはオープンされていることを確認します。

  3. DELETE INPUT句を指定してBACKUPコマンドを実行します。

関連項目:

BACKUPコマンドの詳細は、Oracle Databaseバックアップおよびリカバリ・リファレンスを参照してください。

9.8 RMANの増分バックアップの作成および更新

増分バックアップでは、指定した以前のバックアップ以降に変更されたデータファイル・ブロックのみがコピーされます。BACKUPコマンドを使用して、増分バックアップを作成します。

増分バックアップは、累積増分バックアップまたは差分増分バックアップのいずれかです。

バックアップの内容は同じですが、BACKUP DATABASEBACKUP INCREMENTAL LEVEL 0 DATABASEは異なります。全体バックアップは増分計画の一部として使用できませんが、レベル0の増分バックアップは増分計画の基礎となります。RMANコマンドでは、全体バックアップをレベル0の増分バックアップには変更できません。

RMANは、全体バックアップの場合と同様に、ARCHIVELOGモードでオープンされているデータベースの増分バックアップを作成できます。データベースがNOARCHIVELOGモードの場合、RMANは、一貫性のある状態でデータベースを停止した後でのみ、増分バックアップを作成できます。

この項では、増分バックアップ計画を設計および実装する方法について説明します。

9.8.1 RMANの増分バックアップの目的

RMANの増分バックアップには複数のメリットがあります。

増分バックアップを計画の一環として作成する主な理由は次のとおりです。

  • ブロック・チェンジ・トラッキングが有効な場合に日次バックアップを高速にするため

  • データファイルのイメージ・コピーをロールフォワードする機能によって、リカバリ時間を短縮し、全体バックアップが繰り返されないようにするため

  • ネットワークを介してバックアップする場合に帯域幅の消費を削減するため

  • テープの書込みI/Oに使用するテープ帯域幅の集計がディスクの読取りI/Oに使用するディスク帯域幅の集計より少ない場合にパフォーマンスを向上させるため

  • NOLOGGINGオプションで作成したオブジェクトへの変更をリカバリできるようにするため

    たとえば、ダイレクト・ロード・インサートではREDOログ・エントリが作成されないため、ダイレクト・ロード・インサートによる変更はメディア・リカバリでは再作成できません。ただし、ダイレクト・ロード・インサートではデータ・ブロックが変更されるため、これらのブロックが増分バックアップによって取得されます。

  • フィジカル・スタンバイ・データベースをプライマリ・データベースと同期化する機能

    RMANのBACKUP INCREMENTAL FROM SCNコマンドを使用すると、スタンバイ・データベースの現行のSCNから始まるバックアップをプライマリ・データベースに作成できます。このバックアップを使用して、後でスタンバイ・データベースをロールフォワードできます。

9.8.2 増分バックアップ計画の設計

許容可能なMTTR(平均リカバリ時間)に応じて、バックアップ計画を選択します。

たとえば、3つのレベルのバックアップ・スキームを実装して、レベル0のバックアップを月に1回、レベル1の累積バックアップを週に1回、レベル1の差分バックアップを毎日作成するように設定できます。この計画では、完全リカバリのために、1日分を超えるREDOを適用する必要はありません。

レベル0のバックアップを実行する頻度の目安として、データの20%以上が変更された時点で、レベル0の新しいバックアップを実行するようにします。データベースへの変更率を予想できる場合は、増分バックアップのサイズを監視して、レベル0の新しいバックアップが必要な時点を判断できます。次のSQL問合せを実行すると、ブロックの20%以上がバックアップされている各データファイルの、レベル1の増分バックアップに書き込まれたブロックの数が表示されます。

SELECT   FILE#, INCREMENTAL_LEVEL, COMPLETION_TIME, 
         BLOCKS, DATAFILE_BLOCKS 
FROM     V$BACKUP_DATAFILE 
WHERE    INCREMENTAL_LEVEL > 0 
AND      BLOCKS / DATAFILE_BLOCKS > .2
ORDER BY COMPLETION_TIME;

レベル1のバックアップのブロック数を、レベル0のバックアップと比較します。たとえば、レベル1の累積バックアップのみを作成する場合は、レベル1の最新のバックアップのサイズがレベル0のバックアップの約半分であれば、レベル0の新しいバックアップを作成します。

ディスク領域を節約する効果的な方法の1つとして、増分バックアップをディスクに作成してから、BACKUP AS BACKUPSETコマンドでバックアップをテープにオフロードする方法があります。通常、増分バックアップは全体バックアップより小さいため、テープに移動されるまでの格納に必要な領域は制限されます。ディスク上の増分バックアップをテープにバックアップすると、増分バックアップのすべてのブロックがテープにコピーされるため、テープがストリーム化する可能性があります。RMANでのデータファイル内の変更されたブロックの特定にかかる時間を原因とした遅延が発生する可能性はありません。

また、増分更新バックアップを使用する方法もあります。この方法では、各データファイルのイメージ・コピーを作成した後、レベル1の増分バックアップを作成および適用して、定期的にこのコピーをロールフォワードします。これによって、データファイルの完全なイメージ・コピーを繰り返し作成することによって発生するオーバーヘッドが回避され、すべてのメリットを活用できるようになります。

Data Guard環境では、増分バックアップをフィジカル・スタンバイ・データベースにオフロードできます。スタンバイ・データベースの増分バックアップとプライマリ・データベースの増分バックアップには互換性があります。つまり、スタンバイ・データベースの増分バックアップをプライマリ・データベースに適用したり、プライマリ・データベースの増分バックアップをスタンバイ・データベースに適用することができます。

9.8.3 増分バックアップの作成

BACKUP INCREMENTALコマンドを使用して、増分バックアップを作成します。デフォルトでは、増分バックアップは差分バックアップです。

  1. RMANを起動し、ターゲット・データベースおよびリカバリ・カタログ(使用している場合)に接続します。
  2. ターゲット・データベースがマウントまたはオープンされていることを確認します。
  3. 必要なオプションを指定してBACKUP INCREMENTALコマンドを実行します。

    増分レベルを指定するには、LEVELパラメータを使用します。次の例では、データベースのレベル0の増分バックアップを作成します。

    BACKUP
      INCREMENTAL LEVEL 0
      DATABASE;
    

    次の例では、SYSTEMおよびtools表領域の差分増分バックアップをレベル1で作成します。レベル1またはレベル0の最新のバックアップ以降に変更されたデータ・ブロックのみがバックアップされます。

    BACKUP
      INCREMENTAL LEVEL 1
      TABLESPACE SYSTEM, tools;
    

    次の例では、users表領域の累積増分バックアップをレベル1で作成し、最新のレベル0のバックアップ以降に変更されたすべてのブロックをバックアップします。

    BACKUP
      INCREMENTAL LEVEL 1 CUMULATIVE
      TABLESPACE users;
9.8.3.1 VSSスナップショットの増分バックアップの作成

Volume Shadow Copy Service(VSS)をOracle VSSライターとともに使用すると、データベース内のファイルのシャドウ・コピーまたはスナップショットを作成できます。

Oracle VSSライターでVSSスナップショットを作成するには、RMANではなく、サード・パーティのバックアップ・プログラムを使用する必要があります。この場合、高速リカバリ領域によって、VSSスナップショットにバックアップされているファイルの管理が自動化され、必要に応じてそれらのファイルが削除されます。

RMANで BACKUP INCREMENTAL LEVEL 1 ... FROM SCNコマンドを使用すると、高速リカバリ領域に増分バックアップを作成できます。つまり、このコマンドを使用すると、VSSシャドウ・コピーのレベル1の増分バックアップを作成できます。RMANでは、リカバリ中に増分バックアップを透過的に適用できます。

9.8.4 増分更新バックアップ

バックアップを増分更新することによって、データベースのイメージ・コピーの全体バックアップに伴うオーバーヘッドを避けると同時に、データベースのメディア・リカバリに必要な時間を最小限にすることもできます。

たとえば、日次バックアップ・スクリプトを実行する場合、メディア・リカバリのために、1日分を超えるREDOを適用する必要はありません。
  1. 指定したタグが含まれているデータファイルの完全なイメージ・コピー・バックアップを作成します。
  2. 定期的(毎日など)に、データファイルのレベル1の差分増分バックアップを作成して、同じタグを基本データファイル・コピーとして使用します。
  3. 増分バックアップを同じタグを持つ最新のバックアップに適用します。

この方法では、レベル1の増分バックアップが作成された時点にバックアップがロールフォワードされます。RMANでは、この永久増分をリストアし、REDOログから変更を適用できます。この場合、最後に適用されたレベル1の増分バックアップのSCNで作成されたデータファイルのバックアップをリストアする場合と同じ結果になります。

ノート:

UNTIL TIME指定せずにRECOVER COPYを毎日実行すると、イメージ・コピーは継続的に更新されるため、1日を超えるリカバリ期間を満たすことができません。増分更新バックアップ機能は、高速のメディア・リカバリを実現するための最適な方法です。
9.8.4.1 増分更新バックアップ: 基本例

増分更新バックアップ計画で使用する増分バックアップを作成するには、BACKUPコマンドのBACKUP...FOR RECOVER OF COPY WITH TAG形式を使用します。

このコマンドについては、増分更新バックアップ計画を実装するサンプル・スクリプトを参照してください。

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

例9-15 基本的な増分更新スクリプト

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

このスクリプトおよび計画を理解するには、データファイルのコピーまたは増分バックアップが存在しない場合の、使用されている2つのコマンドの影響について理解する必要があります。次の2つの点に注意してください。

  • スクリプトのBACKUPコマンドによって、常にレベル1の増分バックアップが作成されるわけではありません。

  • スクリプトのRECOVERコマンドを実行すると、RMANによって、指定したタグが付いた利用可能なレベル1の増分バックアップが、同じタグが付いた一連のデータファイル・コピーに適用されます。

表9-2に、月曜日から毎日1回スクリプトを実行した場合の影響を示します。

表9-2 基本スクリプトを毎日実行した場合の影響

コマンド 月曜日 火曜日 水曜日 木曜日以降

RECOVER

増分バックアップまたはデータファイルのコピーが存在しないため、コマンドによってメッセージが生成されます(エラーは生成されません)。つまり、コマンドによる影響はありません。

データベースのコピーは存在しますが、そのコピーのリカバリに使用するレベル1の増分バックアップは存在しません。つまり、RECOVERコマンドによる影響はありません。

火曜日に作成されたレベル1の増分バックアップがデータベース・コピーに適用され、そのコピーがレベル1の増分バックアップのチェックポイントSCNまで戻されます。

昨日作成されたレベル1の増分バックアップがデータベース・コピーに適用され、そのコピーがレベル1の増分バックアップのチェックポイントSCNまで戻されます。

BACKUP

レベル0のイメージ・コピーが存在しないため、コマンドによってデータベースのイメージ・コピーが作成され、タグincr_updateが適用されます。このコピーが、増分更新のサイクルを開始するために必要となります。

ノート: スクリプトによってDEVICE TYPE sbtが設定される場合は、最初の実行によって、テープ上ではなくディスク上にコピーが作成されます。後続の実行では、テープ上にレベル1の増分バックアップが作成されます。

コマンドによって、レベル1の増分バックアップが作成され、タグincr_updateが割り当てられます。このバックアップには、月曜日と火曜日の間に変更されたブロックが含まれます。

コマンドによって、レベル1の増分バックアップが作成され、タグincr_updateが割り当てられます。このバックアップには、火曜日と水曜日の間に変更されたブロックが含まれます。

コマンドによって、レベル1の増分バックアップが作成され、タグincr_updateが割り当てられます。このバックアップには、現在とタグincr_updateを含む最新のバックアップの間に変更されたブロックが含まれます。

例9-15についての次の追加事項に注意してください。

  • データファイルがデータベースに追加されるたびに、新しいデータファイルのイメージ・コピーが、次のスクリプト実行時に作成されます。その次の実行では、追加されたデータファイルの、最初のレベル1の増分バックアップが作成されます。後続のすべての実行では、新しいデータファイルは他のデータファイルと同様に処理されます。

  • 他のバックアップ計画に影響を与えないように、タグを使用して、この計画のデータファイルのコピーおよび増分バックアップを識別する必要があります。複数の増分バックアップ計画を使用している場合、レベル0のバックアップにタグを指定していないかぎり、RMANはレベル1の増分バックアップを確実に作成することはできません。

    これらのイメージ・コピーに適用されるレベル1の増分バックアップは、データファイルのイメージ・コピーのタグおよび使用可能なレベル1の増分バックアップのタグに基づいて選択されます。タグは、そのレベルの増分バックアップを選択する場合に必ず必要になります。

  • スクリプトの3回目の実行後は、次のファイルをPoint-in-Timeリカバリで使用できます。

    • 前回(24時間前に)スクリプトを実行したときのチェックポイントSCN時点でのデータベースのイメージ・コピー

    • 前回実行したときのチェックポイントSCN以降に行われた変更の増分バックアップ

    • イメージ・コピーのチェックポイントSCNと現在の時点の間で行われたすべての変更を含むアーカイブREDOログ

    次の24時間の間にデータベースのリストアおよびリカバリが必要になった場合は、増分更新されたデータファイルのコピーからデータファイルをリストアできます。これによって、必要なSCNに達するまで、レベル1の最新の増分バックアップおよびREDOログから変更を適用できます。最大24時間分の適用対象のREDOがあるため、Point-in-Timeリカバリの終了にかかる時間は制限されます。

9.8.4.2 増分更新バックアップ: 高度な例

この例では、24時間を超える期間で高速リカバリを可能にします

例9-15の基本的なスクリプトを拡張できます。

例9-16 高度な増分更新スクリプト

この例では、RECOVERコマンドでリカバリ可能期間の開始時間を指定して、7日間保持する方法を示します。

RUN
{
  RECOVER COPY OF DATABASE 
    WITH TAG 'incr_update' 
    UNTIL TIME 'SYSDATE - 7';
  BACKUP
    INCREMENTAL LEVEL 1 
    FOR RECOVER OF COPY WITH TAG 'incr_update'
    DATABASE;
}

次の表に、1月1日月曜日から毎日1回スクリプトを実行した場合の影響を示します。

表9-3 高度なスクリプトを毎日実行した場合の影響

コマンド 1月1日(月曜日) 1月2日(火曜日)から1月8日(月曜日) 1月9日(火曜日) 1月10日(水曜日)以降

RECOVER

増分バックアップまたはデータファイルのコピーが存在しないため、コマンドによってメッセージが生成されます(エラーは生成されません)。つまり、コマンドによる影響はありません。

データベースのコピーは存在しますが、SYSDATE-7は基本コピーが作成されるの時点を指定しています。たとえば、SYSDATE-7は、水曜日に1月1日月曜日よりもの水曜日を指定しています。つまり、RECOVERコマンドによる影響はありません。

SYSDATE-7は、基本コピーが作成されたの日付を指定しています。1月1日月曜日に作成されたデータベースのコピーが、1月2日火曜日に作成された増分バックアップで更新され、そのコピーがレベル1の増分バックアップのチェックポイントSCNまで戻されます。

データベースのコピーが、7日前に作成された増分バックアップで更新され、そのコピーがレベル1の増分バックアップのチェックポイントSCNまで戻されます。

BACKUP

レベル0のイメージ・コピーが存在しないため、コマンドによってデータベースのイメージ・コピーが作成され、タグincr_updateが適用されます。このコピーが、増分更新のサイクルを開始するために必要となります。

ノート: スクリプトによってDEVICE TYPE sbtが設定される場合は、最初の実行によって、テープ上ではなくディスク上にコピーが作成されます。後続の実行では、テープ上にレベル1の増分バックアップが作成されます。

コマンドによって、レベル1の増分バックアップが作成され、タグincr_updateが割り当てられます。このバックアップには、前日と本日の間に変更されたブロックが含まれます。

コマンドによって、レベル1の増分バックアップが作成され、タグincr_updateが割り当てられます。このバックアップには、1月8日月曜日と1月9日火曜日の間に変更されたブロックが含まれます。

コマンドによって、レベル1の増分バックアップが作成され、タグincr_updateが割り当てられます。このバックアップには、前日と本日の間に変更されたブロックが含まれます。

例9-15の基本スクリプトと同様に、データファイルのコピーのSCNと現在の間の任意の時点に高速でリカバリできます。RMANは、増分バックアップのブロック変更およびREDOログの個々の変更の両方を使用できます。レベル1の日次増分バックアップがあるため、1日分を超えるREDOを適用する必要はありません。

9.8.5 新しいデータ・ファイルのベース・バックアップの作成

スケジュールされたアーカイブREDOログのバックアップを含む自動バックアップ計画を使用する場合は、レベル0またはレベル1のバックアップにまだ含まれていない新しいデータ・ファイルをバックアップする必要があります。

プラガブル・データベース(PDB)をプラグインするか、PDBを作成し、トランスポータブル表領域のインポートの一部として1つ以上のデータ・ファイルが作成された場合、データ・ファイルの作成後に作成されたアーカイブREDOログに、これらのデータ・ファイルに対する変更が含められます。ただし、アーカイブREDOログ・ファイル内の変更を適用できる新しいデータ・ファイルのベース・バックアップはありません。新しいデータ・ファイルをリカバリ可能にするには、これらのデータ・ファイルのベース・バックアップが不可欠です。

バックアップ計画に基づいて、次のいずれかの方法を使用して、このトピックで説明した操作の一環として追加されるデータ・ファイルのベース・バックアップを作成します。

  • 増分バックアップの場合は、次のようなコマンドを使用して、まだバックアップされていないデータ・ファイルをバックアップします。
    BACKUP DEVICE TYPE disk INCREMENTAL LEVEL 1 DATABASE TAG 'incr_bkup' NOT BACKED UP;
  • 増分更新バックアップの場合は、次のコマンドを使用して、まだバックアップされていないデータ・ファイルをバックアップします。
    BACKUP AS COPY DATABASE NOT BACKED UP TAG 'incr_upd'; 

    incr_updは、BACKUP DATABASE ... FOR RECOVER OF TAGコマンドに指定されたタグです。

  • FOR RECOVER OF TAG句を使用するバックアップ計画の場合は、次のようなコマンドを使用して、まだバックアップされていないデータ・ファイルをバックアップします。
    BACKUP DEVICE TYPE sbt INCREMENTAL LEVEL 1 FOR RECOVER OF TAG 'ibkup_tag' DATABASE NOT BACKED UP;

9.8.6 ブロック・チェンジ・トラッキングを使用した、増分バックアップのパフォーマンスの向上

増分バックアップのブロック・チェンジ・トラッキング機能を使用すると、データファイルごとに変更されたブロックを記録することによってバックアップのパフォーマンスが向上します。

この項では、ブロック・チェンジ・トラッキングを管理する方法について説明します。

9.8.6.1 ブロック・チェンジ・トラッキング

ブロック・チェンジ・トラッキングは、各データベース更新によって影響を受けたデータファイル・ブロックを追跡します。

プライマリ・データベースまたはスタンバイ・データベースでブロック・チェンジ・トラッキングが有効になっている場合、RMANは、ブロック・チェンジ・トラッキング・ファイルを使用して、増分バックアップ用に変更されたブロックを識別します。この小さなビットマップ・ファイルを読み取り、変更されたブロックを確認することによって、バックアップしているデータファイルのすべてのブロックのスキャンを回避します。

ブロック・チェンジ・トラッキングは、デフォルトでは無効になっています。ただし、バックアップ中にデータファイル全体をスキャンする必要がなくなるというメリットは無視できません。バックアップを実行してから次のバックアップを実行するまでの間に変更されたデータ・ブロックが小量の場合は特にです。 バックアップ計画に増分バックアップが含まれている場合は、ブロック・チェンジ・トラッキングを有効にすることをお薦めします。ブロック・チェンジ・トラッキングによって、増分バックアップの実行に使用されるコマンドが変更されることはありません。初期構成後にブロック・チェンジ・トラッキング・ファイルにメンテナンスを行う必要はありません。

Oracle Active Data Guardオプションのライセンスが有効な場合にのみ、フィジカル・スタンバイ・データベースでブロック・チェンジ・トラッキングを有効にできます。

9.8.6.1.1 ブロック・チェンジ・トラッキング・ファイルの領域管理について

Oracle Databaseでは、最新の8つのバックアップに対応するブロック・チェンジ・データを保持するためにチェンジ・トラッキング・ファイルの領域が自動的に管理されます。最大8つのビットマップに達すると、最も古いビットマップは現行の変更を追跡するビットマップによって上書きされます。

ブロック・チェンジ・トラッキング・ファイルは、データファイルの変更をマークするビットマップをバックアップ間で保持します。データベースでは、各バックアップを行う前にビットマップの切替えが行われます。

最初のレベル0の増分バックアップでは、データファイル全体がスキャンされます。その後の増分バックアップでは、ブロック・チェンジ・トラッキング・ファイルを使用して、最後のバックアップの後に変更されたとマークされているブロックのみがスキャンされます。増分バックアップの最適化は、ブロック・チェンジ・トラッキング・ファイルの最も古いビットマップ以降に作成された親バックアップに基づいてのみ行われます。

増分バックアップ計画を作成する場合は、ビットマップ数の制限(8)を考慮してください。たとえば、レベル0のデータベース・バックアップを作成した後で7つの差分増分バックアップを作成すると、ブロック・チェンジ・トラッキング・ファイルには8つのビットマップが含まれます。次にレベル1の累積増分バックアップを作成すると、レベル0の親バックアップに対応するビットマップが現行の変更を追跡するビットマップで上書きされるため、RMANはバックアップを最適化できません。

9.8.6.1.2 ブロック・チェンジ・トラッキング・ファイルの場所

デフォルトでは、ブロック・チェンジ・トラッキング・ファイルは、DB_CREATE_FILE_DEST初期化パラメータで指定された作成先にOracle Managed Filesとして作成されます。また、ブロック・チェンジ・トラッキングを有効にするときに名前を指定して、選択した任意の場所にブロック・チェンジ・トラッキング・ファイルを配置することもできます。

データベース全体に対して、1つのブロック・チェンジ・トラッキング・ファイルが作成されます。RAWデバイス(つまりファイル・システムのないディスク)をチェンジ・トラッキング・ファイルとして使用しないことをお薦めします。

ノート:

Oracle Real Application Clusters (Oracle RAC)環境では、チェンジ・トラッキング・ファイルは、クラスタ内のすべてのノードからアクセスできる共有ストレージに格納する必要があります。

RMANでは、チェンジ・トラッキング・ファイルのバックアップおよびリカバリはサポートされていません。データベースは、チェンジ・トラッキング・ファイルが無効であると判断した場合、チェンジ・トラッキング・ファイルを再設定します。データベース全体またはサブセットをリストアおよびリカバリする場合、データベースは、ブロック・チェンジ・トラッキング・ファイルを再設定し、変更の追跡を再度開始します。レベル0の増分バックアップを作成した後の次の増分バックアップでは、チェンジ・トラッキング・データを使用できます。

9.8.6.1.3 ブロック・チェンジ・トラッキング・ファイルのサイズについて

ブロック・チェンジ・トラッキング・ファイルのサイズは、データベースのサイズおよびREDOの有効になっているスレッドの数に比例します。

ブロック・チェンジ・トラッキング・ファイルのサイズは、データベースの変更に応じて増減します。このサイズは、データベースの更新頻度とは関係ありません。通常、シングル・インスタンスのブロック・チェンジ・トラッキングに必要な領域は、追跡するデータ・ブロックのサイズの約1/30,000です。Oracle RAC環境では、データベースのサイズの1/30,000×有効になっているスレッドの数です。

この見積りが示すサイズよりファイルが大きくなる場合の要因を次に示します。

  • データベースの拡張に応じて領域を割り当てた場合にオーバーヘッドが発生しないようにするために、ブロック・チェンジ・トラッキング・ファイルのサイズは10MBから始まります。新しい領域は10MBずつ割り当てられます。つまり、ファイルのサイズは、約300GBまでのデータベースに対しては10MB以上、約600GBまでのデータベースに対しては20MB以上になります。

  • データファイルのサイズとは関係なく、データファイルごとに320KB以上の領域がブロック・チェンジ・トラッキング・ファイルに割り当てられます。このため、比較的小さなデータファイルが多数ある場合は、同じデータを含む大きなデータファイルが少数ある場合よりチェンジ・トラッキング・ファイルのサイズが大きくなります。

9.8.6.2 ブロック・チェンジ・トラッキングの有効化

ブロック・チェンジ・トラッキングは、データベースがオープンまたはマウントされている場合に有効にできます。

この項では、ブロック・チェンジ・トラッキング・ファイルをOracle Managed Filesとしてデータベース領域に作成することを想定しており、データベース領域とは、データファイル、制御ファイル、オンラインREDOログ・ファイルなどのアクティブなデータベース・ファイルをデータベースが保持する場所です。

  1. SQL*Plusを起動し、管理者権限でターゲット・データベースに接続します。
  2. DB_CREATE_FILE_DEST初期化パラメータが設定されていることを確認します。
    SHOW PARAMETER DB_CREATE_FILE_DEST
    

    パラメータが設定されておらず、データベースがオープンされている場合は、次の形式のALTER SYSTEM文を使用してパラメータを設定できます。

    ALTER SYSTEM SET 
      DB_CREATE_FILE_DEST = '/disk1/bct/'
      SCOPE=BOTH SID='*';
    
  3. ブロック・チェンジ・トラッキングを有効にします。

    次のALTER DATABASE文を実行します。

    ALTER DATABASE ENABLE BLOCK CHANGE TRACKING;
    

    また、次の形式のSQL文を使用して、自分で選択した場所にチェンジ・トラッキング・ファイルを作成することもできます。

    ALTER DATABASE ENABLE BLOCK CHANGE TRACKING 
      USING FILE '/mydir/rman_change_track.f' REUSE;
    

    REUSEオプションは、Oracle Databaseに、指定した名前を持つ既存のブロック・チェンジ・トラッキング・ファイルを上書きするように指示します。

    ノート:

    フィジカル・スタンバイ・データベースでブロック変更トラッキングを有効にすると、その変更は管理対象リカバリ・プロセスが次回起動したときに有効になります。したがって、管理対象リカバリの進行中にブロック変更トラッキングを有効にした場合、高速増分バックアップを利用するには、管理対象リカバリ・プロセスを停止して再起動する必要があります。
9.8.6.3 ブロック・チェンジ・トラッキングの無効化

ブロック・チェンジ・トラッキングを無効にすると、データベースはオペレーティング・システムからブロック・チェンジ・トラッキング・ファイルを削除します。

この項では、ブロック・チェンジ・トラッキング機能が現在有効になっていると想定しています。

ブロック・チェンジ・トラッキングを無効にするには:

  1. SQL*Plusを起動し、管理者権限でターゲット・データベースに接続します。
  2. ターゲット・データベースがマウントまたはオープンされていることを確認します。
  3. ブロック・チェンジ・トラッキングを無効にします。

    次のALTER DATABASE文を実行します。

    ALTER DATABASE DISABLE BLOCK CHANGE TRACKING;
9.8.6.4 チェンジ・トラッキングが有効かどうかの確認

V$BLOCK_CHANGE_TRACKINGビューを問い合せて、チェンジ・トラッキングが有効になっているかどうかを確認し、有効になっている場合はブロック・チェンジ・トラッキング・ファイルのファイル名も調べることができます。

チェンジ・トラッキングが有効かどうかを確認するには:

SQL*Plusで次の問合せを入力します(出力例も示します)。

COL STATUS   FORMAT A8
COL FILENAME FORMAT A60
 
SELECT STATUS, FILENAME
FROM   V$BLOCK_CHANGE_TRACKING;

STATUS   FILENAME
-------- ------------------------------------------------------------
ENABLED  /disk1/bct/RDBMS/changetracking/o1_mf_2f71np5j_.chg
9.8.6.5 ブロック・チェンジ・トラッキング・ファイルの場所の変更

チェンジ・トラッキング・ファイルを移動するには、ALTER DATABASE RENAME FILE文を使用します。

データベースはマウントされている必要があります。この文は、新しい場所を参照するように制御ファイルを更新し、チェンジ・トラッキング・ファイルの内容を保持します。データベースを停止できない場合は、ブロック・チェンジ・トラッキングを無効にしてから有効にすることができます。この場合、既存のブロック・チェンジ・トラッキング・ファイルの内容は消失します。

チェンジ・トラッキング・ファイルの場所を変更するには:

  1. SQL*Plusを起動し、ターゲット・データベースに接続します。
  2. 必要に応じて、チェンジ・トラッキング・ファイルの現在の名前を確認します。
    SQL> SELECT FILENAME FROM V$BLOCK_CHANGE_TRACKING;
    
  3. 可能な場合は、データベースを停止します。たとえば:
    SQL> SHUTDOWN IMMEDIATE
    

    データベースを停止する場合は、次のステップにスキップします。データベースを停止しない場合は、次のSQL文を実行し、残りのステップをすべてスキップします。

    SQL> ALTER DATABASE DISABLE BLOCK CHANGE TRACKING;
    SQL> ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE 'new_location';
    

    この場合、ブロック・チェンジ・トラッキング・ファイルの内容は消失します。

  4. ホスト・オペレーティング・システムのコマンドを使用して、ブロック・チェンジ・トラッキング・ファイルを新しい場所に移動します。
  5. データベースをマウントして、より多くの領域がある場所にチェンジ・トラッキング・ファイルを移動します。たとえば:
    ALTER DATABASE RENAME FILE
       '/disk1/bct/RDBMS/changetracking/o1_mf_2f71np5j_.chg' TO 
       '/disk2/bct/RDBMS/changetracking/o1_mf_2f71np5j_.chg';
    

    この文は、内容を保持した状態でチェンジ・トラッキング・ファイルの場所を変更します。

  6. データベースをオープンします。
    SQL> ALTER DATABASE OPEN;

関連項目:

ALTER DATABASE文およびALTER SYSTEM文について学習するには、Oracle Database SQL言語リファレンスを参照してください。

9.9 長期格納用のデータベース・バックアップの作成

この項では、長期格納用のバックアップを作成する場合の基本的な概念およびタスクについて説明します。

9.9.1 アーカイブ・バックアップの目的

BACKUP... KEEPを使用して、バックアップの保存方針から除外する包括的なバックアップを作成できます。

データベースのリストアおよびリカバリに必要なすべてのファイルが単一のディスクまたはテープにバックアップされるため、このバックアップは包括的になります。また、KEEPオプションは、保存方針からのバックアップの除外を永続的または指定した期間行うように指定します。BACKUP ... KEEPで作成されるバックアップの一般名はアーカイブ・バックアップです。

バックアップおよびリカバリ計画の目的の1つは、データを保持することです。BACKUP ... KEEPを使用すると、保存方針に指定された期間より長くデータベースのバックアップを保持できます。たとえば、規定の要件を満たすために毎年元旦にデータベースをバックアップして、メディアをオフサイトに格納できます。アーカイブ・バックアップを作成して数年後に、このバックアップをリストアおよびリカバリして、バックアップ時のデータの状態を問い合せることができます。

アーカイブ・バックアップのもう1つの目的は、テストのためにリストアするバックアップを作成し、後で削除することです。たとえば、データベースをバックアップしてテスト環境でリストアした後、テスト・データベースが操作可能になったらアーカイブ・バックアップを破棄することができます。また、これと関連して、別のユーザーまたはホストへの転送完了後に削除可能な自己完結型のバックアップを作成するという目的もあります。たとえば、別のユーザーが、レポートまたはテスト用にデータベースのコピーを必要とする場合があります。

9.9.2 アーカイブ・バックアップの基本的な概念

BACKUPコマンドでKEEPオプションを使用すると、バックアップを保存方針から除外できます。

また、CHANGEコマンドのKEEPおよびNOKEEPオプションを使用して、既存のバックアップのステータスを変更することもできます。KEEP属性を使用したバックアップは、他のすべてのバックアップと同様にリカバリできる有効なバックアップです。

KEEP UNTIL TIME句を使用してアーカイブ・バックアップの終了日を指定したり、FOREVERを使用してバックアップを永続的に保持するように指定できます。UNTILを指定した場合、構成されている保存方針に関係なく、UNTILで指定した時間が経過すると、バックアップはRMANによって不要とマークされます。たとえば、KEEP UNTIL TIME '01-JAN-13'と指定すると、2013年1月1日の深夜0時を1秒経過した後にバックアップが不要とマークされます。UNTIL TIMEを午後9時に指定すると、午後9時1分にバックアップが不要とマークされます。

BACKUPコマンドにKEEPを指定すると、RMANは複数のバックアップ・セットを生成します。BACKUP ... KEEPコマンドには次の特性があります。

  • データファイル、制御ファイル(制御ファイルの自動バックアップが無効になっている場合でも)およびサーバー・パラメータ・ファイルが自動的にバックアップされます。

  • データベースのバックアップを一貫性のある状態にリカバリできるように、アーカイブREDOログのバックアップが自動的に生成されます。

  • FORMATPOOLまたはTAGパラメータを指定した場合、これらのパラメータはすべてのバックアップに使用されます。このため、FORMAT文字列で、複数のバックアップ・ピースを作成できるようにする必要があります。%U置換変数を指定すると、最も簡単にこの要件を満たすことができます。

  • 通常のリストア・ポイントを作成するオプションのRESTORE POINT句がサポートされています。通常のリストア・ポイントとは、バックアップを一貫性のある状態にするためにリカバリする必要がある時点のSCNのラベルのことです。SCNは、データファイルのバックアップが完了した直後に取得されます。RMANでは、リカバリ・カタログを使用してリストア・ポイントが再同期化され、バックアップが存在する間はそのリストア・ポイントが保持されます。

9.9.3 長期格納用のアーカイブ・バックアップの作成

通常、アーカイブ・バックアップはテープに作成します。データ保護を目的としたバックアップは、アクセス可能な状態のままで再利用されるテープのセットに格納されることが多いため、アーカイブ・バックアップ用にテープのセットを保存することをお薦めします。

この特別なテープのセットにアーカイブ・バックアップを書き込んだ後、オフサイトの保管場所に格納することができます。動的更新を行うストアド・スクリプトまたはシェル・スクリプトを作成して、アーカイブ・バックアップを作成するための手順を変更できます。スクリプトを実行すると、リストア・ポイントの名前、バックアップ形式などを動的に設定できます。

9.9.3.1 アーカイブ・バックアップの作成

KEEPオプションを指定してBACKUPコマンドを使用し、アーカイブ・バックアップを作成します。

次の例では、QUARTERLYというバックアップのタグを使用して長期用のアーカイブ・バックアップを作成し、長期格納用に確保されているOracle Secure Backupの専用のテープ・ファミリに割り当てます。この例では、次の点に注意してください。

  • FOREVERキーワードは、このバックアップがバックアップの保存方針による削除の対象にはならないことを示します。

  • BACKUPコマンドでは、FY06Q4という名前のリストア・ポイントを作成します。そのリストア・ポイントは、このバックアップが一貫性を持つ時点におけるSCNに対応します。

長期用のアーカイブ・バックアップを作成するには:

  1. RMANを起動し、ターゲット・データベースおよびリカバリ・カタログに接続します。

    ターゲット・データベースは、オープンされている状態でもマウントされている状態でもかまいません。リカバリ・カタログは、KEEP FOREVERには必要ですが、その他のKEEPオプションには必要ありません。

  2. BACKUP ... KEEPを実行して、バックアップを作成します。

    次の例では、データファイルおよびアーカイブ・ログのバックアップを生成し、通常のリストア・ポイントを作成します。指定したリストア・ポイントは、すで存在していない必要があります。

    ログのバックアップには、このバックアップを一貫性のある状態にリストアするためのアーカイブ・ログのみが含まれています。この新しいバックアップを一貫性のある状態するために必要な、現行のオンライン・ログにあるREDOをアーカイブするために、データベースでオンラインREDOログの切替えが実行されます。制御ファイルの自動バックアップにはリストア・ポイントのコピーが含まれているため、制御ファイルをリストアするとすぐにこのコピーを参照できます。

    RUN
    {
      ALLOCATE CHANNEL c1 
        DEVICE TYPE sbt
        PARMS 'ENV=(OB_MEDIA_FAMILY=archival_backup)';
      BACKUP DATABASE
        TAG quarterly
        KEEP FOREVER
        RESTORE POINT FY06Q4;
    }
    

    次の例では、バックアップを永続的にではなく、365日間保存します。1年が経過すると、バックアップ保存方針に関係なく、バックアップは不要とマークされます。

    RUN
    {
      ALLOCATE CHANNEL c1 DEVICE TYPE sbt
        PARMS 'ENV=(OB_MEDIA_FAMILY=archival_backup)';
      BACKUP DATABASE
        TAG quarterly
        KEEP UNTIL TIME 'SYSDATE+365'
        RESTORE POINT FY06Q4;
    }
  3. バックアップを検証して、このバックアップでデータベースをリカバリできることを確認します。

    アーカイブ・バックアップは、その作成中にPDBの接続などの特定の操作が実行されると無効になる場合があります。バックアップを検証して、アーカイブ・バックアップを使用してデータベースを正常にリカバリできることを確認してください。定期的にアーカイブ・バックアップを検証することをお薦めします。

9.9.4 一時的なアーカイブ・バックアップの作成

アーカイブ・バックアップの目的の1つは、テスト・データベースを作成することです。

テスト・データベースの作成方法は、「長期格納用のアーカイブ・バックアップの作成」で説明されている方法と基本的に同じです。異なる点は、バックアップを、作成後すぐに削除することです。

BACKUP ... KEEP UNTILパラメータを使用すると、バックアップの一時的なステータスを指定できます。バックアップを作成後、そのバックアップを同じ日に新しいホストにリストアするとします。この場合、KEEP UNTIL TIME SYSDATE+1を指定して、1日間のみこのバックアップの保存方針を上書きするようにRMANに指示できます。1日が経過すると、構成されているバックアップ保存方針に関係なく、バックアップは不要とマークされます。

例9-17 一時的なアーカイブ・バックアップの作成

この例では、タグTESTDBが含まれているアーカイブ・バックアップを一時ディスクに作成します。ここでは、バックアップをリカバリする時点のラベルとなる通常のリストア・ポイントを作成します。バックアップ中にデータベースがオープンしている場合、RMANはアーカイブREDOログのみをバックアップします。アーカイブ・ログは、オフライン・バックアップでは必要ないためバックアップされません。

BACKUP DATABASE
  FORMAT '/disk1/oraclebck/%U' 
  TAG TESTDB 
  KEEP UNTIL TIME 'SYSDATE+1' 
  RESTORE POINT TESTDB06;

アーカイブ・バックアップをリストアする場合の推奨方法は、DUPLICATEコマンドを使用することです。

9.10 RMANバックアップのバックアップ

この項では、バックアップ・セットおよびイメージ・コピーのバックアップ方法について説明します。

9.10.1 RMANバックアップのバックアップについて

BACKUP BACKUPSETコマンドを使用して、他のバックアップ・ジョブによって作成されたバックアップ・セットをバックアップできます。また、 BACKUP RECOVERY AREAを使用すると、現行および以前のすべての高速リカバリ領域に作成されたリカバリ・ファイルをバックアップすることもできます。

リカバリ・ファイルとは、全体および増分バックアップ・セット、制御ファイルの自動バックアップ、データファイルのコピーおよびアーカイブREDOログのことです。BACKUP RECOVERY AREAでは、SBTバックアップおよびディスク・バックアップがサポートされています。リカバリ・ファイルのディスク・バックアップの場合は、TO DESTINATIONオプションを使用する必要があります。

これらのコマンドは、特に次の場合に有効です。

  • すべてのバックアップをディスクおよびテープの両方に存在させる場合。

  • バックアップをディスクからテープに移動して、ディスク上の領域を解放する場合。このタスクは、必要に応じて領域を再利用できるようにデータベースで高速リカバリ領域を使用している場合、特に重要です。

また、BACKUP COPY OFコマンドを使用すると、データファイル、制御ファイルおよびアーカイブREDOログのイメージ・コピーをバックアップすることもできます。このコマンドでは、バックアップ・セットまたはイメージ・コピーのいずれかを出力できるため、イメージ・コピーからバックアップ・セットを生成できます。ディスク上にイメージ・コピーとして作成されたデータベースのバックアップをテープにバックアップするには、この形式のバックアップを使用します。

ノート:

マルチテナント環境では、削除されたPDBのバックアップ・セットおよびイメージ・コピーをバックアップできません。RMANは、これらのバックアップをスキップします。

9.10.1.1 RMANバックアップ・セットの複数のコピーについて

BACKUP BACKUPSETコマンドを実行すると、バックアップ・セットにバックアップ・ピースの追加コピーが作成されますが、新しいバックアップ・セットは作成されません。

つまり、BACKUP BACKUPSETは、BACKUPDUPLEXまたはMAXCOPIESオプションを使用する場合と類似しています。他の形式のBACKUPコマンドによって生成されたバックアップ・セットのコピーが個別のバックアップ・セットにならないのと同様に、BACKUP BACKUPSETによって作成されたバックアップ・セットの追加コピーも新しいバックアップ・セットにはなりません。

9.10.1.2 バックアップをバックアップする場合のバックアップの保存方針の影響の表示

冗長性に基づくバックアップの保存方針では、バックアップ・セットはバックアップの1つのインスタンスとみなされます。これは、バックアップ・セットを構成するバックアップ・ピースの複数のコピーが存在する場合(バックアップ・セットがディスクからテープにバックアップされている場合など)でも該当します。

リカバリ期間に基づく保存方針では、バックアップ・セットのすべてのコピーが不要とみなされるか、またはすべてが不要でないとみなされます。LISTおよびREPORTコマンドの出力を確認すると、この点を最も簡単に理解できます。

バックアップをバックアップする場合のバックアップの保存方針の影響を表示するには:

  1. データファイルをバックアップします。

    この例では、データファイル5をバックアップします。

    BACKUP AS BACKUPSET DATAFILE 5;
    
  2. ステップ1で作成したデータファイルのバックアップに対してLISTコマンドを実行します。

    たとえば、次のコマンドを実行します(出力例も示します)。

    LIST BACKUP OF DATAFILE 5 SUMMARY;
     
    List of Backups
    ===============
    Key     TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag
    ------- -- -- - ----------- --------------- ------- ------- ---------- ---
    18      B  F  A DISK        04-AUG-13       1       1       NO         TAG20070804T160 134
    
  3. 前のステップのバックアップ・セット・キーを使用して、バックアップ・セットをバックアップします。

    たとえば、次のコマンドを入力します。

    BACKUP BACKUPSET 18;
    
  4. ステップ2で実行したLISTコマンドを再度実行します。

    たとえば、次のコマンドを実行します(出力例も示します)。

    LIST BACKUP OF DATAFILE 5 SUMMARY;
     
    List of Backups
    ===============
    Key     TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag
    ------- -- -- - ----------- --------------- ------- ------- ---------- ---
    18      B  F  A DISK        04-AUG-13       1       2       NO         TAG20070804T160 134
    

    この出力に表示されているバックアップ・セットは1つのみですが、これでバックアップ・セットのコピーは2つ存在しています。

  5. レポートを生成して、冗長性に基づくバックアップの保存方針でのこれらのコピーの影響を確認します。

    たとえば、次のコマンドを発行します。

    REPORT OBSOLETE REDUNDANCY 1;
    

    バックアップ・セットの両方のコピーのset_stampset_countの値が同じであるため、いずれのコピーも不要とはみなされません。

  6. レポートを生成して、リカバリ期間に基づくバックアップの保存方針でのこれらのコピーの影響を確認します。

    たとえば、次のコマンドを発行します。

    REPORT OBSOLETE RECOVERY WINDOW OF 1 DAYS;
    

    現在の時点と他のバックアップの可用性から、バックアップ・セットのいずれのコピーも不要であるとはみなされず、またこのバックアップ・セットのCHECKPOINT_CHANGE#に基づくとはみなされません。

9.10.2 RMANを使用したバックアップ・セットのバックアップ

BACKUP BACKUPSETコマンドを使用して、バックアップ・セットをディスクからテープにコピーします。

この項の手順では、デフォルト・デバイスとしてSBTデバイスが構成されていることを想定しています。

  1. 使用可能なバックアップ・セットのサブセットをバックアップする場合は、LIST BACKUPSETコマンドを実行してそれらの主キーを取得します。

    次の例では、バックアップ・セットをサマリー形式で表示します。

    RMAN> LIST BACKUPSET SUMMARY;
    
    List of Backups
    ===============
    Key TY LV S Device Type Completion Time #Pieces #Copies Comp Tag
    --- -- -- - ----------- --------------- ------- ------- ---- ---
    1   B  F  A DISK        28-MAY-13       1       1       NO   TAG20070528T132432
    2   B  F  A DISK        29-MAY-13       1       1       NO   TAG20070529T132433
    3   B  F  A DISK        30-MAY-13       1       1       NO   TAG20070530T132434
    

    次の例では、バックアップ・セット3の詳細を表示します。

    RMAN> LIST BACKUPSET 3;
    
    List of Backup Sets
    ===================
    
    BS Key  Type LV Size       Device Type Elapsed Time Completion Time
    ------- ---- -- ---------- ----------- ------------ ---------------
    3       Full    8.33M      DISK        00:00:01     30-MAY-13
            BP Key: 3   Status: AVAILABLE  Compressed: NO  Tag: TAG20070530T132434
            Piece Name: /disk1/oracle/dbs/c-35764265-20070530-02
      Control File Included: Ckp SCN: 397221       Ckp time: 30-MAY-13
      SPFILE Included: Modification time: 30-MAY-13
      SPFILE db_unique_name: PROD
    
  2. BACKUP BACKUPSETコマンドを実行します。

    次の例では、ディスクのすべてのバックアップ・セットをテープにバックアップし、入力のディスク・バックアップを削除します。

    BACKUP BACKUPSET ALL
      DELETE INPUT;
    

    次の例では、主キー1および2を含むバックアップ・セットのみをテープにバックアップし、入力ディスクのバックアップを削除します。

    BACKUP BACKUPSET 1,2
      DELETE INPUT;
  3. 必要に応じて、LISTコマンドを実行して、バックアップ・セットとバックアップ・ピースのリストを確認します。

    BACKUP BACKUPSET によって作成されたバックアップ・ピースのコピーを含むすべてのコピーが出力に含まれます。

9.10.3 RMANを使用したイメージ・コピーのバックアップ

BACKUPコマンドを使用して、イメージ・コピーをテープにバックアップします。

この項では、デフォルト・デバイスとしてSBTデバイスが構成されていることを想定しています。

データファイルの複数のコピーを含むイメージ・コピーをバックアップする場合は、バックアップにタグを指定すると、入力イメージ・コピーの識別が簡単になります。データファイルのすべてのイメージ・コピーに、タグがあります。イメージ・コピーが新しいイメージ・コピーとしてバックアップされると、デフォルトで、そのイメージ・コピーのタグが継承されます。

  1. BACKUP ... COPY OFまたはBACKUP DATAFILECOPYコマンドを発行します。

    次の例では、タグDBCopyが含まれているデータファイルのコピーをバックアップします。

    BACKUP DATAFILECOPY FROM TAG DBCopy;
    

    次の例では、データベースの最新イメージ・コピーをテープにバックアップし、QUARTERLY_BACKUPというタグを割り当て、入力のディスク・バックアップを削除します。

    BACKUP DEVICE TYPE sbt
      TAG "quarterly_backup"
      COPY OF DATABASE 
      DELETE INPUT;
    
  2. 必要に応じて、LISTコマンドを発行して、バックアップ・セットのリストを確認します。出力には、BACKUPコマンドのBACKUPSET句によって作成されたバックアップ・ピースのコピーを含め、すべてのコピーがリストされます。