25 データベースの複製

この章では、DUPLICATEコマンドを使用して、独立して機能するデータベース・コピーを作成する方法について説明します。

この章のトピックは、次のとおりです:

25.1 RMANデータベースの複製の概要

データベースを複製するには、DUPLICATEコマンドを使用して、ソース・データベースにあるすべてのデータまたはそのサブセットをコピーします。複製データベース(コピー先のデータベース)は、ソース・データベース(コピー元のデータベース)から完全に独立して機能します。

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

25.1.1 データベースの複製の目的

複製データベースは様々な目的で有効であり、ほとんどの場合、テストに使用されます。複製データベースでは、次のタスクを実行できます。

  • バックアップ手順およびリカバリ手順のテスト

    たとえば、host1上の本番データベースをhost2上に複製し、host1上の本番データベースを通常どおりに実行したまま、host2上の複製データベースを使用してこのデータベースのリストアおよびリカバリを練習できます。

  • Oracle Databaseの新しいリリースへのアップグレードのテスト

  • データベースのパフォーマンスにアプリケーションが与える影響のテスト

  • スタンバイ・データベースを作成します。

    フィジカル・スタンバイ・データベースまたはOracle Data Guardの遠隔同期インスタンスを作成できます。スタンバイ・データベースはプライマリ・データベースのコピーで、プライマリ・データベースのアーカイブREDOログ・ファイルを使用して継続的に更新できます。 プライマリ・データベースにアクセスできない場合は、スタンバイ・データベースへのフェイルオーバーを実行し、それを新しいプライマリ・データベースにすることができます。ただし、データベース・コピーはこの用途には使用できません。データベース・コピーは、フェイルオーバーでの使用を目的としていないため、スタンバイの様々なリカバリ・オプションおよびフェイルオーバー・オプションをサポートしていません

  • レポートの生成

関連項目:

DUPLICATEコマンドを使用したスタンバイ・データベースの作成方法は、『Oracle Data Guard概要および管理』を参照してください。

25.1.2 データベースの複製の基本的な概念

ソース・ホストは、ソース・データベースをホストするコンピュータです。ソース・データベース・インスタンスは、ソース・データベースに関連付けられたインスタンスを表します。

宛先ホストは、複製データベースをホストするコンピュータを表します。ソース・ホストと宛先ホストは、同じコンピュータである場合も異なるコンピュータである場合もあります。

複製のプロセスでは、複製データベースに関連付けられたデータベース・インスタンスを補助インスタンスと呼びます。

複製のための明示的な時点が提供されていない場合でも、RMANでデータベースのPoint-in-Timeリカバリを実行する必要があります。Point-in-Timeリカバリが必要なのは、ソース・データベースのオンラインREDOログ・ファイルがバックアップされておらず、複製データベースに適用できないためです。複製データベースをリカバリできるのは、ソース・データベースによってアーカイブされた最新のREDOログ・ファイルの時点までです。

RMANは、複製データベースに新しいDBIDを割り当てます(スタンバイ・データベースが作成されている場合を除く。この場合はソースDBIDが保持される)。その後、複製データベースを、ソース・データベースと同じリカバリ・カタログに登録できます。

DUPLICATEコマンドではなくオペレーティング・システムのユーティリティを使用してデータベースをコピーした場合、コピーしたデータベースのDBIDは元のデータベースと同じになります。このコピーしたデータベースを元のデータベースと同じリカバリ・カタログに登録するには、DBNEWIDユーティリティを使用してDBIDを変更する必要があります(『Oracle Databaseユーティリティ』を参照)。

25.1.2.1 補助インスタンスの初期化パラメータ

次の表は、補助インスタンスで使用できる初期化パラメータのサブセットを示します。

表25-1 補助インスタンスの初期化パラメータ

初期化パラメータ ステータス

DB_NAME

DUPLICATEコマンドで使用する名前と同じ名前。DUPLICATEを使用してスタンバイ・データベースを作成する場合、プライマリ・データベースと同じ名前にする必要があります。

複製データベースのDB_NAME設定は、そのOracleホームのデータベース間で一意である必要があります。

必須

CONTROL_FILES

制御ファイルの場所

必須

DB_BLOCK_SIZE

複製データベースのブロック・サイズ。このブロック・サイズは、ソース・データベースのブロック・サイズと一致している必要があります。ソース・データベースのパラメータ・ファイルにDB_BLOCK_SIZE初期化パラメータの値が含まれている場合、補助インスタンスに同じ値を指定する必要があります。ただし、ソース・データベースの初期化パラメータ・ファイルにDB_BLOCK_SIZEが指定されていない場合は、補助インスタンスにDB_BLOCK_SIZEは指定しないでください。

必須(ソース・データベースでこの初期化パラメータが設定されている場合)

DB_FILE_NAME_CONVERT

データファイルおよび一時ファイルの名前を変換する文字列のペア。DUPLICATEコマンド自体にDB_FILE_NAME_CONVERTを指定することもできます。「DB_FILE_NAME_CONVERTを使用した非OMFまたはASMデータファイルの名前の生成」を参照してください。

オプション

LOG_FILE_NAME_CONVERT

オンラインREDOログ・ファイルの名前を指定する文字列のペア。「LOG_FILE_NAME_CONVERTを使用した非OMFまたはASMログ・ファイルの名前の生成」を参照してください。

オプション

DB_CREATE_FILE_DEST

Oracle管理データファイルの場所

オプション

DB_CREATE_ONLINE_LOG_DEST_n

Oracle管理オンラインREDOログ・ファイルの場所

オプション

DB_RECOVERY_FILE_DEST

高速リカバリ領域の場所

オプション

Oracle Real Application Cluster(Oracle RAC)パラメータ:
  • <INSTANCESIDn>.INSTANCE_NAME

  • <INSTANCESIDn>.INSTANCE_NUMBER

  • <INSTANCESIDn>.THREAD

  • <INSTANCESIDn>.UNDO_TABLESPACE

  • <INSTANCESIDn>.LOCAL_LISTENER

Oracle RACデータベースのインスタンスごとにこれらのパラメータを設定します。

必須(Oracle RAC構成の場合)

関連項目:

  • 補助インスタンスの初期化パラメータの詳細は、『Oracle Databaseリファレンス』を参照してください

  • 複製ファイルに名前を指定するためのオプションについては、表26-1を参照してください

25.1.2.2 アクティブなデータベースの複製中のバックアップ・セット作成のパラレル化について

RMANマルチセクション・バックアップでは、非常に大きなデータファイルをパラレルにバックアップすることによって、より高速なバックアップ・パフォーマンスを実現します。各バックアップ・ピースへ別々のチャネル書込みを行い、複数のバックアップ・ピースが作成されます。Oracle Database 12cリリース1 (12.1)から、アクティブなデータベース複製を実行するために必要なソース・ファイルの転送に、マルチセクション・バックアップ・セットを使用できます。

マルチセクション・バックアップ・セットを作成するには、DUPLICATEコマンドにSECTION SIZE句を使用します。次のコマンドは、各バックアップ・ピースのサイズに400MBを指定してマルチセクション・バックアップ・セットを作成します。ターゲット・データベースおよび補助インスタンスには、ネット・サービス名を使用して接続されているものと想定します。

DUPLICATE TARGET DATABASE TO dup_db
FROM ACTIVE DATABASE
PASSWORD FILE
SECTION SIZE 400M;
25.1.2.3 アクティブなデータベースの複製中のバックアップ・セットの暗号化について

RMANでは、バックアップ・セットを使用して、複製が必要なソース・データベース・ファイルを転送できます。バックアップ・セットは、ネットワークを介して補助データベースに転送されます。セキュリティを強化するために、バックアップ・セットは暗号化できます。DUPLICATEコマンドの前にSET ENCRYPTION ALGORITHMコマンドを使用して、暗号化アルゴリズムを指定します。

アクティブなデータベースの複製を実行する前に、次のいずれかの技術を使用して適切に暗号化されていることを確認します。

  • ソース・データベースで透過的暗号化が使用される場合、宛先ホストでOracleキーストアを使用可能にするに説明されているとおりに、ソース・データベースと補助インスタンス間で、暗号化キーを含むOracleソフトウェア・キーストアを共有する必要があります。

  • ソース・データベースでパスワード暗号化が使用されている場合、バックアップの暗号化に使用するパスワードを指定する必要があります。

    次のコマンドは、暗号化パスワードを設定します(passwordは、入力する実際のパスワードのプレースホルダ)。
    SET ENCRYPTION ON IDENTIFIED BY password;
25.1.2.4 アクティブなデータベースの複製中のバックアップ・セットの圧縮について

バックアップ・セットを使用してアクティブなデータベースの複製が実行された場合、RMANはバックアップの圧縮を使用して、ソース・データベースから宛先ホストへのファイルの転送に使用されるバックアップ・セットのサイズを最小限に抑えることができます。このように、圧縮によって複製プロセスのパフォーマンスを向上させることができます。

アクティブなデータベースの複製に使用するバックアップ・セットの圧縮は、Oracle Database 12cリリース1 (12.1)からサポートされています。

アクティブなデータベース複製の実行に必要なデータが含まれるバックアップ・セットを圧縮するには、DUPLICATEコマンドのUSING COMPRESSED BACKUPSET句を使用します。次のコマンドは、圧縮されたバックアップ・セットを使用して、アクティブなデータベース複製を実行します。ターゲット・データベースおよび補助インスタンスには、ネット・サービス名を使用して接続されているものと想定します。

DUPLICATE TARGET DATABASE TO dup_db
FROM ACTIVE DATABASE
PASSWORD FILE
USING COMPRESSED BACKUPSET;

25.1.3 データベースの複製のタイプ

RMANでは、次のタイプのデータベースの複製が提供されます。
  • バックアップベースの複製

    既存のRMANバックアップやソース・データベースのコピーを使用して、複製データベースを作成します。様々な方法でバックアップベースの複製を使用してデータベースを複製できます。

  • アクティブなデータベースの複製

    アクティブなソース・データベースをネットワークを介して補助インスタンスにコピーして、複製データベースを作成します。バックアップ・セットまたはイメージ・コピーを使用して複製を実行できます。

任意の複製タイプを使用して、ローカル・ホストまたはリモート・ホストにデータベースを複製できます。

25.1.3.1 バックアップベースの複製の概要

バックアップベースの複製では、ソース・データベースの既存のRMANバックアップを使用して、複製データベースが作成されます。全体バックアップと増分バックアップを組み合せて使用できます。RMANは、UNTILの状態に基づいて、どのバックアップおよびアーカイブREDOログ・ファイルを使用する必要があるかを判断します。

バックアップベースの複製では、データベース複製の主な作業は補助チャネルによって行われます。「複製で使用するためのRMANチャネルの構成」の説明のように、追加チャネルを構成できます。

バックアップベースの複製は、次のシナリオで使用できます。

  • ソース・データベースへの接続は使用できないが、ソース・データベースのバックアップは使用できる。

  • ソース・ホストと宛先ホスト間のネットワーク帯域幅が制約になっている。

    ソース・ホストと宛先ホスト間のネットワーク帯域幅が制限されている場合に、アクティブなデータベースの複製を使用すると、パフォーマンスが低下する可能性があります。たとえば、ソース・ホストと宛先ホストが別々の地理的場所にあり、WAN経由で接続されている場合が考えられます。そのような場合は、バックアップベースの複製を使用することが望ましい場合があります。

    関連項目:

    アクティブなデータベースの複製が適しているシナリオの詳細は、アクティブなデータベースの複製の概要を参照してください。

25.1.3.2 バックアップベースの複製の実行方法
25.1.3.2.1 ターゲット接続を行う場合のバックアップベースの複製

この方法では、TARGETとしてソース・データベースに接続し、AUXILIARYとして補助インスタンスに接続する必要があります。

次の図25-1に、ターゲット接続を行う場合のバックアップベースの複製を示します。リカバリ・カタログに接続できますが、必須ではありません(図にはありません)。RMANは、ソース・データベースの制御ファイルに含まれるメタデータを使用して、複製の実行にどのバックアップまたはコピーが必要かを判断します。

宛先ホストは、複製データベースの作成に必要なRMANバックアップにアクセスできる必要があります。

図25-1 ターゲット接続を行う場合のバックアップベースの複製

図25-1の説明が続きます
「図25-1 ターゲット接続を行う場合のバックアップベースの複製」の説明
25.1.3.2.2 ターゲット接続を行わない場合のバックアップベースの複製

この方法では、リカバリ・カタログ・データベースにCATALOGとして接続し、補助インスタンスにAUXILIARYとして接続します。

図25-2に、ターゲット接続を行わない場合のバックアップベースの複製を示します。RMANは、リカバリ・カタログ内のメタデータを使用して、複製を実行するのに必要なバックアップまたはコピーを識別します。

転送先ホストは、複製データベースの作成に必要なRMANバックアップにアクセスできる必要があります。

図25-2 ターゲット接続を行わない場合のバックアップベースの複製

図25-2の説明が続きます
「図25-2 ターゲット接続を行わない場合のバックアップベースの複製」の説明
25.1.3.2.3 ターゲット・データベースを持たず、リカバリ・カタログ接続を行わないバックアップベースの複製

この方法では、ソース・データベースまたはリカバリ・カタログへの接続がありません。

図25-3に、ターゲットまたはリカバリ・カタログ・データベース・インスタンスへの接続を行わない場合のバックアップベースの複製を示します。補助インスタンスに接続し、宛先ホストのディスクの場所に保存されているソース・データベースのバックアップまたはコピーを使用して複製を実行します。RMANは、DUPLICATEコマンドのBACKUP LOCATION句から、バックアップおよびコピーが存在する場所のメタデータを取得します。

複製に必要なすべてのバックアップまたはコピーが含まれているディスクのバックアップ場所が、宛先ホストによって使用可能である必要があります。

注意:

この方法は、テープ・デバイスに保存されたバックアップではサポートされません。

図25-3 ターゲット接続またはリカバリ・カタログ接続を行わない場合のバックアップベースの複製

図25-3の説明が続きます
「図25-3 ターゲット接続またはリカバリ・カタログ接続を行わない場合のバックアップベースの複製」の説明
25.1.3.3 アクティブなデータベースの複製の概要

アクティブなデータベースの複製では、ソース・データベースのバックアップは必要ありません。ネットワークを介してデータベース・ファイルを補助インスタンスにコピーして、アクティブなソース・データベースを宛先ホストに複製します。RMANは、必要なファイルをイメージ・コピーまたはバックアップ・セットとしてコピーできます。

アクティブなデータベースの複製の場合、使用される複製方法によって、主な作業をどのチャネルが実行するかが決まります。バックアップ・セットを使用してアクティブなデータベース複製が実行される場合、複製に関する主な作業は補助チャネルによって実行されます。イメージ・コピーが使用される場合、主な作業はターゲット・チャネルによって実行されます。

アクティブなデータベースの複製を実行するには、ターゲット・データベースへの接続が必要です。ソース・ホストと宛先ホスト間のネットワーク帯域幅が制約にならないかぎり、通常は、アクティブなデータベースの複製を使用することをお薦めします。アクティブなデータベースの複製は、必要なセットアップが少なく、実行方法がよりシンプルです。

注意:

アクティブなデータベースの複製では、ソース・データベースでサーバー・パラメータ・ファイルを使用する必要があります。

いくつかのシナリオでは、イメージ・コピーではなく、バックアップ・セットを使用したアクティブなデータベースの複製が適している場合があります。
  • データベースの複製中に、マルチセクション・バックアップ、圧縮または暗号化を使用する場合。

  • 必要なデータベース・ファイルを複製データベースに転送するために、十分なネットワーク・リソースがソース・データベースにない場合。

  • 複製プロセスで使用されるリソースを最小限にする場合。

    バックアップ・セットを使用したアクティブなデータベースの複製では、ソース・データベースで使用されるリソースが最小限に抑えられます。

25.1.3.4 アクティブなデータベースの複製の実行方法

アクティブなデータベースの複製を実行するには、複数の方法があります。

相互に排他的な2つの方法のいずれかを使用して、アクティブなデータベースの複製を実行します。

25.1.3.4.1 イメージ・コピーを使用したアクティブなデータベースの複製

この方法では、RMANはTARGETとしてソース・データベースに接続し、AUXILIARYとして補助インスタンスに接続します。次に、ソース・データベースは、必要なデータベース・ファイルをネットワークを介して補助インスタンスに転送します。この方法は、アクティブなデータベースの複製のプッシュベースの方法と呼ばれます。

図25-4に、イメージ・コピーを使用したアクティブなデータベースの複製を示します。アクティブなデータベースの複製にイメージ・コピーを使用すると、ソース・データベースで追加のリソースが必要になる場合があります。複製で使用するためのRMANチャネルの構成の説明のように、追加のターゲット・チャネルを構成して複製のパフォーマンスを向上させることができます。

図25-4 イメージ・コピーを使用したアクティブなデータベースの複製

図25-4の説明が続きます
「図25-4 イメージ・コピーを使用したアクティブなデータベースの複製」の説明
25.1.3.4.2 バックアップ・セットを使用したアクティブなデータベースの複製

アクティブなデータベースの複製の実行にバックアップ・セットを使用することは、アクティブなデータベースの複製のプルベースの方法とも呼ばれます。

この方法では、RMANはTARGETとしてソース・データベースに接続し、AUXILIARYとして補助インスタンスに接続します。その後、補助インスタンスはOracle Net Servicesを介してソース・データベースに接続し、ソース・データベースから必要なデータベース・ファイルをネットワークを介して取得します。図25-5に、バックアップ・セットを使用したアクティブなデータベースの複製を示します。

図25-5 バックアップ・セットを使用したアクティブなデータベースの複製

図25-5の説明が続きます
「図25-5 バックアップ・セットを使用したアクティブなデータベースの複製」の説明

注意:

バックアップ・セットを使用したアクティブなデータベースの複製の実行は、Oracle Database 12cリリース1 (12.1)以上で使用可能です。

アクティブなデータベースの複製にバックアップ・セットを使用すると、次の利点があります。

  • RMANは、未使用ブロック圧縮を使用できるため、ネットワーク経由でトランスポートする必要があるバックアップのサイズが削減されます。

  • マルチセクション・バックアップを使用することで、バックアップ・セットをソース・データベース上でパラレルに作成できます。

  • ソース・データベース上で作成されたバックアップ・セットを暗号化できます。

25.1.3.5 アクティブなデータベースの複製にバックアップ・セットとイメージ・コピーのどちらを使用するかを判断する要因
ターゲット・データベースへの接続がネット・サービス名を使用して確立され、次のいずれかの条件が満たされている場合、RMANはバックアップ・セットを使用してアクティブなデータベース複製を実行します。
  • DUPLICATE ... FROM ACTIVE DATABASEコマンドにUSING BACKUPSET, USING COMPRESSED BACKUPSET句またはSECTION SIZE句が含まれる場合。

  • 割り当てられた補助チャネルの数が、割り当てられたターゲット・チャネルの数と同じか、それ以上の場合。

これ以外の場合は、RMANはアクティブなデータベースの複製を実行するのにイメージ・コピーを使用します。

注意:

アクティブなデータベース複製の実行には、バックアップ・セットを使用することをお薦めします。

25.1.4 RMANによるデータベースの複製方法

RMANでは、データベースの複製操作の実行の一部として、次の手順を自動化します。
  1. 次の条件を満たしている場合に、補助インスタンスのデフォルトのサーバー・パラメータ・ファイルを作成します。
    • 複製にはスタンバイ・データベースを使用しない

    • サーバー・パラメータ・ファイルは複製されない

    • 補助インスタンスは、サーバー・パラメータ・ファイルを使用して起動されていない

  2. UNTIL句の要件を満たす最新の制御ファイルを、アクティブなデータベースのバックアップまたはコピーからリストアします。
  3. リストアした制御ファイルまたはアクティブなデータベースからコピーしたバックアップ制御ファイルを使用して、補助インスタンスをマウントします。
  4. RMANリポジトリのメタデータを使用して、データファイルを補助インスタンスにリストアするために使用するバックアップを選択します。この手順は、バックアップベースの複製に適用されます。
  5. 複製データベース・ファイルを宛先ホストにコピーし、増分バックアップおよびアーカイブREDOログ・ファイルを使用して、それらを現在以外の時点にリストアします。
  6. 宛先ホストで補助データベース・インスタンスを停止し、NOMOUNTモードで再起動します。
  7. 新しい制御ファイルを作成します。この制御ファイルによって、新しいDBIDが作成されてデータファイルに格納されます。
  8. RESETLOGSオプションを指定して複製データベースを開き、新しいデータベースのオンラインREDOログを作成します。複製データベースを開かない場合は、複製データベースの状態の決定で説明するように、DUPLICATE文にNOOPEN句を使用します。

関連項目:

複製データベースにコピーされるファイルの詳細は、『Oracle Databaseバックアップおよびリカバリ・リファレンス』DUPLICATEに関する項を参照してください。

25.1.5 複製データベースの内容

複製データベースには、ソース・データベースと同じ内容か、またはソース・データベース内の表領域のサブセットのみを含めることができます。たとえば、DUPLICATEコマンドのTABLESPACEオプションを使用すると、指定した表領域のみを複製でき、SKIP READONLYオプションを使用すると、複製データベースから読取り専用表領域を除外できます。

25.1.5.1 ソース・データベースのサブセットの複製について

常に、データベースのすべての表領域を複製する必要があるわけではありません。たとえば、ソース・データベースから表領域のサブセットのみを必要とするレポートを生成する場合があります。DUPLICATEコマンドを使用すると、ソース・データベース全体のサブセットを複製できます。

注意:

ターゲット接続なしに、またはターゲットおよびリカバリ・カタログ接続なしにバックアップベースの複製で表領域を除外する場合、RMANには特別な前提条件があります。詳細は、『Oracle Databaseバックアップおよびリカバリ・リファレンス』DUPLICATEエントリの前提条件に関する項を参照してください

表25-2に、複製データベースの表領域のサブセットを指定するためのDUPLICATEコマンドのオプションを示します。

表25-2 複製データベースの表領域のサブセットを指定するためのオプション

DUPLICATEのオプション 説明
SKIP READONLY 複製データベースから読取り専用表領域のデータファイルを除外します。
SKIP TABLESPACE 'tablespace_name ' 指定した表領域を複製データベースから除外します。SYSTEM表領域、SYSAUX表領域、SYSオブジェクトを含む表領域、UNDO表領域、UNDOセグメントを含む表領域、マテリアライズド・ビューを使用する表領域、または複製された表領域が自己完結型になっていない表領域は除外できません。
TABLESPACE 'tablespace_name ', ... SYSTEM表領域、SYSAUX表領域およびUNDO表領域を自動的に含みます。含まれる表領域は自己完結型である必要があります。また、結果としてスキップされる表領域には、SYSオブジェクトまたはマテリアライズド・ビューが含まれない必要があります。

25.1.6 データベースの複製の宛先ホストについて

RMANは、指定した宛先ホストに複製データベースを作成します。宛先ホストは、ソース・ホストと同じにすることも別のホストにすることもできます。ソース・ホストと宛先ホストとして同じコンピュータが使用される場合、その複製はローカル・ホストへの複製と呼ばれます。ソース・ホストと宛先ホストが異なるコンピュータ上にある場合、その複製はリモート・ホストへの複製と呼ばれます。

データベースのローカル・ホストへの複製について

データベースをローカル・ホストに複製する際に、ソース・データベースとは異なるディレクトリ構造を使用して、複製データベース・ファイルを保存する必要があります。たとえば、ソース・データベース・ファイルが/disk1/oracleに保存されている場合、複製データベース・ファイルは/disk2/oracleに保存できます。複製データベース・ファイルの名前は、ソース・データベースと同じ名前にも別の名前にもできます。複製データベース・ファイルに別の名前を指定する方法は、複製データベースのデータベース・ファイル名の生成方法で説明します。

注意:

ローカル・ホストに複製する際にNOFILENAMECHECKを使用すると、ターゲット・データベース・ファイルが上書きされます。

データベースのリモート・ホストへの複製について

データベースをリモート・ホストに複製する際に、複製データベース・ファイルには、ソース・データベースと同じディレクトリ構造とファイ名を使用することも、別のディレクトリ構造とファイル名を使用することもできます。複製データベース・ファイルに別の名前を付けることを選択した場合は、複製データベースのデータベース・ファイル名の生成方法で説明する方法のいずれかを使用して、複製データベース・ファイルの命名方法を指定する必要があります。

注意:

リモート・ホストへの複製には、パスワード・ファイルとOracle Net Servicesの補助インスタンスへの接続が必要です。

25.1.7 複製データベース・ファイルの名前について

使用する宛先ホストと複製シナリオによっては、複製データベース・ファイルにソース・データベースと同じ名前または別の名前を使用できます。データベース・ファイルには、データファイル、制御ファイル、オンラインREDOログ・ファイルおよび一時ファイルが含まれます。

複製データベース・ファイルに別の名前を付けることを選択した場合は、これらのファイルに名前を付けるための計画を指定する必要があります。

25.1.8 データベースの過去の時点へ複製について

デフォルトでは、DUPLICATEコマンドは、ターゲット・データベースの最新のバックアップを使用して複製データベースを作成し、次に、増分バックアップおよびアーカイブREDOログに含まれる最新の一貫性のある時点にリカバリを実行します。ただし、次のいずれかの方法を使用して、複製データベースを過去の時点にリカバリできます。
  • DUPLICATE … UNTILコマンド

  • DUPLICATEコマンドの前のSET UNTILコマンド

関連項目:

データベースを過去の時点に複製する例は、Oracle Databaseバックアップおよびリカバリ・リファレンスを参照してください。

25.1.9 データベースの複製の前提条件

前提条件は、実行するデータベース複製のタイプによって決まります。すべてのタイプの複製に共通する前提条件や、特定のタイプの複製に固有の条件があります。

関連項目:

各複製方法の前提条件の詳細は、Oracle Databaseバックアップおよびリカバリ・リファレンスを参照してください。

25.2 データベースの複製の計画

データベースを複製する前に、複製プロセスに関するいくつかの事項を決定する必要があります。

データベースの複製の計画には、次のタスクが含まれます。

25.2.1 複製方法の選択

ビジネス要件およびデータベース環境に応じて、状況に合った最適な複製方法を決定します。具体的には、次の点を検討してください。
  • それぞれの複製方法の前提条件を十分に理解しているかどうか。

    詳細は、『Oracle Databaseバックアップおよびリカバリ・リファレンス』DUPLICATEコマンドの記述の前提条件に関する項を参照してください。

    一部の前提条件は特定のものであり、複製方法に応じて異なります。たとえば、アクティブな複製では、ソース・インスタンスと補助インスタンスにソース・データベースと同じパスワードを使用する必要があります。一方で、ターゲット・データベースおよびリカバリ・カタログに接続しないバックアップベースの複製では、すべてのバックアップおよびデータベース・コピーが単一の場所に存在することのみが必要とされます。

  • ソース・データベースのバックアップが存在しているかどうか。

    アクティブなデータベースの複製の主なメリットとしては、ソース・データベースをバックアップする必要のないことがあげられます。アクティブな複製では、マウントされたデータベース・ファイルまたはオンラインのデータベース・ファイルがネットワークを介して補助インスタンスにコピーされます。この方法のデメリットの1つとしては、作業がネットワークのパフォーマンスに悪影響を及ぼすことがあげられます。また、別のデメリットとして、ファイルを補助ホストに転送するために必要なプロセスがソース・データベースによって実行されているため、ソース・データベースおよび本番ワークロードに影響を与えることもあげられます。

    ソース・データベースのバックアップが存在し、ネットワークへの影響を許容できない場合は、バックアップベースの複製をお薦めします。バックアップを一時記憶域にコピーし、手動で転送先ホストに転送できます。ターゲットまたはリカバリ・カタログとの接続を使用して複製が作成される場合、転送先ホストのバックアップ・ファイルは、ソース・ホスト上のバックアップ・ファイルと同じファイル仕様である必要があります。それ以外の場合、これは要件ではありません。

  • リカバリ・カタログが使用できるかどうか。

    リカバリ・カタログが存在する場合は、RMANがTARGETとしてソース・データベースに接続されていなくても、バックアップベースの複製を実行できます。この方法は、補助ホストからソース・データベースへのネットワーク接続が制限されたり、断続的に中断されるような場合に役立ちます。TARGET接続を行わない複製では、ソース・データベースは複製の影響を受けません。

  • 宛先ホストでどの程度のディスク領域が使用できるか。

    ディスク・バックアップを使用して複製を実行する場合、宛先ホストのディスク領域が問題となることがあります。たとえば、ソース・データベースが1テラバイト(TB)で、共有ディスクまたはネットワーク・ファイル・システム(NFS)を使用せずにディスク・バックアップからデータベースを複製する場合は、宛先ホストで2テラバイト(TB)以上の領域を使用できる必要があります。NFSのパフォーマンスがボトルネックとなるため、環境によっては、手動でバックアップを転送する必要があります。

  • ソース・ホストと宛先ホストの接続がLANまたはWANであるかどうか。

    アクティブなデータベースの複製のパフォーマンスは、Local Area Network (LAN)よりもWide Area Network (WAN)の方が低下する可能性があります。WANにおけるパフォーマンスの低下を許容できないときは、バックアップベースの複製のみが実行可能な選択肢となる場合があります。

  • データベースをいつ複製する予定か。

    ユーザー・アクティビティが高い時間帯にデータベースを複製する必要がある場合には、アクティブな複製によって生じるネットワーク・スループットの損失が問題となる可能性があるため、バックアップベースの複製をお薦めします。また、アクティブなデータベースの複製の場合は、補助ホストへファイルをコピーするときに必要となるRMANチャネルが、パフォーマンスに影響を与えることがあります。

25.2.2 複製データベース・ファイルの命名計画の選択

データベースを複製するときに、RMANは複製データベース内のデータベース・ファイル名を生成します。これには、制御ファイル、データファイル、一時ファイルおよびオンラインREDOログ・ファイルが含まれます。

複製シナリオに応じて、次のいずれかの方法を使用して複製データベース・ファイルに名前を付けることができます。

複製データベース・ファイルの名前の生成に計画を指定しないと、RMANは、複製データベースに、ソース・データベースと同じファイル名とディレクトリ構造を使用します。この場合、リモート・ホストに複製している場合にかぎり、NOFILENAMECHECK句を使用して、ファイル名が同じ場合にRMANでエラーが表示されないように示す必要があります。

複製データベース・ファイルに別の名前を指定するために使用されるいくつかの方法で、ソース・データベースで使用されているのと同じファイル名が生成される場合があります。たとえばSET NEWNAMEまたはCONFIGURE AUXNAMEを使用して、複製データベース・ファイルの名前を指定するとこのような状態になる場合があります。複製データベースのファイル名を指定する際には注意が必要です。そうしないと、ソース・データベース・ファイルを誤って上書きしてしまう可能性があります。

25.2.2.1 ソース・データベースと複製データベースのデータベース・ファイルでの同じ名前の使用

最もシンプルな複製方法は、ソース・データベースと同じディレクトリ構造とファイル名を使用するように複製データベースを構成することです。同じディレクトリ構造と名前を使用できるのは、リモート・ホストに複製する場合のみです。

同じディレクトリ構造とファイル名を使用することは、使用する環境が次の要件を満たしていることを意味します。
  • ソース・データベースがASMディスク・グループを使用している場合、複製データベースは同じ名前のASMディスク・グループを使用する必要があります。

  • ソース・データベース・ファイルがOracle Managed Filesの場合、補助インスタンスは、ソース・データベースと同じディレクトリの場所に、DB_CREATE_FILE_DESTを設定する必要があります。ソース・ホスト上と宛先ホスト上でディレクトリが同じであっても、Oracle Databaseは複製ファイルに対して相対ファイル名を選択します。

  • ソース・データベースのデータベース・ファイルの名前にパスが含まれている場合、そのパス名は複製データベースにあるパス名と同じである必要があります。

  • Oracle Real Application Clusters (RAC)環境の場合は、ソース・データベースと宛先データベースに同じORACLE_SIDを使用します。

前述の推奨事項に従って環境を構成する場合、複製ファイルの名前の指定で必要となる追加の構成はありません。

25.2.2.2 ソース・データベースと複製データベースのデータベース・ファイルでの異なる名前の使用

ソース・ホストと宛先ホストで異なるディレクトリ構造が使用されている場合や、ディレクトリ構造は同じでもデータベース・ファイル名は別の名前にする場合は、RMANで複製データベース・ファイルにどのように名前を生成するかを指定する必要があります。

注意:

ソース・データベースと複製データベースでASMディスク・グループを別の名前にすることをお薦めします。

25.2.2.3 複製データベースのデータベース・ファイル名の生成方法

選択する方法に応じて、RMANでファイル名が自動的に生成されるようにするか、複製データベース・ファイルに特定の名前が使用されるようにできます。データベース・ファイルには、データファイル、制御ファイル、オンラインREDOログ・ファイルおよび一時ファイルが含まれます。

優先順位の高い順に並んでいる次の方法のいずれかを使用して、複製データベースのファイル名を生成します。
  • SET NEWNAMEコマンド

    複製データベース・ファイルに特定の名前を提供します。要件に基づいて、SET NEWNAME FOR DATABASESET NEWNAME FOR DATAFILESET NEWNAME FOR TABLESPACEまたはSET NEWNAME FOR TEMPFILEコマンドを使用します。

    OMFおよびASMデータベース・ファイルの場合は、データベース・ファイルの名前を明示的に指定するのではなく、SET NEWNAME...TO NEWを使用する必要があります。

    「複製データベース・ファイルの代替名の指定」を参照してください。

  • CONFIGURE AUXNAMEコマンド

    複製データベース・ファイルに非OMFおよび非ASMの代替名を指定します。

    「複製データベース・ファイルの代替名の指定」を参照してください。

  • DUPLICATEコマンドのSPFILE

    DB_FILE_NAME_CONVERTを例外として、複製データベース・ファイル名に関連するすべての必要な初期化パラメータを設定します。

    SPFILE句の使用方法の詳細は、『Oracle Databaseバックアップおよびリカバリ・リファレンス』を参照してください。

  • (オンラインREDOログ・ファイルのみ)DUPLICATEコマンドのLOGFILE

    複製データベース内のオンラインREDOログ・ファイルに名前を付けます。この方法は、スタンバイ・データベースの作成中には使用できません。

    注意:

    NOFILENAMECHECK句を指定せずにローカル・ホストまたはリモート・ホストに複製する場合、ソース・データベースで現在使用されているオンラインREDOログ・ファイルの名前を使用しないようにします。

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

  • DB_FILE_NAME_CONVERTおよびLOG_FILE_NAME_CONVERT初期化パラメータ

    ソース・データベースのファイル名を複製データベース内の名前に変換するためのルールを指定します。複数の変換ペアを指定できます。

    DB_FILE_NAME_CONVERTがASMファイル名に使用されている場合、ディスク・グループ名の変更のみを実行する必要があります。

    注意:

    ソース・データベースでOracle Managed Filesが使用されている場合は、この方法を使用して複製データベース・ファイルに代替名を指定できません。

    「複製データベース・ファイルの代替名の指定」を参照してください。

  • DB_CREATE_FILE_DESTおよびDB_CREATE_ONLINE_LOG_DEST_nパラメータ

    これらのパラメータで指定された場所にOracle Managed Filesを作成します。これは、OMFおよびASMに代替名を指定するために推奨される方法です。

    「複製データベース・ファイルの代替名の指定」を参照してください。

複製データベース・ファイル名の指定に複数の方法が使用されている場合は、優先順位が高い方法でファイルが命名されます。特定の方法で名前が変更されないファイルは、それに続く順位の方法に従って名前が変更されます。たとえば、2つのデータファイルがSET NEWNAMEコマンドの対象にならなかった場合、これらのデータファイルは、DB_FILE_NAME_CONVERTパラメータを使用して名前が変更されます。

データベース複製中のファイル名チェックの防止

CONFIGURE AUXNAMESET NEWNAMEまたはDB_FILE_NAME_CONVERTでは、ターゲット・データベースですでに使用されている名前を生成できます。この場合RMANでは、複製中にエラーが表示されます。リモート・ホストへの複製時には、NOFILENAMECHECKを使用してこのエラー・メッセージを回避してください。

注意:

ローカル・ホストに複製する際にNOFILENAMECHECKを使用すると、ターゲット・データベース・ファイルが上書きされます。

複製データベースの制御ファイル名の生成

デフォルトでは、RMANは制御ファイルを複製データベースのデフォルトの場所に作成します。別のファイル名とディレクトリ名を指定して、複製データベースの制御ファイルを保存できます。制御ファイルの名前を選択する際に、誤ってソース・データベースの制御ファイルを上書きしないようにします。

優先順位の高い順に並んでいる次の方法のいずれかを使用して、複製データベースの制御ファイルの場所を指定します。
  • 補助インスタンスの初期化パラメータ・ファイルに、CONTROL_FILES初期化パラメータを設定します。

  • 次のいずれかのパラメータを設定して決定された場所に、OMFベースの制御ファイルを作成します。
    • DB_CREATE_ONLINE_LOG_DEST_n

    • DB_CREATE_FILE_DEST

    • DB_RECOVERY_FILE_DEST

    これらのパラメータのうち複数のパラメータが設定されている場合、使用される優先順位は、これらのパラメータが表示されている順番になります。

25.2.3 宛先ホストでのOracle Databaseソフトウェアのインストール

ソース・ホストと宛先ホストが異なる場合、補助インスタンスを作成できるように、Oracle Databaseソフトウェアを宛先ホストにインストールする必要があります。ソフトウェアは次のいずれかの方法でインストールできます。
  • Oracle Universal Installer (OUI)で、通常のインストールを実行します。

    ソース・データベースと同じリリースのOracle Databaseをインストールします。データベースは作成されず、ソフトウェアのみがインストールされます。必要なパッチを適用します。

  • ソースのOracleホームをクローニングします。

    OUIを使用して、ソースのOracleホームをクローニングします。これによって、ソース・データベースに適用されるすべてのパッチが、複製データベースに存在することになります。

25.2.4 複製データベースの状態の決定

RMAN DUPLICATEコマンドを使用すると、複製データベースが作成されて、RESETLOGSモードで開かれます。DUPLICATEコマンドにNOOPEN句を使用して、複製データベースが開かれないように指定できます。
次の状況では、作成の直後に複製データベースを開かない場合があります。
  • 複製データベースを開くとエラーになる場合。

  • 複製データベースの初期化パラメータを変更する必要がある場合。

    たとえば、フラッシュバック・データベース設定を変更する必要があるか、高速増分バックアップを構成する必要があるか、またはブロック・チェンジ・トラッキングを変更する必要がある場合です。

  • アップグレード手順の一部として新しいデータベースを作成している場合。

    アップグレード中にRESETLOGSオプションを指定してデータベースを開くことはできません。NOOPEN句を使用すると、データベースを複製した後に、アップグレード・モードで開いて後続のアップグレード・スクリプトを実行できる状態にすることができます。

25.2.5 バックアップに対する複製インスタンスへのアクセスの許可

注意:

アクティブなデータベースの複製を実行している場合は、この手順は必要ありません。

ターゲット接続およびリカバリ・カタログ接続を使用して、またはターゲット接続のみを使用して複製を実行している場合、RMANでは、RMANリポジトリのメタデータを使用して、複製に必要なバックアップおよびアーカイブREDOログ・ファイルを検索します。RMANがリカバリ・カタログに接続される場合、RMANはカタログからバックアップ・メタデータを取得します。RMANがカタログに接続されない場合は、(ターゲット接続を行うバックアップベースの複製のときなど)、制御ファイルからメタデータを取得します。

ターゲットにもリカバリ・カタログにも接続せずに複製を実行している場合を除いて、バックアップの名前はRMANリポジトリに記録されている名前と同じ名前で使用できる必要があります。宛先ホスト上の補助チャネルがすべてのデータファイル・バックアップおよびアーカイブREDOログ・ファイルにアクセスできることを確認してください(複製データベースを目的の時点までリストアおよびリカバリするために必要です)。アクセスできない場合、複製は失敗します。アーカイブREDOログ・ファイルは、イメージ・コピーまたはバックアップ・セットとして使用可能です。

注意:

データベース・バックアップは、BACKUP DATABASEで生成する必要はありません。個々のデータファイルの全体バックアップおよび増分バックアップを組み合せることができますが、すべてのデータファイルの全体バックアップが必要です。

25.2.5.1 補助インスタンスからSBTバックアップへのアクセス可能化

この作業手順はメディア・マネージャの構成によって異なります

補助インスタンスからSBTバックアップへのアクセスを可能にするための手順

  1. 必要に応じて、宛先ホストにメディア管理ソフトウェアをインストールします。
  2. 宛先ホストからバックアップが含まれているテープにアクセスできるようにします。通常、次のいずれかを実行します。
    • リモート・ホストに接続されているドライブに、テープを物理的に移動します。

    • ネットワーク・アクセスが可能なテープ・サーバーを使用します。

  3. 必要に応じて、リモート・メディア管理ソフトウェアにテープの存在について通知します。
25.2.5.2 補助インスタンスからディスク・バックアップへのアクセス可能化

補助インスタンスからディスク・バックアップへのアクセスを可能にする場合は、ターゲットまたはリカバリ・カタログに接続された状態でデータベースを複製するかどうかによって、方法が異なります。ターゲットまたはリカバリ・カタログに接続しない場合、BACKUP LOCATION句を使用して、複製のためのバックアップ場所を指定する必要があります。

バックアップ場所を使用する場合、バックアップおよびコピーは共有の場所に存在するか、または宛先ホスト上の場所への移動が可能です。後者の場合は、バックアップまたはコピーの名前や元のパスを保持する必要はありません。BACKUP LOCATIONオプションで指定された場所には、複製されるすべてのファイルをリストアし目的の時点までリカバリするために十分なバックアップ・セット、イメージ・コピーおよびアーカイブ・ログが含まれている必要があります。

バックアップは、すべて同じ時点のものである必要はありません。また、すべてバックアップ・セットである必要も、すべてイメージ・コピーである必要もありません。データファイル・バックアップは、イメージ・コピーまたはバックアップ・セットとして提供されることができます。 アーカイブ・ログは、通常の形式またはアーカイブ・ログのバックアップ・セットとして提供されることができます。

異なる時点のバックアップを使用する場合、バックアップ場所には、最も古いバックアップの開始から目的のリカバリ・ポイントまでの期間をカバーするアーカイブ・ログが含まれる必要があります。

バックアップ場所に複数のデータベースのバックアップ・ファイルが含まれる場合、DATABASE句で、複製するデータベースの名前を指定する必要があります。バックアップ場所に同じ名前を持つ複数のデータベースのバックアップ・ファイルが含まれる場合、DATABASE句で、複製するデータベースの名前とDBIDの両方を指定する必要があります。

ソース・データベースの高速リカバリ領域は、バックアップ場所としての使用に特に適しています。これは、複製に必要なすべてのファイルがほぼ常に含まれているためです。高速リカバリ領域をバックアップ場所として使用するには、宛先システムからリモートでアクセスするか、または高速リカバリ領域の内容を宛先システムにコピーすることができます。

バックアップ場所を使用しない場合は、次の相互に排他的な例ごとに、方法が異なります。
  • ソース・ホストと宛先ホストが同一のファイル・システムである場合

    これは最も簡単で推奨される例です。たとえば、ソース・データベースのバックアップが/dsk1/bkpに格納されているとします。この場合、次のいずれかの方法で、宛先ホストからディスク・バックアップにアクセスできるようになります。
    • バックアップをソース・ホストから宛先ホストの同一のパスに手動で転送します。たとえば、バックアップがソース・ホストの/dsk1/bkpにある場合は、FTPを使用してそれらのバックアップを宛先ホストの/dsk1/bkpに転送します。

    • NFSまたは共有ディスクを使用して、宛先ホストで同じパスにアクセスできるようにします。たとえば、ソース・ホストから/dsk1/bkpにアクセスできるとすると、NFSを使用して宛先ホストに/dsk1/bkpをマウントし、/dsk1/bkpをマウント・ポイント名として使用します。

  • ソース・ホストと宛先ホストのファイル・システムが異なる場合

    この場合、ソース・ホストで使用するディレクトリ名と同じディレクトリ名は、宛先ホストで使用できません。ここでは次のオプションを指定できます。 srchostおよびdsthostという2つのホストがあり、NFSまたは共有ディスクにアクセスできるとします。srchost上のデータベースは、srcdbです。srcdbのバックアップは、ホストsrchost上の/dsk1/bkp内に存在します。ディレクトリ/dsk1/bkpは宛先ホストで使用されていますが、ディレクトリ/dsk2/dupは、いずれのホストでも使用されていません。

バックアップをソース・ホストから宛先ホストに転送する手順

  1. ソース・ホストまたは宛先ホストのいずれかに、バックアップを格納するディレクトリを作成します。

    たとえば、宛先ホスト上にバックアップ・ディレクトリ/dsk2/dupを作成します。

  2. 前の手順で作成したディレクトリをもう一方のホストにマウントします。ディレクトリとマウント・ポイントの名前が同一であることを確認します。

    たとえば、宛先ホストに/dsk2/dupを作成した場合は、NFSを使用してこのディレクトリを/dsk2/dupとしてソース・ホストにマウントします。

  3. バックアップを宛先ホスト上の新しい場所で使用できるようにします。次のいずれかの方法を使用できます。
    • RMANをTARGETとしてソース・データベースに接続し、BACKUPコマンドを使用してバックアップを実行します。たとえば、BACKUP COPY OF DATABASEコマンドを使用して、ソース・ホストの/dsk1/bkpにあるバックアップをソース・ホストの/dsk2/dupにコピーします。この場合、RMANは、新しい場所のバックアップを自動的にカタログに追加します。

      PDBを複製する場合、BACKUP COPY OFコマンドのPLUGGABLE DATABASE構文を使用して、PDBのバックアップのみをコピーします。

    • オペレーティング・システム・ユーティリティを使用して、バックアップを新しい場所に転送します。たとえば、FTPを使用して、ソース・ホストの/dsk1/bkpから宛先ホストの/dsk2/dupにバックアップを転送するか、cpコマンドを使用して、ソース・ホストの/dsk1/bkpからソース・ホストの/dsk2/dupにバックアップをコピーします。後で、RMANをTARGETとしてソース・データベースに接続し、CATALOGコマンドを使用して、手動で転送したバックアップの場所で、RMANのリポジトリを更新します。

25.3 補助インスタンスの準備

RMANは、補助インスタンスを使用して複製データベースを作成します。複製を開始する前に、補助インスタンスを準備する必要があります。複製シナリオに応じて、この項で説明する一部またはすべてのタスクを実行する必要があります。

補助インスタンスの準備には、次のタスクが含まれます。

25.3.1 複製データベースのディレクトリの作成

宛先ホスト上で、複製データベース・ファイルの格納に使用されるディレクトリを作成する必要があります。これには、データファイル、制御ファイル、オンラインREDOログ・ファイルおよび一時ファイルを格納するディレクトリが含まれます。

25.3.2 補助インスタンス用の初期化パラメータ・ファイルの作成

補助インスタンスを起動するには、初期化パラメータ・ファイルが必要です。次のいずれかの方法を使用して、初期化パラメータ・ファイルを作成します。
  • 初期化パラメータ・ファイルを手動で作成します。

    ソース・データベースがサーバー・パラメータ・ファイルを使用していない場合は、補助インスタンスに必要なすべてのパラメータをテキストベースの初期化パラメータ・ファイルで設定する必要があります。

    補助インスタンス用の初期化パラメータ・ファイルの作成手順を参照してください。

  • 補助インスタンスのソース・データベースの初期化パラメータ・ファイルを使用するように、RMANに指定します。

    この方法は、ソース・データベースでサーバー・パラメータ・ファイルが使用されている場合にのみ適用できます。ソース・データベースからの初期化パラメータ・ファイルのコピーは、複製データベースでソースと同じパラメータ設定を使用する必要がある場合に便利です。

    ソース・データベースからのサーバー・パラメータ・ファイルのコピーを参照してください。

    注意:

    複製にテキストベースの初期化パラメータ・ファイルではなく、サーバー・パラメータ・ファイルを使用することをお薦めします。

補助インスタンスのクライアント側パラメータ・ファイルは、複製を実行するRMANクライアントと同じホスト上に配置する必要があります。

初期化パラメータ・ファイルは、補助インスタンスのデフォルトの場所に作成することをお薦めします。Windowsの場合、デフォルトの初期化パラメータ・ファイルはORACLE_HOME/dbs/initORACLE_SID.oraで、Linuxの場合のファイル名はORACLE_HOME\database\intiORACLE_SID.oraです。

25.3.2.1 補助インスタンス用の初期化パラメータ・ファイルの作成手順

初期化パラメータ・ファイルには、少なくともDB_NAMEDB_DOMAINの初期化パラメータが含まれる必要があります。必要に応じて、追加パラメータを指定できます。初期化パラメータ・ファイルが、複製を実行するRMANクライアントと同じホストに存在することを確認します。

補助インスタンス用の初期化パラメータ・ファイルを作成する手順
  1. 次のいずれかの操作を行います。
    • 初期化パラメータ・ファイルをソース・ホストから宛先ホストにコピーし、オペレーティング・システムに固有のデフォルトの場所に配置して、DB_NAMEおよびDB_DOMAINを変更します。

      CDBを複製する場合、ENABLE_PLUGGABLE_DATABASEパラメータが存在し、TRUEに設定されていることを確認します。

      ソース・データベースからのサーバー・パラメータ・ファイルのコピーを参照してください。

    • 次の手順を実行します。
      1. テキスト・エディタを使用して、テキストベースの初期化パラメータ・ファイルに使用するための空のファイルを作成し、オペレーティング・システム固有のデフォルトの場所に保存します。

      2. パラメータ・ファイルに、DB_NAMEDB_DOMAINを設定します。これらは、唯一の必須パラメータです。

        DB_DOMAIN設定によって、ネット・サービス名で接続する際に、デフォルトのデータベース・サービスに接続できるようになります。

      3. 補助インスタンスをCDBにする場合は、次のパラメータを設定します。
        ENABLE_PLUGGABLE_DATABASE=TRUE
  2. CONTROL_FILESDB_RECOVERY_FILE_DESTなどの様々な場所に関連するパラメータを設定します。

  3. Oracle Real Application Clustersのために必要な初期化パラメータなど、必要に応じてその他の初期化パラメータを設定します。

  4. 必須の環境変数(たとえばORACLE_HOMEORACLE_SID)を設定します。

  5. (オプション)次の条件のいずれかが満たされている場合は、複製データベース・ファイルの場所を指定する初期化パラメータを設定します。

    • ソース・ホストと宛先ホストが同じである(ローカル・ホストへの複製)。

    • 複製データベースが、ソース・ホストとは異なるディレクトリ構造を使用して、データベース・ファイルを保存している。

    複製データベース・ファイルに別の名前を指定するために使用した方法に応じて、初期化パラメータ・ファイルに次のパラメータを1つ以上含めます: CONTROL_FILESDB_FILE_NAME_CONVERTLOG_FILE_NAME_CONVERTDB_CREATE_FILE_DESTDB_CREATE_ONLINE_FILE_DEST_nおよびRECOVERY_FILE_DEST

    注意:

    宛先ホストと補助インスタンスのサーバー・セッションから、指定したすべてのパスにアクセスできることを確認することをお薦めします。

    複製データベースのデータベース・ファイル名の生成方法を参照してください。

  6. SQL*Plusを起動し、SYSDBA権限またはSYSBACKUP権限で補助インスタンスに接続します。補助インスタンスをNOMOUNTモードで起動します。ファイルがデフォルトの場所にある場合、STARTUPコマンドのPFILEパラメータは不要です。
    SQL> STARTUP NOMOUNT;

例25-1 補助インスタンス用のサンプル初期化パラメータ・ファイル

DB_NAME=dupdb
CONTROL_FILES=(/dup/oracle/oradata/prod/control01.ctl,
                dup/oracle/oradata/prod/control02.ctl)
DB_FILE_NAME_CONVERT=(/oracle/oradata/prod/,/dup/oracle/oradata/prod/)
LOG_FILE_NAME_CONVERT=(/oracle/oradata/prod/redo,/dup/oracle/oradata/prod/redo)
25.3.2.2 ソース・データベースからのサーバー・パラメータ・ファイルのコピー

ソース・データベースでサーバー・パラメータ・ファイルが使用されている場合、DUPLICATEコマンドにSPFILE句を含めて、ソース・データベースのサーバー・パラメータ・ファイルを補助インスタンスに対して使用するようにRMANに指定します。バックアップベースの複製の場合は、サーバー・パラメータ・ファイルはバックアップからリストアされます。アクティブなデータベースの複製の場合、サーバー・パラメータ・ファイルはソース・データベースから補助インスタンスにコピーされます。

ソース・データベースのサーバー・パラメータ・ファイルからコピーまたはリストアされた値は、DUPLICATESPFILEまたはSET句のPARAMETER_VALUE_CONVERTオプションを使用して変更できます。たとえば、SET句を使用して、補助インスタンスのサーバー・パラメータ・ファイルのDB_FILE_NAME_CONVERTパラメータの値を変更できます。

ソース・データベースでサーバー・パラメータ・ファイルを使用していない場合や、RMANがサーバー・パラメータ・ファイルのバックアップをリストアできない場合は、補助インスタンス用の初期化パラメータ・ファイルの作成手順で説明する方法で、テキストベースの初期化パラメータ・ファイルを手動で作成する必要があります。

ソース・データベースでテキストベースの初期化パラメータ・ファイルが使用されている場合は、DUPLICATEコマンドのPFILE句を使用して、ソース・データベースの初期化パラメータ・ファイルを補助インスタンスにコピーします。

25.3.3 補助インスタンス用のパスワード・ファイルの作成

補助インスタンスへの接続は、オペレーティング・システム認証またはパスワード・ファイル認証を使用して確立できます。バックアップベースの複製の場合、パスワード・ファイルを作成するか、オペレーティング・システム認証を使用して補助インスタンスに接続できます。アクティブなデータベースの複製の場合は、パスワード・ファイル認証を使用する必要があります。

パスワード・ファイル認証を使用してデータベースに接続するには、そのデータベースのパスワード・ファイルを作成する必要があります。リモート・ホストへの複製でも、パスワード・ファイルの設定は必須です。

注意:

パスワード・ファイルは、RMAN複製を使用してスタンバイ・データベースを作成するときに常にコピーされます。その他すべての場合では、DUPLICATEコマンドにPASSWORD FILEを指定した場合にのみ、パスワード・ファイルがコピーされます。

次のいずれかのオプションを使用して、宛先ホストの補助インスタンス用にパスワード・ファイルを作成します。

  • オペレーティング・システムに固有のユーティリティを使用して、ソース・データベースのパスワード・ファイルを宛先ホストにコピーし、名前を補助インスタンス名と一致するように変更します。これは、ソース・ホストと宛先ホストが同じプラットフォームにある場合にのみ該当します。
  • パスワード・ファイルを手動で作成します。SYSDBAユーザーおよびSYSBACKUPユーザーのパスワードが、ソース・データベースと補助インスタンスで同じになっていることを確認します。

    パスワード・ファイルの手動による作成の詳細は、『Oracle Database管理者ガイド』を参照してください。

  • orapwdユーティリティを使用して、パスワード・ファイルを作成します。SYSBACKUPオプションは、新しいパスワード・ファイルでSYSBACKUPエントリを作成します。

    orapwdユーティリティの使用の詳細は、『Oracle Database管理者ガイド』を参照してください。

  • DUPLICATE... FROM ACTIVE DATABASEコマンドにPASSWORD FILEオプションを指定します。

    RMANは、ソース・データベース・パスワード・ファイルを宛先ホストにコピーし、既存のすべての補助インスタンスのパスワード・ファイルを上書きします。この方法は、複製データベースで使用できるようにするパスワードが、ソース・データベースのパスワード・ファイルに複数含まれている場合に有効です。

    アクティブなデータベースの複製を使用する際は、パスワード・ファイルにSYSユーザーとSYSBACKUPユーザーのために、2つ以上のパスワードを含める必要があります。これらのパスワードは、ソース・データベースのパスワードと一致する必要があります。

    注意:

    FROM ACTIVE DATABASEオプションを使用してスタンバイ・データベースを作成する場合、RMANは、パスワード・ファイルを常にスタンバイ・ホストにコピーします。

25.3.4 ソース・データベースと補助インスタンス間のOracle Net接続の確立

次の条件のいずれかが該当する場合は、Oracle Net Servicesを介して補助インスタンスを使用できる必要があります。
  • RMANクライアントが宛先ホスト以外のホストから実行されている

  • 複製方法としてアクティブなデータベースの複製が選択されている

  • 宛先ホストがソース・ホストとは異なる

アクティブなデータベースの複製を実行するには、SYSDBAまたはSYSBACKUP権限とネット・サービス名を使用して補助インスタンスに接続する必要があります。RMANがTARGETとして接続しているソース・データベースは、このネット・サービス名を使用して、補助データベース・インスタンスに直接接続します。

Oracle Netの接続を確立し静的リスナーを設定する手順

  • データベースに接続するようにクライアントを構成し、リスナーの静的サービス情報を追加するには、『Oracle Database Net Services管理者ガイド』の手順を実行します。

例25-2 例: ソース・データベースと補助インスタンス間のOracle Net接続の確立

ソース・データベースのDB_NAMEがsrcで、ソース・ホスト名がsrc.example.comと仮定します。補助インスタンスのDB_NAMEdupで、補助インスタンスはホストdup.example.com上に作成されます。

次の手順を使用して、ソース・データベースと補助インスタンス間のOracle Net接続を確立します。
  1. ソース・データベースのtnanames.oraファイルに、複製データベースに対応する次のエントリを追加します。
    dupdb = (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dup.example.com)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=dup)))
  2. 宛先ホストの$ORACLE_HOME/admin/networkフォルダに、tnsnames.oraファイルを作成します。ソース・データベースに対応する次のエントリを追加します。
    srcdb = (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=src.example.com)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=src)))

25.3.5 補助インスタンスの起動

補助インスタンス用の初期化パラメータ・ファイルの作成で作成された初期化パラメータ・ファイルを使用して、補助インスタンスを起動します。RMANは、複製の一環として補助インスタンスを停止して再起動します。このため、補助インスタンス用にサーバー側の初期化パラメータ・ファイルをデフォルトの場所に作成することをお薦めします。サーバー側の初期化パラメータ・ファイルがデフォルトの場所にない場合は、DUPLICATEコマンドのPFILEパラメータに、クライアント側の初期化パラメータ・ファイルを指定する必要があります。

注意:

補助インスタンスに制御ファイルがないため、このインスタンスはNOMOUNTモードでのみ起動できます。制御ファイルの作成、補助インスタンスのマウントまたはオープンは実行しないでください。

補助インスタンスを起動する手順

  1. RMANを起動します。
    % rman
  2. SYSDBA権限またはSYSBACKUP権限を持つユーザーとして、補助インスタンスに接続します。次の例では、パスワード・ファイル認証を使用して、補助インスタンスに接続します。
    RMAN> CONNECT SYS@dupdb AS SYSDBA;
    次の例では、オペレーティング・システム認証を使用して、SYSBACKUP権限で補助インスタンスに接続します。
    RMAN> CONNECT / AS SYSBACKUP;
  3. 補助インスタンスをNOMOUNTモードで起動します。
    RMAN > STARTUP FORCE NOMOUNT;

25.3.6 宛先ホストでOracleキーストアを使用可能にする

ソース・データベースで透過的暗号化が構成されている場合、補助インスタンスでソース・データベースのOracleソフトウェア・キーストアを使用できることを確認する必要があります。Oracleソフトウェアのキーストアには、暗号化されたバックアップ(バックアップベースの複製用)とデータベース/表領域データ(TDEで暗号化されたデータベースまたは表領域のアクティブなデータベースの複製用)の復号化に使用するTDEマスター・キーが含まれています。ソース・データベースのキーストアを、手動で宛先ホストにコピーします。

複製データベースでのキーストアの要件は次のとおりです。

  • キーストアは、デフォルトの場所、またはsqlnet.oraファイルに指定された場所にある必要がある。

  • データベースがファイルにアクセスできるように、Oracleキーストア・ファイルに権限を設定する必要がある。

  • 複製中に補助インスタンスは再起動されるため、Oracleソフトウェア・キーストアは使用できなくなります。補助インスタンスからキーストアへのアクセスを確保するため、sqlnet.oraファイルのENCRYPTION_WALLET_LOCATIONパラメータをキーストアの場所をポイントするように設定します。

  • Oracle Real Application Clusters (Oracle RAC)では、補助インスタンスをOracle Grid Infrastructureリスナーに静的に登録し、Oracle Gridホームのsqlnet.oraファイル内のENVSパラメータを使用して、キーストアの場所とデータベースの一意の名前を設定する環境変数を指定します。

    次の例では、sqlnet.oraENVSパラメータを設定して、キーストアの場所と一意のデータベース名を指定します。

     (ENVS="ORACLE_UNQNAME=cdbrptl, ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/etc/ORACLE/WALLETS/cdbrpt1)))")
  • ソース・データベースでパスワードベースのソフトウェア・キーストア(自動ログイン・ソフトウェア・キーストアではなく)が使用される場合、複製を開始する前に、キーストア・パスワードを指定する必要があります。

    DECRYPTION WALLET OPEN IDENTIFIED BY句を指定してSETコマンドを使用し、キーストアをオープンするために使用するパスワードを指定します。

    次のコマンドは、キーストアを開くために使用するパスワードを指定します(passwordは、入力する実際のパスワードのプレースホルダ)。
    SET DECRYPTION WALLET OPEN IDENTIFIED BY password;

関連項目:

25.4 データベースの複製

この項ではデータベース複製の実行方法について説明します。CDBおよびPDBの複製手順は、非CDBの場合に使用される手順と微妙に異なる点があります。

注意:

同じソース・データベースを使用して同時に複製操作を実行することは、サポートされていません。

25.4.1 データベース全体の複製

DUPLICATEコマンドを使用して、データベースを複製します。

データベースを複製する手順

  1. 選択した複製方法の前提条件を満たしていることを確認します。

    データベースの複製の前提条件を参照してください。

  2. データベースの複製を開始する前に必要な計画タスクを完了します。

    データベースの複製の計画を参照してください。

  3. 複製データベースの作成時に使用される補助インスタンスを準備します。

    補助インスタンスの準備を参照してください。

  4. RMANを起動して、必要なデータベースに接続します。複製方法によっては、ターゲット・データベース、補助インスタンスまたはリカバリ・カタログの1つ以上への接続が必要になる場合があります。

    RMANの起動およびデータベースへの接続を参照してください。

  5. ソース・データベースを適切な状態に設定します(必要な場合)。

    ソース・データベースの適切な設定を参照してください。

  6. (オプション) RMANチャネルを構成して、複製のパフォーマンスを向上させます。チャネルでは、データベースを複製する主な作業を実行します。

    複製で使用するためのRMANチャネルの構成を参照してください。

  7. DUPLICATEコマンドを使用して、ソース・データベースを複製します。

    DUPLICATEコマンドを使用したデータベースの複製を参照してください。

アクティブなデータベースの複製を実行する場合、ソース・データベースから複製データベースへのファイル転送に使用されるバックアップ・セットを暗号化または圧縮できます。また、マルチセクション・バックアップを使用してバックアップ・セットをソース・データベース上でパラレルに作成できます。

25.4.2 ソース・データベース表領域のサブセットの複製

ソース・データベース内の指定した表領域を複製できます。

データベースのいくつかの表領域を複製する手順

  1. 選択した複製方法の前提条件を満たしていることを確認します。

    データベースの複製の前提条件を参照してください。

  2. データベースの複製を開始する前に必要な計画タスクを完了します。

    データベースの複製の計画を参照してください。

  3. 複製データベースの作成時に使用される補助インスタンスを準備します。

    補助インスタンスの準備を参照してください。

  4. RMANを起動して、必要なデータベースに接続します。複製方法によっては、ターゲット・データベース、補助インスタンスまたはリカバリ・カタログの1つ以上への接続が必要になる場合があります。
  5. ソース・データベースを適切な状態に設定します(必要な場合)。

    ソース・データベースの適切な設定を参照してください。

  6. (オプション) RMANチャネルを構成して、複製のパフォーマンスを向上させます。チャネルでは、データベースを複製する主な作業を実行します。
  7. 表25-1に示すオプションを1つ以上指定して、DUPLICATEコマンドを実行します。

    コピーされる表領域に影響を与えるその他の要因には、OFFLINE NORMALオプションが含まれます。複製の前にOFFLINE NORMALオプションによって表領域がオフラインにされた場合、RMANは関連するデータファイルを複製せず、その複製データベースの表領域に対してDROP TABLESPACE文を発行します。したがって、これらの表領域を除外するオプションを指定する必要はありません。

    注意:

    RMANは、NORMAL以外のいずれのオプションを使用してオフラインにされた表領域も複製します(SKIP TABLESPACEオプションで名前が指定されている場合を除く)。自動的にスキップされるのは、OFFLINE NORMAL表領域のみです。バックアップベースの複製を使用する場合は、オンライン表領域のときと同様に、RMANにこれらの表領域の有効なバックアップが必要です。

例25-3 読取り専用表領域の除外

この例では、データベースの複製中に読取り専用表領域をスキップする方法を示します。

DUPLICATE TARGET DATABASE TO dupdb
FROM ACTIVE DATABASE
SKIP READONLY;

例25-4 指定した表領域の除外

この例では、データベースの複製中にtoolsという名前の表領域をスキップする方法を示します。

DUPLICATE TARGET DATABASE
 TO dupdb
FROM ACTIVE DATABASE
SKIP TABLESPACE tools;

例25-5 指定した表領域の追加

TABLESPACEオプションを使用すると、指定したデータベースに含める表領域を指定できます。残りの表領域はスキップされます。複製された表領域のサブセットは、自己完結型である必要があります。結果として、スキップされた表領域のセットには、UNDOセグメントやマテリアライズド・ビューは含まれていない必要があります。

この例では、自己完結型であると想定されるusers表領域が含められ、SYSTEM表領域、SYSAUX表領域およびUNDOセグメントを含む表領域以外の、すべての表領域が除外されます。

DUPLICATE TARGET DATABASE
TO dupdb
FROM ACTIVE DATABASE
  TABLESPACE users;

例25-6 UNDOセグメントを含む指定した表領域の追加

この例では、リカバリ・カタログ接続ではなく、ターゲット接続を使用してバックアップベースの複製が実行されます。また、複製の対象として表領域のサブセットを指定します。この場合、ターゲット・データベースが開いていないと、RMANではUNDOセグメントを含む表領域の名前を取得できません。したがって、これらの表領域に対してUNDO TABLESPACEオプションを指定する必要があります。users表領域は、自己完結型である必要があります。結果として、スキップされた表領域のセットには、UNDOセグメントやマテリアライズド・ビューは含まれていない必要があります。

DUPLICATE TARGET DATABASE TO dupdb
 TABLESPACE users
 UNDO TABLESPACE undotbs;

25.4.3 Oracle RACデータベースの複製

Oracle Real Application Clusters (Oracle RAC)データベースの複製手順は、データベースの複製に使用される手順とは微妙に異なる点があります。

  1. 選択した複製方法の前提条件を満たしていることを確認します。

    データベースの複製の前提条件を参照してください。

  2. データベースの複製を開始する前に必要な計画タスクを完了します。

    データベースの複製の計画を参照してください。

  3. 複製データベースの作成時に使用される補助インスタンスを準備します。

    Oracle Real Application Clusters (Oracle RAC)データベースの複製では、補助データベースのCLUSTER_DATABASE初期化パラメータをFALSEに設定します。複製完了後に、このパラメータはTRUEに再設定できます。

    補助インスタンスの準備を参照してください。

  4. RMANを起動して、必要なデータベースに接続します。複製方法によっては、ターゲット・データベース、補助インスタンスまたはリカバリ・カタログの1つ以上への接続が必要になる場合があります。
  5. ソース・データベースを適切な状態に設定します(必要な場合)。

    ソース・データベースの適切な設定を参照してください。

  6. (オプション) RMANチャネルを構成して、複製のパフォーマンスを向上させます。チャネルでは、データベースを複製する主な作業を実行します。
  7. DUPLICATEコマンドを使用して、ソース・データベースを複製します。

    DUPLICATEコマンドを使用したデータベースの複製を参照してください。

    注意:

    Oracle RACデータベースの複製に関する詳細は、My Oracle SupportのNote 1617946.1 (https://support.oracle.com/rs?type=doc&id=1617946.1)を参照してください。

25.4.4 スパース・データベースの複製

スパース・データベースの複製プロセスは、暗黙的リストアで始まり、スパース・データファイルが含まれるデータベースの複製で終わります。

スパース・データファイルのバッキング・ファイルが複製で使用できることを確認します。

注意:

スパース・データベースでは、アクティブなデータベースの複製は許可されません。

スパース・データベースを複製する手順

  1. 選択した複製方法の前提条件を満たしていることを確認します。

    データベースの複製の前提条件を参照してください。

  2. データベースの複製を開始する前に必要な計画タスクを完了します。

    データベースの複製の計画を参照してください。

  3. 複製データベースの作成時に使用される補助インスタンスを準備します。

    Oracle Real Application Clusters (Oracle RAC)データベースの複製では、補助データベースのCLUSTER_DATABASE初期化パラメータをFALSEに設定します。複製完了後に、このパラメータはTRUEに再設定できます。

    補助インスタンスの準備を参照してください。

  4. RMANを起動して、必要なデータベースに接続します。複製方法によっては、ターゲット・データベース、補助インスタンスまたはリカバリ・カタログの1つ以上への接続が必要になる場合があります。
  5. ソース・データベースを適切な状態に設定します(必要な場合)。

    ソース・データベースの適切な設定を参照してください。

  6. (オプション) RMANチャネルを構成して、複製のパフォーマンスを向上させます。チャネルでは、データベースを複製する主な作業を実行します。
  7. スパース・データベースに対してDUPLICATEコマンドを実行します。
    次のコマンドは、db1というスパース・データベースを複製します。
    DUPLICATE FROM SPARSE DATABASE 'DB1' TO 'DUP1';

    注意:

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

25.4.5 複製で使用するためのRMANチャネルの構成

データベース複製の主な作業は、RMANチャネルによって実行されます。各チャネルが、複製タスクを実行するOracle Databaseのサーバー・セッションに対応します。複製方法に応じて、RMANは補助チャネルかターゲット・チャネルを使用します。
次の方法のいずれかを使用して、チャネルを構成します。
  • CONFIGUREコマンドを使用したチャネルの自動割当て

  • ALLOCATEコマンドを使用したチャネルの手動割当て

自動チャネルを構成していない場合は、複製を開始する前に1つ以上のチャネルを手動で割り当てられます。チャネルを割り当てるALLOCATEコマンドは、DUPLICATEコマンドと同じRUNブロック内にある必要があります。

ソース・データベース・チャネルでAUXILIARYオプションが指定されていなくても、RMANは、宛先ホスト上の複製に、ソース・データベースと同じチャネル構成を使用できます。

25.4.5.1 バックアップベースの複製のためのチャネル構成

バックアップベースの複製の場合、複製の主な作業は補助チャネルによって行われます。補助チャネルは、宛先ホスト上の補助インスタンスのサーバー・セッションに対応しています。RMANは、チャネルを使用して補助インスタンスのバックアップをリストアします。

複製操作のパフォーマンスを向上するには、追加の補助チャネルを構成します。補助チャネルを明示的に構成しない場合、RMANは、宛先ホストの複製にソース・データベースと同じチャネル構成を使用します。ソース・データベースのチャネルでAUXILIARYオプションを指定しなくても、RMANでこれらの構成を利用できます。

以下の追加の考慮事項に注意してください。

  • ディスクベースのバックアップでは、追加チャネルを割り当てることで複製操作の速度をより高速にできます。

    テープベースの複製では、チャネルの割当ては、使用できるテープ・デバイスの数と同じ数まで行えます。

  • 補助チャネルのチャネル・タイプ(DISKまたはsbt)は、バックアップ・メディアと一致している必要があります。通常、ディスク・バックアップ用に割り当てるチャネルの数を増やすと、複製が高速になります。ディスクが最大の読取り/書込み速度に達した後、複製の速度を速くすることはできません。テープ・バックアップの場合は、チャネルの数を使用可能なデバイスの数に制限します。

  • ただし、補助チャネルに特別なパラメータが必要な場合(別のメディア・マネージャを指す場合など)は、CONFIGUREコマンドのAUXILIARYオプションを指定して自動チャネルを構成します。

  • ターゲット接続もリカバリ・カタログも使用せずに複製を実行する場合、ディスク・チャネルのみが使用できます。ユーザーによって割り当てられたチャネルが使用されていない場合、最初に制御ファイルをリストアするチャネルは1つのみです。制御ファイルがマウントされた後は、割り当てられるチャネルの数はリストアされた制御ファイルの構成によって異なります。

  • DUPLICATEコマンドのUSING BACKUPSET句を省略したとき、割り当てられた補助チャネルの数がターゲット・チャネルの数以上の場合、RMANは引き続きバックアップ・セットによるアクティブなデータベース複製を使用します。

  • 補助チャネルが、必要なデータファイルとアーカイブREDOログ・ファイルのバックアップにアクセスできない場合、複製は失敗します。

例: ディスクベースのバックアップ用補助チャネルの構成

次の例では、3つの補助チャネルを割り当ててデータベースをディスクに複製します。

run
{
ALLOCATE AUXILIARY CHANNEL c1 DEVICE TYPE disk;
ALLOCATE AUXILIARY CHANNEL c2 DEVICE TYPE disk;
ALLOCATE AUXILIARY CHANNEL c3 DEVICE TYPE disk;
. . .
DUPLICATE DATABASE . . . ;
}
25.4.5.2 アクティブなデータベースの複製のためのチャネル構成

アクティブなデータベースの複製では、ソース・データベースのチャネル構成を変更したり、補助チャネルを構成する必要はありません。ただし、RMANがネットワークを介してパラレルにファイルをコピーできるよう、ソース・データベースのディスク・チャネルのパラレル化設定を増加させる必要がある場合があります。

アクティブなデータベースの複製に使用される複製方法のタイプによって、複製の主な作業をどのチャネルが実行するかが決まります。アクティブなデータベースの複製の実行にイメージ・コピーが使用される場合、主な作業はターゲット・チャネルによって実行されます。複製のパフォーマンスを向上させるには、ソース・データベースに複数のターゲット・チャネルを構成します。バックアップ・セットを使用してアクティブなデータベース複製が実行される場合、複製に関する主な作業は補助チャネルによって実行されます。このため、追加の補助チャネルを割り当てることをお薦めします。補助チャネルの数は、ターゲット・チャネルの数以上である必要があります。アクティブな複製にバックアップ・セット使用することによってパラレル可も可能になり、複製プロセスの速度を向上させることができます。

25.4.6 ソース・データベースの適切な設定

注意:

ターゲット接続を行わないバックアップベースの複製を実行する場合には、RMANの起動およびデータベースへの接続に進みます。

RMANがTARGETとしてソース・データベースに接続されている場合、複製を行うには、ソース・データベースが適切な状態に設定されている必要があります。

ソース・データベースが適切な状態にあることを確認する手順
  1. ソース・データベース・インスタンスをマウントまたはオープンしていない場合は、マウントまたはオープンします。
  2. アクティブなデータベースの複製を実行している場合は、次の追加要件を満たしていることを確認します。
    • ソース・データベースがオープン状態の場合は、アーカイブ処理を有効にする必要があります。

    • ソース・データベースがオープンしていない場合は、データベースにインスタンス・リカバリは必要ありません。

25.4.7 RMANの起動およびデータベースへの接続

この項では、RMANクライアントを起動し、複製方法の選択で選択した複製方法で必要となるデータベース・インスタンスに接続します。RMANクライアントは、ネットワーク経由で必要なデータベースに接続可能であるかぎり、任意のホスト上に配置できます。

RMANを起動し、ターゲット・インスタンスおよび補助インスタンスに接続する手順

  1. 必要なデータベース・インスタンスに接続可能なホスト上で、RMANを起動します。

    たとえば、宛先ホストのオペレーティング・システム・プロンプトで、次のコマンドを入力します。

    % rman

  2. RMANプロンプトで、選択した複製方法に必要となるデータベース・インスタンスに対して、CONNECTコマンドを実行します。

    注意:

    CDB全体、または1つ以上のPDBを複製する場合は、両方のインスタンスのrootに接続します。

    • イメージ・コピーを使用したアクティブなデータベースの複製の場合、ソース・データベースにTARGETとして、補助インスタンスにAUXILIARYとして接続する必要があります。AUXILIARYインスタンスに接続するには、ネット・サービス名を指定する必要があります。リカバリ・カタログ接続は任意です。リカバリ・カタログ接続は任意です。両方のインスタンスで、複製を実行しているユーザーのパスワードを同じにする必要があります。SYSDBA権限またはSYSBACKUP権限を持つユーザーは、誰でも複製を実行できます。

    • バックアップ・セットを使用したアクティブなデータベースの複製の場合、ネット・サービス名を使用してソース・データベースにTARGETとして接続する必要があります。補助インスタンスは、このネット・サービス名を使用してソース・データベースに接続し、複製に必要なバックアップ・セットを取得します。補助インスタンスにAUXILIARYとして接続します。リモートから補助インスタンスに接続するか、またはDUPLICATEコマンドのPASSWORD FILEオプションを使用する場合は、ネット・サービス名で補助インスタンスに接続します。両方のインスタンスで、複製を実行しているユーザーのパスワードを同じにする必要があります。SYSDBA権限またはSYSBACKUP権限を持つユーザーは、誰でも複製を実行できます。リカバリ・カタログ接続は任意です。

    • ターゲット接続を行わないバックアップベースの複製の場合、AUXILIARYとして補助インスタンスに接続し、CATALOGとしてリカバリ・カタログに接続する必要があります。

    • ターゲット接続を行うバックアップベースの複製の場合、TARGETとしてソース・データベースに接続し、AUXILIARYとして補助インスタンスに接続する必要があります。リカバリ・カタログは任意です。

    • ターゲットおよびリカバリ・カタログへの接続を行わないバックアップベースの複製の場合、AUXILIARYとして補助インスタンスに接続する必要があります。

    注意:

    TARGETとしてスタンバイ・データベースに接続することはできません。

例: アクティブなデータベースの複製実行中の必要なデータベースへの接続

この例では、ネット・サービス名を使用して、ソース・データベースと補助インスタンスへの接続が確立されます。ソース・データベースのネット・サービス名はsrcdbで、補助インスタンスではdupdbです。

宛先ホストから必要なデータベースに接続する手順
  1. 宛先ホストでRMANクライアントを起動します。

    % rman

  2. ソース・データベースにTARGETとして接続します。

    RMAN> CONNECT TARGET sys@srcdb;

    要求されたらソース・データベースのSYSユーザーのパスワードを入力します。

  3. 補助インスタンスにAUXILIARYとして接続します。

    RMAN> CONNECT AUXILIARY sys@dupdb;

    要求されたら補助インスタンスのSYSユーザーのパスワードを入力します。

25.4.8 DUPLICATEコマンドを使用したデータベースの複製

要件に応じて、次のDUPLICATEコマンドの構文のいずれかを使用します。
  • DUPLICATE DATABASEまたはDUPLICATE … ACTIVE DATABASE

    これらは、非CDBとCDBの複製に使用します。

  • DUPLICATE DATABASE …. FOR STANDBY

    これは、ソース・データベースを複製してスタンバイ・データベースを作成するために使用します。

    DUPLICATE DATABASE ... FOR FARSYNCコマンドを使用して、複製によってOracle Data Guardの遠隔同期インスタンスを作成します。

  • DUPLICATE PLUGGABLE DATABASE

    これは、rootへの接続中に1つ以上のPDBを複製するために使用します。

SET NEWNAMEコマンドを使用して複製データベース・ファイルに別の名前を指定する場合は、DUPLICATEコマンドとSET NEWNAMEコマンドをRUNブロック内に含めるようにします。

関連項目:

25.5 CDBおよびPDBの複製

DUPLICATEコマンドを使用して、マルチテナント・コンテナ・データベース(CDB)、1つ以上のプラガブル・データベース(PDB)、スパースCDBおよびスパースPDBを複製します。CDBおよびPDBの複製手順は、非CDBの複製手順と似ていますが、非CDBの複製とは微妙に異なる点があります。この項では、CDBとPDBの複製方法について説明します。

25.5.1 CDBの複製

マルチテナント・コンテナ・データベース(CDB)全体または1つ以上のプラガブル・データベース(PDB)の複製では、データベース全体の複製に記載されている非CDBの複製手順にごくわずかな調整のみが必要です。

CDBを複製する手順

  1. データベースの複製の計画に記載された計画タスクに次の変更を加えて実行します。

    バックアップに対する複製インスタンスへのアクセスの許可および共有ディスクを使用しないディスク・バックアップのアクセス可能化における次の変更点に注意してください。

    BACKUPコマンドのPLUGGABLE DATABASE構文を使用して、特定のPDBのバックアップのみをコピーします。

    次のコマンドでは、CDB全体のバックアップ・ファイルが転送されます。

    BACKUP COPY OF DATABASE; 

    次のコマンドでは、pdb3というPDBのバックアップ・ファイルのみが転送されます。

    BACKUP COPY OF PLUGGABLE DATABASE pdb3;
  2. 選択した複製方法の前提条件を満たしていることを確認します。

    データベースの複製の前提条件を参照してください。

  3. 補助インスタンスの準備に記載された説明に次の変更を加えて、補助インスタンスを準備します。

    • 補助インスタンスをCDBとして作成する必要があります。これには、初期化パラメータ・ファイルの次の宣言でインスタンスを開始します。

      enable_pluggable_database=TRUE

    • 補助インスタンスのために初期化パラメータ・ファイルを作成するように指示された場合は、ファイルをソース・データベースからコピーする必要があります。これによって、補助インスタンスはCDBでもあります。コピーしたら、次の手順を実行します。

      • DB_NAMEパラメータの変更

      • 様々な宛先/場所のパラメータの変更

    • 必要なインスタンスへの接続が指示されたら、SYSDBA権限またはSYSBACKUP権限を持つユーザーとしてrootに接続します。両方のインスタンスで、複製を実行しているユーザーのパスワードを同じにする必要があります。

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

    補助インスタンスとターゲット・データベースの両方で、複製を実行しているユーザーのパスワードを同じにする必要があります。

  5. ソース・データベースを適切な状態に設定します(必要な場合)。

    ソース・データベースの適切な設定を参照してください。

  6. RMANチャネルを構成します(必要な場合)。

    複製の主な作業は、RMANチャネルによって実行されます。追加チャネルを構成すると、複製のパフォーマンスが向上します。

    複製で使用するためのRMANチャネルの構成を参照してください。

  7. DUPLICATEコマンドを使用して、ソースCDBを複製します。

    DUPLICATEコマンドを使用したデータベースの複製を参照してください。

25.5.2 スパースCDBの複製

DUPLICATEコマンドを使用して、スパース・マルチテナント・コンテナ・データベース(CDB)を複製します。

スパースCDBを複製する手順

  1. データベースの複製の計画に記載された計画タスクに次の変更を加えて実行します。

    バックアップに対する複製インスタンスへのアクセスの許可および共有ディスクを使用しないディスク・バックアップのアクセス可能化における次の変更点に注意してください。

    BACKUPコマンドのPLUGGABLE DATABASE構文を使用して、特定のPDBのバックアップのみをコピーします。

    次のコマンドでは、CDB全体のバックアップ・ファイルが転送されます。

    BACKUP COPY OF DATABASE; 

    次のコマンドでは、pdb3というPDBのバックアップ・ファイルのみが転送されます。

    BACKUP COPY OF PLUGGABLE DATABASE pdb3;
  2. 「データベースの複製の前提条件」の説明に従って、選択された複製方法の前提条件が満たされていることを確認します。
  3. 補助インスタンスの準備に記載された説明に次の変更を加えて、補助インスタンスを準備します。
    • 補助インスタンスをCDBとして作成する必要があります。これには、初期化パラメータ・ファイルの次の宣言でインスタンスを開始します。

      enable_pluggable_database=TRUE

    • 補助インスタンスのために初期化パラメータ・ファイルを作成するように指示された場合は、ファイルをソース・データベースからコピーする必要があります。これによって、補助インスタンスはCDBでもあります。コピーしたら、次の手順を実行します。

      • DB_NAMEパラメータの変更

      • 様々な宛先/場所のパラメータの変更

    • 必要なインスタンスへの接続が指示されたら、SYSDBA権限またはSYSBACKUP権限を持つユーザーとしてrootに接続します。両方のインスタンスで、複製を実行しているユーザーのパスワードを同じにする必要があります。

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

    補助インスタンスとターゲット・データベースの両方で、複製を実行しているユーザーのパスワードを同じにする必要があります。

  5. ソース・データベースを適切な状態に設定します(必要な場合)。

    ソース・データベースの適切な設定を参照してください。

  6. RMANチャネルを構成します(必要な場合)。

    複製の主な作業は、RMANチャネルによって実行されます。追加チャネルを構成すると、複製のパフォーマンスが向上します。

    複製で使用するためのRMANチャネルの構成を参照してください。

  7. FROM SPARSEオプションを指定してDUPLICATEコマンドを実行します。

    たとえば、次のコマンドでは、CDBをcdb2に複製します。

    DUPICATE FROM SPARSE TO cdb2 DATABASE;

25.5.3 PDBの複製

RMANでは、DUPLICATEコマンドを使用して、PDBを複製できます。単一のPDB、PDBのセットまたはPDB内の表領域を複製できます。SYSDBAまたはSYSBACKUP権限を付与されたユーザーとして、CDBの rootにログインする必要があります。

PDBを複製するには、補助インスタンスをCDBとして作成する必要があります。これには、初期化パラメータ・ファイルでenable_pluggable_database=TRUEを宣言して補助インスタンスを開始します。1つまたは複数のPDBを複製すると、root (CDB$ROOT)およびCDBシード(PDB$SEED)も複製されます。複製されたデータベースは、root、CDBシードおよび複製されたPDBを含む、完全に機能するCDBです。表25-3に、PDBまたはPDB内の表領域を複製するために使用できるオプションを示します。

表25-3 PDBの複製のオプション

DUPLICATEのオプション 説明

PLUGGABLE DATABASE pdb_name

CDB内の指定したPDBを複製します。複数のPDBを複製する場合は、カンマ区切りのリストを使用してください。

SKIP PLUGGABLE DATABASE pdb_name

pdb_nameで指定したPDBを除き、CDB内のすべてのPDBが複製されます。除外する複数のPDBを指定する場合は、カンマ区切りのリストを使用してください。

TABLESPACE pdb_name:tablespace_name

PDB内の指定した表領域を複製します。表領域名には、その表領域が含まれるPDBの名前を接頭辞として付ける必要があります。PDBの名前を省略すると、デフォルトはrootになります。

SKIP TABLESPACE pdb_name:tablespace_name

指定したPDB内の指定した表領域を除き、CDB内のすべての表領域が複製されます。

PDBを複製する手順

  1. データベースの複製の計画に記載された計画タスクに次の変更を加えて実行します。

    バックアップに対する複製インスタンスへのアクセスの許可および共有ディスクを使用しないディスク・バックアップのアクセス可能化における次の変更点に注意してください。

    BACKUPコマンドのPLUGGABLE DATABASE構文を使用して、特定のPDBのバックアップのみをコピーします。

    たとえば、次のコマンドでは、pdb3というPDBのバックアップ・ファイルのみが転送されます。

    BACKUP COPY OF PLUGGABLE DATABASE pdb3;

  2. 選択した複製方法の前提条件を満たしていることを確認します。

    データベースの複製の前提条件を参照してください。

  3. 補助インスタンスの準備に記載された説明に次の変更を加えて、補助インスタンスを準備します。

    • 補助インスタンスをCDBとして作成する必要があります。これには、初期化パラメータ・ファイルの次の宣言でインスタンスを開始します。

      enable_pluggable_database=TRUE

    • 補助インスタンスのために初期化パラメータ・ファイルを作成するように指示された場合は、ファイルをソース・データベースからコピーする必要があります。これによって、補助インスタンスはCDBでもあります。コピーしたら、次の手順を実行します。

      • DB_NAMEパラメータの変更

      • 様々な宛先/場所のパラメータの変更

    • 必要なインスタンスへの接続が指示されたら、SYSDBA権限またはSYSBACKUP権限を持つユーザーとしてrootに接続します。両方のインスタンスで、複製を実行しているユーザーのパスワードを同じにする必要があります。

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

    補助インスタンスとターゲット・データベースの両方で、複製を実行しているユーザーのパスワードを同じにする必要があります。

  5. ソース・データベースを適切な状態に設定します(必要な場合)。

    ソース・データベースの適切な設定を参照してください。

  6. RMANチャネルを構成します(必要な場合)。

    複製の主な作業は、RMANチャネルによって実行されます。追加チャネルを構成すると、複製のパフォーマンスが向上します。

    複製で使用するためのRMANチャネルの構成を参照してください。

  7. DUPLICATE … PLUGGABLE DATABASEコマンドを使用して、PDBを複製します。

例: PDBの複製

  • CDB cdb1に、PDB pdb1を複製するには、次のコマンドを使用します。

    DUPLICATE DATABASE TO cdb1 PLUGGABLE DATABASE pdb1;

  • データベースcdb1に、PDB pdb1、pdb3およびpdb4を複製するには、次のコマンドを使用します。

    DUPLICATE DATABASE TO cdb1 PLUGGABLE DATABASE pdb1,pdb3,pdb4;

  • PDB pdb3を除く、CDB内のすべてのPDBを複製するには、次のコマンドを使用します。

    DUPLICATE DATABASE TO cdb1 SKIP PLUGGABLE DATABASE pdb3;

25.5.4 スパースPDBの複製

DUPLICATEコマンドを使用して、スパース・プラガブル・データベース(PDB)を複製します。

スパースPDBを複製する手順
  1. データベースの複製の計画に記載された計画タスクに次の変更を加えて実行します。

    「バックアップに対する複製インスタンスへのアクセスの許可」および「共有ディスクを使用しないディスク・バックアップのアクセス可能化」で、BACKUPコマンドのPLUGGABLE DATABASE構文を使用して、特定のPDBのバックアップのみをコピーします。

    たとえば、次のコマンドでは、pdb3というPDBのバックアップ・ファイルのみが転送されます。

    BACKUP COPY OF PLUGGABLE DATABASE pdb3;

  2. 「データベースの複製の前提条件」の説明に従って、選択された複製方法の前提条件が満たされていることを確認します。
  3. 「補助インスタンスの準備」に記載された説明に次の変更を加えて、補助インスタンスを準備します。
    • 補助インスタンスをCDBとして作成します。これには、初期化パラメータ・ファイルの次の宣言でインスタンスを開始します。

      enable_pluggable_database=TRUE

    • 補助インスタンスのために初期化パラメータ・ファイルを作成するように指示された場合は、ファイルをソース・データベースからコピーする必要があります。これによって、補助インスタンスはCDBでもあります。コピーしたら、次の手順を実行します。

      • DB_NAMEパラメータの変更

      • 様々な宛先/場所のパラメータの変更

    • 必要なインスタンスへの接続が指示されたら、SYSDBA権限またはSYSBACKUP権限を持つユーザーとしてrootに接続します。両方のインスタンスで、複製を実行しているユーザーのパスワードを同じにする必要があります。

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

    補助インスタンスとターゲット・データベースの両方で、複製を実行しているユーザーのパスワードを同じにする必要があります。

  5. 「ソース・データベースの適切な設定」の説明に従って、ソース・データベースを適切な状態に設定します(必要な場合)。
  6. (オプション) 「複製で使用するためのRMANチャネルの構成」の説明のように、RMANチャネルを構成して、複製のパフォーマンスを向上させます。
  7. PLUGGABLE DATABASEおよびFROM SPARSEオプションを指定して、DUPLICATEコマンドを実行します。

    CDB cdb2にPDB pdb1を複製するには、次のコマンドを実行します。

    DUPLICATE FROM SPARSE to cdb2 PLUGGABLE DATABASE pdb1;

    注意:

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

25.5.5 PDB内での表領域の複製

PDB内の1つ以上の表領域をDUPLICATEコマンドを使用して複製できます。

PDB内の表領域を複製する手順

  1. PDBの複製の手順1から4が完了していることを確認します。

  2. DUPLICATEコマンドに、表25-3で説明したTABLESPACEオプションを付けて実行します。

    次に、PDBに含まれる表領域を複製する例を示します。

    PDB pdb1の一部であるusers表領域を複製するには、次のコマンドを使用します。

    DUPLICATE DATABASE TO cdb1 TABLESPACE pdb1:users;

    PDB pdb1と、PDB pdb2内のusers表領域を複製するには、次のコマンドを使用します。

    DUPLICATE DATABASE TO cdb1 PLUGGABLE DATABASE pdb1 TABLESPACE pdb2:users;

25.6 失敗後のDUPLICATEの再実行

RMANは、以前に失敗したDUPLICATEコマンドの繰返しであるDUPLICATEコマンドを自動的に最適化します。繰返しのDUPLICATEコマンドは、過去に正常にコピーされたデータファイルを検知し、それらのデータファイルを再度コピーしません。これは、バックアップベース(ターゲット接続の有無を問わない)の複製かアクティブなデータベースの複製かにかかわらず、すべての複製の形式に適用されます。DUPLICATEコマンドの自動最適化は、非常に大きなデータベースの複製中に障害が発生した場合に特に有効です。
DUPLICATEの処理を再起動する手順
  1. RMANを終了します。

  2. SQL*Plusを起動し、SYSDBA権限またはSYSBACKUP権限で補助インスタンスに接続します。最初に使用したものと同じSPFILE指定またはPFILE指定を使用して、補助インスタンスをNOMOUNTモードで起動します。この指定を最初に省略した場合は、再度省略します。

    この例は、/home/my_pfile.oraのパラメータを使用して補助インスタンスを開始します。

    STARTUP FORCE PFILE=/home/my_pfile.ora
  3. SQL*Plusを終了し、RMANを開始します。

  4. 最初と同じデータベースに接続します

  5. DUPLICATEコマンドを繰り返します。

    2番目のDUPLICATE操作は、次の処理を実行します。
    • 最初のDUPLICATEコマンドによって正常に複製されたデータファイルを検索します。

    • 再度複製される必要のない各データファイルに対して、次のようなメッセージを表示します。

      RMAN-05560: Using previous duplicated file /oradata/new/data01.f for datafile 1 with checkpoint SCN of 1654665
    • 欠落しているか、または不完全なデータファイルのみをリストアするため、コピーおよびリストアをすべてのデータファイルに対して再実行することを回避します。

    失敗したDUPLICATE操作からRMANが自動的にリカバリしないようにする場合、NORESUMEキーワードを指定してこの機能を無効にします。DUPLICATEの最初の起動時にNORESUMEキーワードを使用すると、後続の新しいデータベース用のDUPLICATEコマンドがこの自動最適化を使用することを防止できます。

25.7 例: データベースの複製

この項では、様々な複製方法を使用したデータベース複製の例について説明します。

25.7.1 例: バックアップ・セットによるアクティブなデータベースの複製を使用したリモートASMホストへのデータベースの複製

この例では、次のシナリオを想定しています。
  • ソース・ホストと宛先ホストは同一ではない。

  • ソース・データベースと複製データベースの両方で、データベース・ファイルの管理にASMを使用している。

  • 複製データベース・ファイルで、ソース・データベースとは異なるディレクトリ構造が使用されている。

  • ソース・ホストのネットワーク帯域幅に制限がある。

  • 複製プロセスの完了後に、複製データベースがオープン状態になっている必要がある。

次の手順を使用して、この例で説明するシナリオ向けの複製データベースを作成します。

  1. 「データベースの複製の計画」の説明のように複製を計画します。これには、次の作業が含まれます。
    • シナリオと要件に合った複製方法を選択します。

      ソース・ホストのネットワーク帯域幅が限られているため、バックアップ・セットを使用したアクティブなデータベースの複製を実行します。

    • 複製データベース・ファイルの命名計画を選択します。

      この例では、DB_CREATE_FILE_DEST初期化パラメータを使用して、複製データベース・ファイルの場所を指定します。

    • 補助インスタンスに6つの補助チャネルを構成します。

      この例では、ソース・データベースに2つのターゲット・チャネルが構成されています。RMANでバックアップ・セットを使用してアクティブなデータベースの複製を実行するには、補助チャネルの数がターゲット・チャネルの数以上である必要があります。

      「複製で使用するためのRMANチャネルの構成」を参照してください。

  2. 選択した複製方法の前提条件を満たしていることを確認します。

    「データベースの複製の前提条件」を参照してください。

  3. 「補助インスタンスの準備」に記載された説明に従って、補助インスタンスを準備します。
    • 宛先ホストにデータベース・ファイルを保存するディスク・グループを作成します。

      まだ作成されていない場合は、複製データベース・ファイルを保存するために+DGROUP2ディスク・グループを作成します。

    • 「補助インスタンス用のパスワード・ファイルの作成」で説明するように、パスワード・ファイルをソース・データベースから宛先データベースにコピーします。

    • ソース・データベースと補助インスタンス間のOracle Net Servicesの接続性を、静的リスナーを使用して設定します。

    • ソース・データベースのソフトウェア・キーストアを宛先ホストにコピーします。SETコマンドを使用して、パスワードベースのソフトウェア・キーストアをオープンするのに使用する必要があるパスワードを指定します。

      「宛先ホストでOracleキーストアを使用可能にする」を参照してください。

    • 「補助インスタンスの起動」で説明するように、補助インスタンスをNOMOUNTモードで起動します。
  4. RMANを起動し、ソース・データベースにTARGETとして、補助インスタンスにAUXILIARYとして接続します。

    %rman
    RMAN> CONNECT TARGET sys@srcdb as SYSDBA;
    RMAN> CONNECT AUXILIARY sys@dupdb AS SYSBACKUP;

    注意: アクティブなデータベースの複製の場合、補助インスタンスへの接続でもパスワード・ファイル認証を使用する必要があります。

  5. DUPLICATEコマンドを使用してデータベースを複製します。

    SPFILE句は、ソース・データベースのサーバー・パラメータ・ファイルを補助インスタンスにコピーするようにRMANに指示します。DB_CREATE_FILE_DESTパラメータを使用して、複製データベースに複製データベース・ファイルを保存するために使用するディスク・グループを指定します。

    DUPLICATE DATABASE to dupdb
    FROM ACTIVE DATABASE
    PASSWORD FILE
    SPFILE
    SET DB_CREATE_FILE_DEST='+DGROUP2';

25.7.2 例: イメージ・コピーによるアクティブなデータベースの複製を使用したリモート・ホストへのデータベースの複製

この例では、次のシナリオを想定しています。
  • ソース・ホストと宛先ホストは同一ではない。

  • 複製データベース・ファイルが、ソース・データベースとは異なるディレクトリ構造を使用している。

  • ソース・データベースと複製データベースでOracle Managed Files (OMF)を使用してデータベース・ファイルを作成している。

  • 複製プロセス中にソース・データベースが使用可能である必要がある。

  • 複製プロセスの完了後に、複製データベースがオープン状態になっている必要がある。

次の手順を使用して、この例で説明するシナリオ向けの複製データベースを作成します。
  1. 「データベースの複製の計画」の説明のように複製を計画します。これには、次の作業が含まれます。
    • シナリオと要件に合った複製方法を選択します。

      ソースと宛先間の帯域幅が限られているため、イメージ・コピーを使用してアクティブなデータベースの複製を実行します。

    • 複製データベース・ファイルの命名計画を選択します。

      この例では、DB_FILE_NAME_CONVERTおよびLOG_FILE_NAME_CONVERTの初期化パラメータを使用して、ソース・データベース・ファイル名を複製データベース・ファイル名に変換する方法を指定します。

    • イメージ・コピーを使用してアクティブなデータベースの複製を実行する場合、RMANは、補助チャネルが構成されていないか、補助チャネルの数がターゲット・チャネルの数より少ない場合にイメージ・コピーを使用します。このため、イメージ・コピーを使用したアクティブなデータベースの複製を実行するのに追加のチャネルを構成する必要はありません。

  2. 選択した複製方法の前提条件を満たしていることを確認します。

    「データベースの複製の前提条件」を参照してください。

  3. 「補助インスタンスの準備」に記載された説明に従って、補助インスタンスを準備します。
    • 宛先ホストにデータベース・ファイルを保存するディレクトリを作成します。

      この例では、データファイル、制御ファイルおよびサーバー・パラメータ・ファイルの保存用に/app/db_home2/databaseディレクトリを作成し、オンラインREDOログ・ファイルの保存用に/app/db_home2/logfilesディレクトリを作成します。

    • 宛先ホストで、補助インスタンス用に最小限の初期化パラメータ・ファイルを作成します。このファイルはinitdup.oraという名前で、/app/db_home1/databaseディレクトリに配置されます。これには次のエントリが含まれます。

      DB_NAME=dup
      DB_DOMAIN = dup.example.com

      「補助インスタンス用の初期化パラメータ・ファイルの作成」を参照してください。

    • 「補助インスタンス用のパスワード・ファイルの作成」で説明するように、パスワード・ファイルをソース・データベースから宛先ホストにコピーします
    • 「ソース・データベースと補助インスタンス間のOracle Net接続の確立」で説明するように、ソース・データベースと補助インスタンス間のOracle Net Servicesの接続性を、静的リスナーを使用して設定します。

    • 「補助インスタンスの起動」で説明するように、補助インスタンスをNOMOUNTモードで起動します。

  4. RMANを起動し、ソース・データベースにTARGETとして、補助インスタンスにAUXILIARYとして接続します。

    % rman
    RMAN> CONNECT TARGET sys@srcdb as SYSDBA;
    RMAN> CONNECT AUXILIARY sys@dupdb AS SYSBACKUP;

    注意: アクティブなデータベースの複製の場合、補助インスタンスへの接続でもパスワード・ファイル認証を使用する必要があります。

  5. DUPLICATEコマンドを使用してデータベースを複製します。SPFILE句にDB_FILE_NAME_CONVERTおよびLOG_FILE_NAME_CONVERTパラメータを含めて、ソース・データベースのサーバー・パラメータ・ファイルを補助インスタンスで使用するように指定します。

    複製データベース・ファイルは、OMFで生成された名前を使用して複製データベース内に保存されます。SPFILE句のPARAMETER_VALUE_CONVERTオプションは、パス名/app/db_home1/app_db_home2に変換される必要があることを指定します。

    DUPLICATE DATABASE TO dupdb
    FROM ACTIVE DATABASE
    PASSWORD FILE
    SPFILE PARAMETER_VALUE_CONVERT='/app/dbhome1','/app/db_home2'
    SET db_file_name_convert='/app/dbhome1/dbs','/app/db_home2/database/dbs'
    SET log_file_name_convert='/app/dbhome1/log','/app/db_home2/logfiles';

25.7.3 例: ターゲット接続またはリカバリ・カタログを使用しないバックアップベースの複製を使用したリモート・ホストへのデータベースの複製

この例では次のシナリオを使用します。
  • 制御ファイル、データファイルおよびアーカイブREDOログ・ファイルを含むソース・データベースの完全なバックアップが、宛先ホストの/backups/db_filesディレクトリで使用可能な状態にある。

  • ターゲット・データベースまたはリカバリ・カタログへの接続は使用できない。

  • ソース・ホストと宛先ホストは同一ではない。

  • 複製データベースが、複製データベース・ファイルを保存するために、ソース・データベースとは異なるディレクトリ構造を使用している。複製データベース・ファイルのデータファイルおよび制御ファイルは/oracle2/databaseディレクトリに保存され、オンラインREDOログ・ファイルは/oracle2/database/logsディレクトリに保存されている。

  • ソース・データベースのDB_NAMEdb12で、複製データベースはdup

  • 複製プロセスの完了後に、複製データベースがオープン状態になっている必要がある。

次の手順を使用して、この例で説明するシナリオ向けの複製データベースを作成します。

  1. 「データベースの複製の計画」の説明のように複製を計画します。これには、次の作業が含まれます。

    • シナリオと要件に合った複製方法を選択します。

      この例では、ターゲット接続またはリカバリ・カタログ接続のないバックアップベースの複製が実行されます。このため、BACKUP LOCATION句を使用して、ソース・データベースのバックアップの場所を指定します。

    • 複製データベースで、ソース・データベースとは異なるディレクトリ構造が使用されるため、複製データベース・ファイルの名前を生成するための計画を選択する必要があります。

      この例では、SET NEWNAME FOR DATABASEコマンドで、データファイルと制御ファイルの場所を指定します。DUPLICATEコマンドのLOGFILE句でオンラインREDOログ・ファイルの場所を指定します。

    • ソース・データベースで使用されているのと同じディレクトリ構造を使用して、必要なバックアップを宛先ホストにコピーします。

      この例では、データファイルとアーカイブREDOログ・ファイルのバックアップは宛先ホストの/backups/db_filesに保存し、制御ファイルとサーバー・パラメータ・ファイルのバックアップは/backups/cfに保存する必要があります。

  2. 選択した複製方法の前提条件を満たしていることを確認します。

    「データベースの複製の前提条件」を参照してください。

  3. 補助インスタンスを準備します。

    • 宛先ホストに複製データベース・ファイルを保存するディレクトリを作成します。

      この例では、データファイル、制御ファイルおよびサーバー・パラメータ・ファイルの保存用に/oracle2/databaseディレクトリを作成します。オンラインREDOログ・ファイルの保存用に/oracle2/database/logsディレクトリを作成します。

    • 補助インスタンス用に最低限の初期化パラメータ・ファイルを作成します。このファイルはinitdup.oraという名前で、/oracle2/databaseディレクトリに配置されます。このファイルには、特定の設定の他に、次のエントリを含める必要があります。
      DB_NAME = dup
      DB_DOMAIN = dupdb.example.com

      「補助インスタンス用の初期化パラメータ・ファイルの作成」を参照してください。

    • 補助インスタンス用のパスワード・ファイルをorapwdユーティリティを使用して作成します。複製データベースがリモート・ホスト上に作成されるため、パスワード・ファイルが必要です。

      「補助インスタンス用のパスワード・ファイルの作成」を参照してください。

    • ソース・データベースと補助インスタンス間のOracle Net Servicesの接続性を、静的リスナーを使用して設定します。これは、この例でデータベースをリモート・ホストに複製するために必要です。

      「ソース・データベースと補助インスタンス間のOracle Net接続の確立」を参照してください。

    • 「補助インスタンスの起動」で説明するように、補助インスタンスをNOMOUNTモードで起動します。

  4. RMANを起動し、ソース・データベースにTARGETとして、補助インスタンスにAUXILIARYとして接続します。

    %rman
    RMAN> CONNECT TARGET /
    RMAN> CONNECT AUXILIARY sys@dup AS SYSBACKUP;

    要求されたら、パスワードを入力します。

  5. DUPLICATEコマンドを使用してデータベースを複製します。

    BACKUP LOCATION句を使用して、ソース・データベースのバックアップの場所を指定します。SET NEWNAME FOR DATABASEおよびDUPLICATEコマンドをRUNブロックに含めます。LOGFILE句は、オンラインREDOログ・ファイルの名前と場所を指定します。

    run
    {
    set newname for database to '/oracle2/database/%b';
    duplicate database 'db12' to 'dup'
    logfile group 1 ('/oracle2/database/logs/r1.f','/ oracle2/database/logs/r2.f') size 4m reuse, 
            group 2 ('/ oracle2/database/logs/r3.f','/oracle2/database/logs/r4.f') size 4m reuse
    backup location '/backups/db_files';
    }

25.7.4 例: リカバリ・カタログによるバックアップベースの複製を使用したリモート・ホストへのデータベースの複製

この例では、次のシナリオを想定しています。
  • ソース・データベースの完全バックアップがソース・ホストで使用可能。データファイルとアーカイブREDOログ・ファイルのバックアップは/bkups/db_filesに保存されている。制御ファイルとサーバー・パラメータ・ファイルのバックアップは/bkups/cfに保存されている。
  • ソース・データベースへの接続は使用できないが、リカバリ・カタログへの接続は使用できる。
  • ソース・ホストと宛先ホストは同一ではない。宛先ホストではOMFが使用され、Oracle Databaseソフトウェアがインストールされている。

  • 複製データベースは、データベース・ファイルを、ソース・データベースとは異なるディレクトリ構造に保存している。複製データベースのデータベース・ファイルは/app/oracle2/dbsディレクトリに保存されている必要がある。

  • ソース・データベースのDB_NAMEoraで、そのネット・サービス名はoradb。複製データベースのDB_NAMEdupで、そのネット・サービス名はdupdb

  • ソース・データベースの読取り専用の表領域は、複製データベースから除外する必要がある。

  • 複製プロセスの完了後に、複製データベースがオープン状態にならない必要がある。

次の手順を使用して、この例で説明するシナリオ向けの複製データベースを作成します。
  1. 「データベースの複製の計画」の説明のように複製を計画します。これには、次の作業が含まれます。
    • シナリオと要件に合った複製方法を選択します。

      この例は、リカバリ・カタログ接続を使用したバックアップベースの複製が実行されます。

    • 複製データベース・ファイル名を生成するための計画を選択します。

      複製データベースでOMFが使用されているため、補助インスタンスの初期化パラメータ・ファイルでDB_CREATE_FILE_DESTパラメータを使用して、複製データベース・ファイルを保存するディレクトリを指定します。

    • DUPLICATEコマンドのNOOPEN句を使用して、複製の完了後にRESETLOGSを使用して複製データベースがオープン状態にならないように指定します。
    • ソース・データベースで使用されているのと同じディレクトリ構造を使用して、必要なバックアップを宛先ホストにコピーします。

      この例では、データファイルとアーカイブREDOログ・ファイルのバックアップは宛先ホストの/scratch/db_filesに保存し、制御ファイルとサーバー・パラメータ・ファイルのバックアップは/scratch/cfに保存する必要があります。

  2. 選択した複製方法の前提条件を満たしていることを確認します。

    「データベースの複製の前提条件」を参照してください。

  3. 「補助インスタンスの準備」に記載された説明に従って、補助インスタンスを準備します。
    • 宛先ホストに複製データベース・ファイルを保存するディレクトリを作成します。

      この例では、データファイル、制御ファイル、オンラインREDOログ・ファイルおよびサーバー・パラメータ・ファイルの保存用に/app/oracle2/dbsディレクトリを作成します。

    • 補助インスタンス用の初期化パラメータ・ファイルを作成します。このファイルはinitdup.oraという名前で、/app/oracle2/dbsディレクトリに配置されます。このファイルには、特定の設定の他に、次のエントリを含める必要があります。

      DB_NAME=dup
      DB_DOMAIN = dupdb.example.com
      DB_CREATE_FILE_DEST= /app/oracle2/dbs

      「補助インスタンス用の初期化パラメータ・ファイルの作成」を参照してください。

    • 補助インスタンス用のパスワード・ファイルをorapwdユーティリティを使用して作成します。複製データベースがリモート・ホスト上に作成されるため、パスワード・ファイルが必要です。

      「補助インスタンス用のパスワード・ファイルの作成」を参照してください。

    • ソース・データベースと補助インスタンス間のOracle Net Servicesの接続性を、静的リスナーを使用して設定します。これは、この例でデータベースをリモート・ホストに複製するために必要です。

      「ソース・データベースと補助インスタンス間のOracle Net接続の確立」を参照してください。

    • 「補助インスタンスの起動」で説明するように、補助インスタンスをNOMOUNTモードで起動します。

  4. RMANを起動し、ソース・データベースにTARGETとして、補助インスタンスにAUXILIARYとして接続します。

    %rman
    RMAN> CONNECT TARGET sys@oradb;
    RMAN> CONNECT AUXILIARY sys@dupdb;

    要求されたら、パスワードを入力します。

  5. DUPLICATEコマンドを使用してデータベースを複製します。

    SKIP READONLY句を使用して、複製データベースから読取り専用の表領域を除外します。ターゲット・データベースへの接続がないため、複製するターゲット・データベースの名前を指定する必要があります。

    DUPLICATE DATABASE db12 TO dup
    SKIP READONLY;

25.7.5 例: ターゲット接続によるバックアップベースの複製を使用したリモート・ホストへのデータベースの複製

この例では次のシナリオを使用します。
  • 制御ファイル、データファイルおよびアーカイブREDOログ・ファイルを含むソース・データベースの完全なバックアップが使用可能な状態にある。

  • ソース・データベースに接続できる。

  • ソース・ホストと宛先ホストは同一ではない。

  • ソース・データベースが、パスワードベースのソフトウェア・キーストアを使用した透過的暗号化を使用するように構成されている。

  • 複製データベースが、データベース・ファイルの保存に、ソース・データベースと同じディレクトリ構造とファイル名を使用している。

    ソース・ホスト上で、データファイル、制御ファイルおよびサーバー・パラメータ・ファイルは/app/db_home1/databaseに保存されていて、オンラインREDOファイルは/app/db_home1/logfilesに保存されている。

  • ソース・データベースのDB_NAMEsrcで、そのネット・サービス名はsrcdb。複製データベースのDB_NAMEdupで、そのネット・サービス名はdupdb

  • ソース・ホストで、データファイルとアーカイブREDOログ・ファイルのバックアップが/bkups/oradata/db_filesに保存されている。制御ファイルとサーバー・パラメータ・ファイルのバックアップは/bkups/oradata/cfに保存されている。

  • 表領域HRSHは複製データベースから除外する必要がある。

    ソース・データベースの残りの表領域は自己完結型であり、hrおよびshへのリンクは含まれない。

  • 複製プロセスの完了後に、複製データベースがオープン状態になっている必要がある。

次の手順を使用して、この例で説明するシナリオ向けの複製データベースを作成します。
  1. 「データベースの複製の計画」の説明のように複製を計画します。これには、次の作業が含まれます。
    • シナリオに適した複製方法を選択します。

      この例では、ターゲット接続を使用したバックアップベースの複製が実行されます。

    • 複製データベースで、ソース・データベースと同じディレクトリ構造が使用されるため、ファイルに別の名前を付けるための計画を選択する必要はありません。

      ただし、DUPLICATEコマンドにNOFILENAMECHECK句を使用して、ソース・データベースのデータファイルとオンラインREDOログ・ファイルが複製データベースと同じ名前を使用しているかどうかがRMANでチェックされないようにします。

    • 「複製で使用するためのRMANチャネルの構成」の説明に従って3つの追加補助チャネルを構成します。追加の補助チャネルを使用すると、複製プロセスのパフォーマンスが向上します。

    • ソース・データベースで使用されているのと同じディレクトリ構造を使用して、必要なバックアップを宛先ホストにコピーします。

      この例では、データファイルとアーカイブREDOログ・ファイルのバックアップは宛先ホストの/bkups/oradata/db_filesに保存し、制御ファイルとサーバー・パラメータ・ファイルのバックアップは/bkups/oradata/cfに保存する必要があります。

  2. 選択した複製方法の前提条件を満たしていることを確認します。

    「データベースの複製の前提条件」を参照してください。

  3. 「補助インスタンスの準備」に記載された説明に従って、補助インスタンスを準備します。
    • 宛先ホストに複製データベース・ファイルを保存するディレクトリを作成します。

      この例では、ソース・データベースと複製データベースで同じディレクトリ構造を使用します。データファイル、制御ファイル、サーバー・パラメータ・ファイルの保存用に/app/databaseディレクトリを作成し、オンラインREDOログ・ファイルの保存用に/app/logfilesディレクトリを作成します。

    • 補助インスタンス用に最低限の初期化パラメータ・ファイルを作成します。このファイルはinitdup.oraという名前で、/app/databaseディレクトリに配置されます。これには次のエントリが含まれます。
      DB_NAME=dup
      DB_DOMAIN = dup.example.com

      「補助インスタンス用の初期化パラメータ・ファイルの作成」を参照してください。

    • パスワード・ファイルをソース・データベースから複製データベースにコピーして、補助インスタンス用のパスワード・ファイルを作成します。

      「補助インスタンス用のパスワード・ファイルの作成」を参照してください。

    • ソース・データベースと補助インスタンス間のOracle Net Servicesの接続性を、静的リスナーを使用して設定します。

      「ソース・データベースと補助インスタンス間のOracle Net接続の確立」を参照してください。

    • 「補助インスタンスの起動」で説明するように、補助インスタンスをNOMOUNTモードで起動します

  4. RMANを起動し、ソース・データベースにTARGETとして、補助インスタンスにAUXILIARYとして接続します。これらの接続は宛先ホストから確立され、補助接続はオペレーティング・システム認証を使用します。
    %rman
    RMAN> CONNECT TARGET sys@dupdb AS SYSBACKUP;
    RMAN> CONNECT AUXILIARY /
  5. DUPLICATEコマンドを使用してデータベースを複製します。

    SKIP TABLEPACE句を使用して、複製プロセス中に除外する必要がある表領域を指定します。SPFILE句を使用して、ソース・データベースのサーバー・パラメータ・ファイルをリストアして、複製データベースにコピーする必要があることを指定します。

    DUPLICATE DATABASE TO dup
    SPFILE
    SKIP TABLESPACE HR, SH
    NOFILENAMECHECK;

25.7.6 例: アクティブなデータベースの複製を使用したローカル・ホストへのデータベースの複製

この例では、アクティブなデータベースの複製を使用して、データベースをローカル・ホストに複製します。

この例では、次のシナリオを想定しています。
  • ソース・ホストと宛先ホストが同一である。

  • ソース・データベースと複製データベースの両方で、データベース・ファイルの管理にOracle Managed Files (OMF)を使用している。

  • 複製データベース・ファイルで、ソース・データベースとは異なるディレクトリ構造が使用されている。

  • ソース・データベースがARCHIVELOGモードで実行され、複製プロセス中に使用可能である。

  • ソース・データベースのサービス名はdbsrcで、複製データベースのサービス名はdbdupである。ソース・データベースでは、サーバー・パラメータ・ファイル(spfile)を使用する。

次の手順を使用して、この例で説明するシナリオ向けの複製データベースを作成します。

  1. データベースの複製の計画の説明に従って、複製を計画します。

    これには、次の作業が含まれます。
    • シナリオと要件に合った複製方法を選択します

      ソース・ホストのネットワーク帯域幅が限られているため、バックアップ・セットを使用したアクティブなデータベースの複製を実行します。

    • 複製データベース・ファイルの命名計画を選択します

      この例では、DB_CREATE_FILE_DEST初期化パラメータを使用して、複製データベース・ファイルの場所を指定します。

      ソース・データベース・ファイルが上書きされないようにするには、DUPLICATEコマンドにNOFILENAMECHECK句を含めないようにします。

    • 補助インスタンスに補助チャネルを構成します

      この例では、ソース・データベースに3つのターゲット・チャネルが構成されています。RMANでバックアップ・セットを使用してアクティブなデータベースの複製を実行するには、補助チャネルの数がターゲット・チャネルの数以上である必要があります。

      「複製で使用するためのRMANチャネルの構成」を参照してください。

  2. 「データベースの複製の前提条件」の説明に従って、選択された複製方法の前提条件が満たされていることを確認します。

  3. 「補助インスタンスの準備」の説明に従って、補助インスタンスを準備します。
    • 宛先ホストにデータベース・ファイルを保存するディレクトリを作成します

      この例では、データファイル、制御ファイルおよびサーバー・パラメータ・ファイルの保存用に/app/db_home3/dbsディレクトリを作成し、オンラインREDOログ・ファイルの保存用に/app/db_home3/logfilesディレクトリを作成します。

    • 補助インスタンス用のパスワード・ファイルの作成の説明に従って、パスワード・ファイルをソース・データベースから複製データベースにコピーします。

    • DB_NAMECONTROL_FILESDB_CREATE_FILE_DESTおよびLOG_CREATE_FILE_DESTという最小限のパラメータを使用して、補助インスタンスの初期化パラメータ・ファイルを作成します。

    • ソース・データベースと補助インスタンス間のOracle Net Servicesの接続性を、静的リスナーを使用して設定します。

    • 「補助インスタンスの起動」の説明に従って、補助インスタンスをNOMOUNTモードで起動します。
  4. RMANを起動し、ソース・データベースにTARGETとして、補助インスタンスにAUXILIARYとして接続します。どちらの接続もネット・サービス名を使用します。

    %rman
    RMAN> CONNECT TARGET sys@srcdb as SYSDBA;
    RMAN> CONNECT AUXILIARY sys@dupdb AS SYSBACKUP;

    注意: アクティブなデータベースの複製の場合、補助インスタンスへの接続でもパスワード・ファイル認証を使用する必要があります。

  5. DUPLICATEコマンドを使用してデータベースを複製します。

    DUPLICATE DATABASE to dbdup
    FROM ACTIVE DATABASE;

25.7.7 例: 暗号化バックアップを使用したバックアップベースの複製の実行

RMANでは、DUPLICATEコマンドで暗号化バックアップを使用してバックアップベースの複製を実行できます。

この例では次のシナリオを使用します。

  • ソース・ホストと宛先ホストは同一ではない。

  • ソース・データベースと宛先データベースが、Oracle Managed Files (OMF)を使用してデータベース・ファイル名を管理している。ただし、複製データベースは、ソース・データベースとは異なるディレクトリ構造を使用している。

  • ソース・データベースのバックアップが、透過モードの暗号化を使用して暗号化されており、暗号化キーはパスワードベースのソフトウェア・キーストアに保存されている。キーストア・パスワードは次のようにコマンドを使用して設定されている(ここでpasswordは入力する実際のパスワードのプレースホルダ)。

    ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED BY password;
  • 制御ファイル、データファイルおよびアーカイブREDOログ・ファイルを含むソース・データベースの完全なバックアップが、 /oracle2/rman_backupsに保存されている。

  • ソース・データベースのDB_NAMEdb_srcで、複製データベースはdup_db

  • 表領域EXAMPLETOOLSは複製データベースから除外する必要がある。

  • 複製プロセスの完了後に、複製データベースがオープン状態になっている必要がある。

暗号化バックアップを使用してバックアップベースのデータベース複製を実行する手順

  1. 「データベースの複製の計画」の説明のように複製を計画します。これには、次の作業が含まれます。
    1. シナリオと要件に合った複製方法を選択します。

      この例では、ターゲット接続またはリカバリ・カタログ接続のないバックアップベースの複製が実行されます。BACKUP LOCATION句を使用して、ソース・データベースのバックアップの場所を指定します。

    2. 複製データベース・ファイル名を生成するための計画を選択します。

      複製データベースでソース・データベースとは異なるディレクトリ構造が使用されているため、補助インスタンスの初期化パラメータ・ファイルでDB_CREATE_FILE_DESTパラメータを使用して、複製データベース・ファイルを保存する場所を指定します。

    3. ソース・データベースで使用されているのと同じディレクトリ構造を使用して、必要なバックアップを宛先ホストにコピーします。
  2. 選択した複製方法の前提条件を満たしていることを確認します。
  3. 補助インスタンスを準備します。
    1. 宛先ホストにデータベース・ファイルを保存するディレクトリを作成します。

      この例では、データファイル、制御ファイルおよびサーバー・パラメータ・ファイルの保存用に/app/db_home2/databaseディレクトリを作成し、オンラインREDOログ・ファイルの保存用に/app/db_home2/logfilesディレクトリを作成します。

    2. 補助インスタンス用に最低限の初期化パラメータ・ファイルを作成します。

      このファイルはinitdup.oraという名前で、 /app/db_home2/databaseディレクトリに配置されます。これには次のエントリが含まれます。

      DB_NAME=dup_db
      DB_DOMAIN = dup.example.com
      DB_CREATE_FILE_DEST = /app/db_home2/database

      「補助インスタンス用の初期化パラメータ・ファイルの作成」を参照してください。

    3. ソース・データベースから宛先ホストにパスワード・ファイルをコピーします。複製データベースがリモート・ホスト上に作成されるため、パスワード・ファイルが必要です。
    4. ソース・データベースと補助インスタンス間のOracle Net Servicesの接続性を、静的リスナーを使用して設定します。これは、この例でデータベースをリモート・ホストに複製するために必要です。
    5. 手順3bで作成したinitdupdb.oraというパラメータ・ファイルを使用して、補助インスタンスをNOMOUNTモードで起動します。
  4. RMANを起動し、ソース・データベースにTARGETとして、補助インスタンスにAUXILIARYとして接続します。
    %rman
    RMAN> CONNECT TARGET /
    RMAN> CONNECT AUXILIARY sys@dup_db AS SYSBACKUP

    要求されたら、パスワードを入力します。

  5. データベースの複製に使用されたソース・データベースのバックアップは暗号化バックアップであるため、暗号化キーを含むソフトウェア・キーストアを開くために使用する必要があるパスワードを指定します(ここでpasswordは、入力する実際のパスワードのプレースホルダ)。
    SET DECRYPTION WALLET OPEN IDENTIFIED BY password;

    SETコマンドで指定したパスワードは、ALTER SYSTEM SET ENCRYPTION KEYコマンドを使用してソース・データベースで設定したものと同じである必要があります。

  6. DUPLICATEコマンドを使用してデータベースを複製します。

    複製を実行する前に、RMANバックアップの復号化に使用する必要があるパスワードを指定する必要があります。

    DUPLICATE TARGET DATABASE TO 'dup_db'
              SKIP TABLESPACE example, tools
              PFILE '/ app/db_home2/initdupdb.ora'
              BACKUP LOCATION '/oracle2/rman_backups';

25.8 例: バックアップベースの複製を使用したデータベースの複製スクリプト

この例では、ターゲット・データベースの複製プロセスを自動化するためのスクリプトの使用方法を示します。

この例では、次のことを想定しています。
  • ターゲット・データベースのバックアップを補助インスタンス上で使用できる。

  • ターゲット・データベースのメタデータが含まれるRMANリカバリ・カタログに接続できる(ターゲット・データベースへの接続は不要)。

  • ソース・データベースと複製データベースの両方で、Oracle Managed Files (OMF)を使用している。

  • オペレーティング・システムにLinuxまたはUNIXが使用されている。

  • 補助データベースのホストに監査ディレクトリが作成されている。

  • バックアップベースの複製の要件が満たされている。

この例に示されているスクリプトは次のタスクを実行します。
  • 補助データベースを削除する

  • ターゲット・データベースをバックアップする

  • ダミーの補助インスタンスを作成し、NOMOUNTモードでオープンする

  • ターゲット・データベースのバックアップとRMANリカバリ・カタログ内のメタデータを使用して、ターゲット・データベースを複製する

    複製データベースの制御ファイルは+REDO/ORACLE_SID/CONTROLFILE/cf3.ctlとして保存され、データファイルは+DATAディレクトリ内に保存されます。

  • 必要なオブジェクトが複製データベース内に作成されていることを確認する。

ターゲット接続なしでバックアップベースの複製を使用してターゲット・データベースを複製する手順

  1. 補助インスタンスのパラメータ・ファイル(pfile)を作成します。pfileにはDB_NAME初期化パラメータのみが含まれ、複製データベースのSIDに設定されます。

    /home/oracleディレクトリにあるinit_dup.oraという名前の次のpfileは、DB_NAMEパラメータを設定します。dup_dbを複製データベースのSIDに置き換えます。

    *.db_name = 'dup_db'
  2. テキスト・エディタを使用して、次に示す内容に次の変更を加えてシェル・スクリプトを作成します(この例ではdup_db.shという名前)。
    • ORACLE_HOME変数の値を補助インスタンスのOracleホーム・ディレクトリと置き換えます。

    • logdir変数の値を、ログ・ファイルを保存するディレクトリに置き換えます。

    • 次のプレースホルダ(イタリック体で表示)を、目的の複製シナリオに合わせた値に置き換えます。

      dup_db: 補助インスタンスのシステム識別子(SID)とサービス名

      tgt_db: ターゲット・データベースのSIDとサービス名

      sys_pswd: ターゲット・データベースのSYSユーザーのパスワード

      rman_cat_user: RMANカタログ・ユーザーの名前

      cat_user_pswd: RMANカタログ・ユーザーrman_cat_userのパスワード

      rman_catalog_db: RMANカタログ・データベースのSID

      system_pswd: ターゲット・データベースのSYSTEMユーザーのパスワード

    • +REDO/ORACLE_SID/CONTROLFILE/cf3.ctlとは異なる名前と場所を使用して、複製データベースの制御ファイルを保存する場合は、dup_aux_db関数のcontrol_filesの値を自分の複製シナリオに適した値に置き換えます。

    • 複製データファイルを+DATAとは異なるディレクトリに保存する場合は、dup_aux_db関数のdb_create_file_destの値を自分の複製シナリオに適した値に置き換えます。

    #!/bin/bash
    export ORACLE_HOME=/u01/app/oracle/product/11.2.0.4/dbhome_2
    export ORACLE_BASE=/uo1/app/oracle
    export ORACLE_SID=dup_db
    export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:$ORACLE_HOME/Opatch
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/rdbms/lib:/lib:/usr/lib;
    export LD_LIBRARY_PATH
    export logdir=/home/oracle/log
    export dt='date +%y%m%d%H%M%S'
    export NLS_DATE_FORMAT='DD-MM-YYYY HH24:MI:SS'
    
    function drop_aux_db {
    export ORACLE_SID=dup_db
    $ORACLE_HOME/bin/sqlplus -s '/ as sysdba' <<EOF2
    set pagesize 999 linesize 999 heading off feedback off
    select name, open_mode from v\$database;
    shutdown immediate;
    startup mount exclusive restrict;
    drop database;
    exit;
    EOF2
    }
    
    echo "Backup the target database"
    function backup_source_db {
    $ORACLE_HOME/bin/rman target sys/sys_pswd@tgt_db catalog
    rman_cat_user/cat_user_pswd@rman_catalog_db <<EOF
    RUN {
    backup as backupset cumulative incremental level 1 database include current
    controlfile plus archivelog not backed up delete input;}
    exit;
    EOF
    }
    
    sleep 120
    
    echo "List the backup of the target database"
    function check_source_db_backup {
    $ORACLE_HOME/bin/rman target sys/sys_pswd@tgt_db catalog
    rman_cat_user/cat_user_pswd@rman_catalog_db <<EOF
    LIST BACKUP OF DATABASE COMPLETED AFTER '(SYSDATE-1/24)';
    EOF
    }
    
    echo "Start the auxiliary database in FORCE NOMOUNT mode"
    function nomount_aux_db {
    export ORACLE_SID=dup_db
    $ORACLE_HOME/bin/rman target / <<EOF2
    startup force nomount pfile='/home/oracle/init_dup.ora';
    exit;
    EOF2
    }
    
    echo "Duplicate the target database"
    function dup_aux_db {
    export ORACLE_SID=dup_db
    $ORACLE_HOME/bin/rman catalog rman_cat_user/cat_user_pswd@rman_catalog_db AUXILIARY /
    <<EOF
    duplicate database tgt_db to dup_db spfile
    set control_files '+REDO/${ORACLE_SID}/CONTROLFILE/cf3.ctl'
    set db_create_file_dest '+DATA/' ;
    exit;
    EOF
    }
    
    echo "Check schema objects on the target"
    function check_source_db {
    $ORACLE_HOME/bin/sqlplus -s system/system_pswd@tgt_db <<EOF2
    set pagesize 999 linesize 999 heading off feedback off
    select name, open_mode from v\$database;
    select table_name, num_rows from dba_tables where owner='SOE';
    exit;
    EOF2
    }
    
    echo "Check schema objects on the auxiliary"
    function check_aux_db {
    export ORACLE_SID=dup_db
    $ORACLE_HOME/bin/sqlplus -s '/ as sysdba' <<EOF2
    set pagesize 999 linesize 999 heading off feedback off
    select name, open_mode from v\$database;
    select table_name, num_rows from dba_tables where owner='SOE';
    exit;
    EOF2
    }
    
    drop_aux_db
    backup_source_db
    check_source_db_backup
    nomount_aux_db
    dup_aux_db
    check_source_db
    check_aux_db
    
  3. chmodコマンドを使用して、スクリプトdup_db.shの実行権限を設定します。
    $ chmod +x dup_db.sh
  4. 複製ホスト上で(複製データベースをホストする)、dup_db.shスクリプトを実行します。

    次のコマンドは、/home/my_scripts/duplicationディレクトリに保存されているdup_db.shスクリプトを実行します。

    $./home/my_scripts/duplication/dup_db.sh