日本語PDF

E Recovery Managerを使用したスタンバイ・データベースの作成

このトピックでは、Oracle Recovery Managerを使用してスタンバイ・データベースを作成する方法を説明します。

E.1 前提条件

RMANを使用してスタンバイ・データベースを作成する前に、データベース複製について理解している必要があります。

DUPLICATEコマンドを使用してRMANでスタンバイ・データベースを作成するので、DUPLICATEコマンド・エントリについても理解している必要があります。

また、RMANを使用してスタンバイ・データベースを作成するに、スタンバイ・データベースの作成方法も理解しておいてください。

E.2 RMANを使用したスタンバイ・データベースの作成の概要

RMANを使用してスタンバイ・データベースを作成する目的および基本概念については、この項を参照してください。

E.2.1 RMANを使用したスタンバイ・データベースの作成の目的

プライマリ・データベースのバックアップからスタンバイ・データベースを作成するには、手動で行うか、RMANのDUPLICATEコマンドを使用します。

プライマリ・データベースのバックアップからスタンバイ・データベースを作成するには、手動で行うか、RMANのDUPLICATEコマンドを使用します。RMANを使用してスタンバイ・データベースを作成すると、手動による作成と比べて次のメリットがあります。

  • プライマリ・データベースで現在使用しているファイルをコピーしてスタンバイ・データベースを作成できます。バックアップは必要ありません。

  • プライマリ・データベースのバックアップをスタンバイ・サイトにリストアしてスタンバイ・データベースを作成できます。したがって、スタンバイ・データベースの作成中にプライマリ・データベースが影響を受けることはありません。

  • Oracle Managed Files(OMF)などのファイルやディレクトリ構造の名前の変更が自動化されます。

  • アーカイブREDOログ・ファイルをバックアップからリストアされ、スタンバイ・データベースとプライマリ・データベースが同期化されるようにメディア・リカバリが実行されます。

E.2.2 RMANを使用したスタンバイ・データベースの作成の基本概念

RMANを使用してスタンバイ・データベースを作成する手順は、複製データベースの作成とほぼ同じです。

スタンバイ・データベース固有の問題に対処するために、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』で説明されている複製手順を変更する必要があります。

DUPLICATEコマンドを使用してスタンバイ・データベースを作成するには、ターゲットとしてプライマリ・データベースに接続し、FOR STANDBYオプションを指定する必要があります。スタンバイ・データベースに接続してスタンバイ・データベースを追加作成することはできません。RMANは、制御ファイルをリストアおよびマウントして、スタンバイ・データベースを作成します。RMANではプライマリ・データベースの制御ファイルの既存のバックアップを使用できるので、スタンバイ・データベース専用に制御ファイルのバックアップを作成する必要はありません。

FOR STANDBY OPTION指定せずにDUPLICATEで作成した複製データベースと異なり、スタンバイ・データベースには新しいDBIDが設定されません。したがって、スタンバイ・データベースをリカバリ・カタログに登録しないでください。

E.2.2.1 アクティブ・データベース複製とバックアップベース複製

スタンバイ・データベースの作成にRMANを使用する場合は、アクティブ複製とバックアップベース複製のどちらかを選択する必要があります。

FROM ACTIVE DATABASEを指定すると、RMANはデータファイルをプライマリ・データベースからスタンバイ・データベースに直接コピーします。プライマリ・データベースをマウントまたはオープンする必要があります。

FROM ACTIVE DATABASEを指定しないと、RMANはバックアップベース複製を実行します。プライマリ・データファイルのバックアップがスタンバイ・データベースにリストアされます。スタンバイ・データベースの作成およびリカバリに必要なバックアップおよびアーカイブREDOログ・ファイルはすべて、スタンバイ・ホストのサーバー・セッションでアクセスできる必要があります。SET UNTILコマンドを実行する場合を除いて、RMANは最新のデータファイルをリストアします。

E.2.2.2 RMAN環境におけるDB_UNIQUE_NAMEの値

FOR STANDBYオプションを指定せずにDUPLICATEコマンドを使用して作成された複製データベースと異なり、スタンバイ・データベースには新しいDBIDが設定されません。

Oracle Data Guard環境でRMANを使用する場合、リカバリ・カタログに接続する必要があります。リカバリ・カタログには、環境内のすべてのプライマリ・データベースとスタンバイ・データベースに関するメタデータを格納できます。スタンバイ・データベースは、リカバリ・カタログに明示的に登録しないでください。

Oracle Data Guard環境内のデータベースは、初期化パラメータ・ファイルのDB_UNIQUE_NAMEパラメータによって一意に識別する必要があります。Oracle Data Guard環境でRMANを正常に動作させるには、同じDBIDを持つすべてのデータベース間でDB_UNIQUE_NAMEが一意である必要があります。

関連項目:

Oracle Data Guard環境でのRMAN操作の概要は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。

E.2.2.3 スタンバイ・データベースのリカバリ

デフォルトで、RMANはスタンバイ・データベースの作成後、リカバリを実行しません。

RMANはスタンバイ・データベースをマウントしたままにしますが、スタンバイ・データベースを手動または管理リカバリ・モードには設定しません。RMANは接続を切断し、スタンバイ・データベースのメディア・リカバリを実行しません。

RMANでスタンバイ・データベースの作成後にリカバリを行う場合、リカバリに対してスタンバイ制御ファイルが使用可能である必要があります。次の条件を満たしている必要があります。

  • スタンバイ・データベースのリカバリ終了時刻は、スタンバイ制御ファイルのチェックポイントSCN以上である必要があります。

  • スタンバイ制御ファイルのチェックポイントSCNが含まれているアーカイブREDOログ・ファイルは、リカバリ用にスタンバイ・サイトから使用可能である必要があります。

これらの条件を満たしていることを確認する方法として、プライマリ・データベースに制御ファイルをバックアップ後、ALTER SYSTEM ARCHIVE LOG CURRENT文を実行します。この文は、プライマリ・データベースのオンラインREDOログ・ファイルをアーカイブします。その後、最新のアーカイブREDO・ログ・ファイルをRMANでバックアップするか、またはアーカイブREDOログ・ファイルをスタンバイ・サイトに移動します。

DUPLICATEコマンドのDORECOVERオプションを使用して、RMANでスタンバイ・データベースをリカバリするように指定します。RMANは、スタンバイ・データベース・ファイルの作成後に次のステップを実行します。

  1. RMANはメディア・リカバリを開始します。アーカイブREDOログ・ファイルを必要とするリカバリで、そのログ・ファイルがディスクにない場合、RMANはバックアップのリストアを試みます。

  2. RMANは、指定された時間、システム変更番号(SCN)またはログ・ファイル順序番号にスタンバイ・データベースをリカバリします。そのいずれも指定されていない場合は、最新の生成済アーカイブREDOログ・ファイルにリカバリします。

  3. RMANは、メディア・リカバリの完了後、スタンバイ・データベースをマウントしたままにしますが、スタンバイ・データベースを手動または管理リカバリ・モードには設定しません

E.2.2.3.1 スタンバイ・データベースREDOログ・ファイル

RMANは、スタンバイ・データベースでスタンバイREDOログ・ファイルを自動的に作成します。

ログ・ファイルは作成後、スタンバイ・データベースによってログ・ファイルの通常のルールに従って管理およびアーカイブされます。

バックアップベース複製を使用した場合、スタンバイ・データベースでスタンバイREDOログ・ファイルに名前を付けるときの唯一のオプションは、スタンバイ制御ファイルで指定されるログ・ファイルのファイル名です。スタンバイでのログ・ファイル名をプライマリのファイル名と異なる名前にする必要がある場合は、スタンバイ初期化パラメータ・ファイルでLOG_FILE_NAME_CONVERTを設定して、スタンバイREDOログのファイル名を指定する方法を選択できます。

スタンバイ・データベースでスタンバイREDOログ・ファイルのファイル名を指定する際、次の制限事項に注意してください。

  • プライマリ・データベースおよびスタンバイ・データベースでログ・ファイルに異なるネーミング規則を使用する場合、スタンバイREDOログ・ファイルにはLOG_FILE_NAME_CONVERTパラメータを使用して名前を付ける必要があります。

  • スタンバイREDOログ・ファイルの名前の変更には、SET NEWNAMEまたはCONFIGURE AUXNAMEコマンドを使用できません。

  • スタンバイREDOログ・ファイルのファイル名の指定には、DUPLICATEコマンドのLOGFILE句を使用できません。

  • スタンバイ・データベースでのスタンバイREDOログ・ファイル名をプライマリREDOログ・ファイル名と同じ名前にする場合、DUPLICATEコマンドのNOFILENAMECHECK句を指定する必要があります。指定しない場合、スタンバイ・データベースが異なるホスト上で作成されていても、RMANによりエラーが発生します。

E.2.2.4 スタンバイ・データベースのパスワード・ファイル

アクティブ・データベース複製を使用すると、スタンバイ・データベースのパスワード・ファイルはターゲット・データベースのパスワード・ファイルの完全コピーである必要があるため、RMANは常にパスワード・ファイルをスタンバイ・ホストにコピーします。

アクティブ・データベース複製を使用すると、スタンバイ・データベースのパスワード・ファイルはターゲット・データベースのパスワード・ファイルの完全コピーである必要があるため、RMANは常にパスワード・ファイルをスタンバイ・ホストにコピーします。その場合、PASSWORD FILE句は必要ありません。補助インスタンスの既存のパスワード・ファイルはすべて上書きされます。バックアップベース複製では、Oracle Data Guardによるログの送信のために、プライマリで使用されているパスワード・ファイルをスタンバイにコピーする必要があります。

E.3 DUPLICATEコマンドを使用したスタンバイ・データベースの作成

スタンバイ・データベースの作成手順は、基本的にRMANの複製手順と同じです。

RMAN複製手順の詳細は、Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイドを参照してください。

E.3.1 アクティブ・データベース複製を使用したスタンバイ・データベースまたは遠隔同期インスタンスの作成

スタンバイ・データベースまたは遠隔同期インスタンスのいずれかを作成するには、アクティブ・データベース複製を使用できます。

アクティブ・データベース複製によるスタンバイ・データベースの作成

RMANのDUPLICATEを使用してプライマリ・データベースのアクティブなファイルからスタンバイ・データベースを作成するには、FOR STANDBYFROM ACTIVE DATABASEの両方のオプションを指定します。DORECOVERなどの他のオプションも指定できます。次に例を示します。
DUPLICATE TARGET DATABASE FOR STANDBY FROM ACTIVE DATABASE DORECOVER;

アクティブ・データベース複製による遠隔同期インスタンスの作成

Oracle Database 12cリリース12.2 (12.2.0.1)以降、RMANのDUPLICATEコマンドを使用して、プライマリ・データベースでアクティブなファイルから遠隔同期インスタンスを作成することもできます。このためには、コマンドラインでSTANDBYのかわりにFARSYNCを使用します(DORECOVERオプションは指定しないでください。遠隔同期インスタンスには許可されていません)。次に例を示します。
DUPLICATE TARGET DATABASE FOR FARSYNC FROM ACTIVE DATABASE;

アクティブ・データベース複製を使用してスタンバイ・データベースまたは遠隔同期インスタンスを作成するステップ

次のステップでアクティブ・データベース・ファイルからスタンバイ・データベースを作成しますが、これらのステップを使用してアクティブ・データベース・ファイルから遠隔同期インスタンスを作成することもできます。このステップでは、スタンバイ・ホスト(または遠隔同期インスタンス)およびプライマリ・データベース・ホストのディレクトリ構造が同じであることを前提にしています。

  1. 補助データベース・インスタンスを準備します。詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。

    アクティブ・データベース複製を使用するため、補助インスタンス用にパスワード・ファイルを作成し、Oracle Net接続を確立する必要があります。これは、複製操作中に上書きされる一時的なパスワード・ファイルです。

  2. スタンバイ制御ファイル、データファイル、オンラインREDOログおよび一時ファイルの名前の指定方法を決定します。このステップの詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。

    この使用例では、スタンバイ・データベース・ファイルには、プライマリ・データベース・ファイルと同じ名前を付けます。

  3. RMANを起動して構成します。詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。
  4. DUPLICATEコマンドを実行します。
    次の例に、アクティブ複製でのDUPLICATEの使用方法を示します。この例では、プライマリ・データベース・ファイルがスタンバイ・データベース・ファイルと同じ名前であるため、NOFILENAMECHECKオプションが必要です。SPFILESET句は、ログの送信が正常に行われるために必要です。db_unique_nameを設定して、カタログおよびOracle Data Guardでこのデータベースがプライマリとは異なるものであると識別できるようにする必要があります。必要に応じて、DORECOVERオプションを指定し、スタンバイの作成後にデータベースをリカバリします(DORECOVERは遠隔同期インスタンスの有効なオプションではありません)。
    DUPLICATE TARGET DATABASE
      FOR STANDBY
      FROM ACTIVE DATABASE
      DORECOVER
      SPFILE
        SET "db_unique_name"="foou" COMMENT "Is a duplicate"
        SET LOG_ARCHIVE_DEST_2="service=inst3 ASYNC REGISTER
         VALID_FOR=(online_logfile,primary_role)"
        SET FAL_SERVER="inst1" COMMENT "Is primary"
      NOFILENAMECHECK;

    RMANは、サーバー・パラメータ・ファイルをスタンバイ・ホストに自動的にコピーし、そのサーバー・パラメータ・ファイルを使用して補助インスタンスを起動してバックアップ制御ファイルをリストアし、必要なデータベース・ファイルおよびアーカイブREDOログをすべてスタンバイ・ホストにネットワークを介してコピーします。RMANはスタンバイ・データベースをリカバリしますが、スタンバイ・データベースを手動または管理リカバリ・モードには設定しません。

    スタンバイではなく遠隔同期インスタンスを作成している場合、コマンドは次のようにSTANDBYFARSYNCで置き換えられることを除いて同じになります。
    DUPLICATE TARGET DATABASE
      FOR FARSYNC
      FROM ACTIVE DATABASE
      SPFILE
        SET "db_unique_name"="foou" COMMENT "Is a duplicate"
        SET LOG_ARCHIVE_DEST_2="service=inst3 ASYNC REGISTER
         VALID_FOR=(online_logfile,primary_role)"
        SET FAL_SERVER="inst1" COMMENT "Is primary"
      NOFILENAMECHECK;

    ノート:

    プライマリ・データベースがOracle Real Application Clusters (Oracle RAC)データベースで、ターゲット・スタンバイ・データベースまたは遠隔同期インスタンスが単一インスタンスのOracleデータベースになる場合は、前述のRMANの例にコマンドSET CLUSTER_DATABASE="FALSE"を追加します。

E.3.2 バックアップベース複製によるスタンバイ・データベースの作成

スタンバイ・データベースまたは遠隔同期インスタンスのいずれかを作成するには、バックアップベース複製を使用できます。

バックアップベース複製によるスタンバイ・データベースの作成

スタンバイ・データベースをバックアップから作成するには、FOR STANDBYを指定しますが、FROM ACTIVE DATABASEは指定しません。DORECOVERなどの他のオプションも指定できます。次に例を示します。
DUPLICATE TARGET DATABASE FOR STANDBY BACKUP LOCATION '+DATA/BACKUP' DORECOVER;

バックアップベース複製による遠隔同期インスタンスの作成

Oracle Database 12cリリース12.2 (12.2.0.1)以降、RMANのDUPLICATEコマンドを使用してData Guard遠隔同期インスタンスを作成するためにバックアップベース複製を使用することもできます。このためには、コマンドラインでSTANDBYのかわりにFARSYNCを使用します(DORECOVERオプションは指定しないでください。遠隔同期インスタンスには許可されていません)。次に例を示します。
DUPLICATE TARGET DATABASE FOR FARSYNC BACKUP LOCATION '+DATA/BACKUP';

バックアップからスタンバイ・データベースまたは遠隔同期インスタンスを作成するステップ:

次のステップでバックアップからスタンバイ・データベースを作成しますが、これらのステップを使用してバックアップから遠隔同期インスタンスを作成することもできます。このステップでは、スタンバイ・ホスト(または遠隔同期インスタンス)およびプライマリ・データベース・ホストのディレクトリ構造が同じであることを前提にしています。

  1. 『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』に記載されているように、データベース・バックアップおよびアーカイブREDOログを複製ホスト上の補助インスタンス用に提供します。
  2. 補助データベース・インスタンスを準備します。詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。
  3. スタンバイ制御ファイル、データファイル、オンラインREDOログおよび一時ファイルの名前の指定方法を決定します。このステップの詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。

    この使用例では、スタンバイ・データベース・ファイルには、プライマリ・データベース・ファイルと同じ名前を付けます。

  4. RMANを起動して構成します。詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。
  5. DUPLICATEコマンドを実行します。

    次の例に、バックアップベース複製でのDUPLICATEの使用方法を示します。この例では、プライマリ・データベース・ファイルがスタンバイ・データベース・ファイルと同じ名前であるため、NOFILENAMECHECKオプションが必要です。必要に応じて、DORECOVERオプションを指定し、スタンバイの作成後にデータベースをリカバリします(DORECOVERは遠隔同期インスタンスの有効なオプションではありません)。

    DUPLICATE TARGET DATABASE
      FOR STANDBY
      DORECOVER
      SPFILE
        SET "db_unique_name"="foou" COMMENT "Is a duplicate"
        SET LOG_ARCHIVE_DEST_2="service=inst3 ASYNC REGISTER
         VALID_FOR=(online_logfile,primary_role)"
        SET FAL_SERVER="inst1" COMMENT "Is primary"
      NOFILENAMECHECK;
    

    RMANは、サーバー・パラメータ・ファイルをスタンバイ・ホストに自動的にコピーし、そのサーバー・パラメータ・ファイルを使用して補助インスタンスを起動し、必要なデータベース・ファイルおよびアーカイブREDOログをすべてスタンバイ・ホストにリストアします。RMANはスタンバイ・データベースをリカバリしますが、スタンバイ・データベースを手動または管理リカバリ・モードには設定しません。