ヘッダーをスキップ
Oracle® Databaseバックアップおよびリカバリ・リファレンス
11gリリース2(11.2)
B56270-05
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

DUPLICATE

用途

DUPLICATEコマンドを使用すると、ソース・データベースのコピーを作成できます。RMANで作成できるのは、次のいずれかのタイプのデータベースです。

  • 複製データベース。これは、一意のDBIDを持つソース・データベース(またはソース・データベースのサブセット)のコピーです。複製データベースは一意のDBIDを持っているため、ソース・データベースから独立しており、同じリカバリ・カタログに登録できます。通常、複製データベースはテストに使用します。

  • スタンバイ・データベース。これは、ソース・データベース(Data Guard環境ではプライマリ・データベースと呼ばれます)の特別なコピーであり、プライマリ・データベースのアーカイブREDOログ・ファイルを適用して更新されます。スタンバイ・データベースには、新しいDBIDは割り当てられません。

RMANでは、サポートされている次のいずれかのモードで複製を実行できます。

  • アクティブな複製

    RMANは、オープン状態またはマウント状態のデータベースから直接複製します。

  • ターゲット接続なしで実行するバックアップベースの複製

    RMANは、既存のRMANバックアップおよびコピーから複製ファイルを作成します。DUPLICATEコマンドは、DATABASE句とともに発行されている必要があります。この形式では、補助インスタンスおよびリカバリ・カタログへの接続が必要となります。

    このモードは、(セキュリティ・ポリシーの制限またはファイアウォールでの規定により)ターゲット・データベースを使用できない場合またはターゲット・データベースへの接続が適切でない場合に役立ちます。

  • ターゲット接続を指定したバックアップベースの複製

    RMANは、既存のRMANバックアップおよびコピーから複製ファイルを作成します。

  • ターゲットおよびリカバリ・カタログへの接続なしで実行するバックアップベースの複製

    RMANは、BACKUP LOCATIONで指定した場所に配置されたRMANバックアップおよびコピーから複製ファイルを作成します。


関連項目:

  • DUPLICATEコマンドで複製データベースを作成する方法は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。

  • スタンバイ・データベースを作成、管理およびバックアップする方法は、『Oracle Data Guard概要および管理』を参照してください。


前提条件

前提条件は、複製のタイプによって異なります。

すべての形式の複製に共通の前提条件

RMANは、複製データベースのインスタンスにAUXILIARYとして接続されている必要があります。複製データベースのインスタンスは、補助インスタンスと呼ばれます。補助インスタンスは、NOMOUNTオプションで起動されている必要があります。

ソース・ホストは、ソース・データベースが格納されているデータベースです。トランスポート先ホストは、複製データベースが作成されるホストです。複製データベースをソース・ホストに作成する場合は、DUPLICATEコマンドの実行時に、ソース制御ファイルが使用中であることが原因でエラーが発生しないように、CONTROL_FILES初期化パラメータを適切に設定してください。また、ソース・データベース・ファイルが複製データベース・ファイルで上書きされないように、すべての*_DEST初期化パラメータも適切に設定してください。

ソース・データベースと複製データベースのプラットフォームは、同じである必要があります。DUPLICATEの処理では、プラットフォームが同じ32ビット・バージョンと64ビット・バージョンは、同じプラットフォームとみなされます。たとえば、Linux IA (32-bit)とLinux IA (64-bit)は、同じプラットフォームとみなされます。ただし、32ビットと64ビットのプラットフォーム間でデータベースの複製が終了したら、utlirp.sqlスクリプトを実行して、PL/SQLコードを新しい形式に変換する必要があります。このスクリプトは、LinuxおよびUNIXプラットフォームのORACLE_HOME/rdbms/adminにあります。

DUPLICATEコマンドを実行するには、1つ以上の補助チャネルが必要です。これらのチャネルは、補助データベース・インスタンスで複製処理を実行します。次のような場合、RMANはソース・データベースのチャネル構成を補助チャネルに使用します。

  • 補助チャネルの手動割当てにALLOCATE CHANNELを使用しなかった場合。

  • 補助チャネルの構成にCONFIGUREを使用しなかった場合。

CONNECT文字列を使用するように自動ターゲット・チャネルを構成した場合、RMANは補助インスタンスのチャネル割当てを複製しようとします。ただし、複製用のチャネル割当てを制御または変更する必要がある場合は、補助チャネルを手動で割り当てる必要があります。

COMPATIBLE初期化パラメータが11.0.0以上に設定されている場合、RMANでは、デフォルトで、トランスポート後に読み書き両用に設定されていなかったトランスポータブル表領域が複製されます。それ以外の場合、RMANでは、トランスポート後に読み書き両用に設定されていないかぎり、トランスポータブル表領域は複製できません。

列レベルで機能する透過的データ暗号化と表領域暗号化のデータベース暗号化機能のいずれにも、ウォレットが使用されています。複製する表領域が暗号化されている場合は、複製データベースにウォレットを手動でコピーする必要があります。


関連項目:

透過的データ暗号化については、『Oracle Database Advanced Security管理者ガイド』を参照してください。

バックアップベースの複製に固有の前提条件

表2-6に示すように、バックアップベースの複製の前提条件は、RMANがTARGETとしてソース・データベースに接続しているかどうかによって異なります。

表2-6 バックアップベースの複製の3つのモードに対する前提条件

前提条件 ターゲットおよびリカバリ接続なし ターゲット接続なし ターゲット接続

RMANは、リカバリ・カタログに接続している必要があります。

非該当

該当

非該当

トランスポート先ホストのサーバー・セッションから、複製データベースの作成とリカバリに使用するすべてのバックアップおよびアーカイブREDOログ・ファイルにアクセスできる必要があります。

該当

該当

該当

トランスポート先ホストとソース・ホストが異なる場合は、ソース・ホストのディスク上のバックアップを、ソース・データベースでのフルパス名と同じフルパス名で、トランスポート先ホストから使用できるようにする必要があります。

非該当

該当

該当

ソース・データベースの名前をDATABASE句で指定する必要があります。ソース・データベースの名前がリカバリ・カタログで一意でない場合は、DATABASE句でデータベースID(DBID)も指定する必要があります。

非該当(BACKUP LOCATIONで指定した場所に複数のデータベースからのバックアップが含まれていない場合)。

該当

非該当

UNTIL句を現行のインカネーションに指定する必要があります。

N/A

非該当

該当

RMANでアーカイブREDOログ・ファイルがバックアップされないようにする場合は、NOREDOを指定する必要があります(詳細はNOREDOに関する説明を参照)。

該当

該当

該当

表領域のサブセットを複製する場合およびソース・データベースがオープンされていない場合は、UNDOセグメントを含む複製されたすべての表領域をUNDO TABLESPACE句に指定する必要があります。

該当

非該当

該当(カタログを使用しておらず、ターゲットがオープンされていない場合)

表領域のセットが自己完結型であること、およびそれらの表領域にSYSが所有するデータベース・オブジェクトは含まれていないことを必須とするルールがRMANによって自動的に適用されます。

非該当

非該当

該当


アクティブなデータベースの複製に固有の前提条件

FROM ACTIVE DATABASEを指定してDUPLICATEを実行する場合、1つ以上の通常のターゲット・チャネルおよび1つ以上のAUXILIARYチャネルが必要です。

RMANからTARGETとしてソース・データベースに接続するときは、RMANでオペレーティング・システム認証を使用している場合でも、パスワードを指定する必要があります。ソース・データベースはマウントまたはオープン状態である必要があります。ソース・データベースがオープン状態の場合は、アーカイブ処理を有効にする必要があります。ソース・データベースがオープンされていない場合は、一貫性を保った状態で停止されている必要があります。

RMANから補助インスタンスに接続する場合は、ネット・サービス名を指定する必要があります。この要件は、補助インスタンスがローカル・ホストに存在する場合にも適用されます。

ソース・データベースと補助インスタンスは、同じSYSDBAパスワードを使用する必要があり、両方のインスタンスにはパスワード・ファイルが存在している必要があります。補助インスタンスを起動してソース・データベースから接続できるように、パスワードを1つにしてパスワード・ファイルを作成できます。

パスワード・ファイルに対するDUPLICATEの動作は、複製データベースがスタンバイ・データベースとして動作するかどうかで異なります。作成する複製データベースがスタンバイ・データベースでない場合、デフォルトでは、RMANはパスワード・ファイルをコピーしません。PASSWORD FILEオプションを使用すると、補助インスタンス上の既存のパスワード・ファイルを上書きするようにRMANに指定できます。スタンバイ・データベースを作成すると、デフォルトでは、RMANがパスワード・ファイルをスタンバイ・ホストにコピーするため、既存のパスワード・ファイルは上書きされます。その場合は、PASSWORD FILE句は必要ありません。

アクティブなデータベースの複製を実行する場合は、UNTIL句を使用できません。RMANは、データファイルを一貫性のある時点にリカバリできるように、オンライン・データファイルが完全にコピーされた時間に基づいて時間を選択します。


関連項目:

パスワード保護については、『Oracle Databaseセキュリティ・ガイド』を参照してください。

使用上の注意

アクティブなデータベース複製では、補助サービス名を使用して、ソース・データベースがネットワーク経由でトランスポート先ホストの補助インスタンスにコピーされますが、バックアップベースの複製では、すでに存在するRMANバックアップおよびコピーが使用されます。表2-7に、ソース・データベースから複製されるファイルを示します。

表2-7 複製されるファイル

ソース・データベースのファイル アクティブなデータベース バックアップベース

制御ファイル

FOR STANDBYが指定されると、ソース・データベースからコピーされ、指定されない場合は再作成されます。

バックアップからリストアします。

データファイル

ソース・データベースからコピーされます(SKIPオプションで除外されている場合を除く)。

バックアップからリストアされます(SKIPオプションで除外されている場合を除く)。

一時ファイル

再作成されます(「一時ファイルの再作成」を参照)。

再作成されます(「一時ファイルの再作成」を参照)。

オンラインREDOログ・ファイル

再作成されます。

再作成されます。

スタンバイREDOログ・ファイル

プライマリ・データベース上でFOR STANDBYが指定および定義されている場合は、再作成されます。

プライマリ・データベース上でFOR STANDBYが指定および定義されている場合は、再作成されます。

アーカイブREDOログ・ファイル

ソース・データベースからコピーされます(ただし、複製に必要な場合のみ)。

バックアップまたはカタログ化済のコピーから取得されます(ただし、複製に必要な場合のみ)。

サーバー・パラメータ・ファイル

ソース・データベースからコピーされます(「dupOptionList」SPFILE句を参照)。

SPFILE句が指定されていれば、バックアップからリストアされます(「dupOptionList」を参照)。

フラッシュバック・ログ・ファイル

再作成されません。

再作成されません。

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

再作成されません。

再作成されません。

パスワード・ファイル

スタンバイ・データベースの場合はデフォルトでコピーされ、非スタンバイのデータベースでは、PASSWORD FILEオプションが指定されている場合にのみコピーされます。

再作成されません。

高速リカバリ領域のバックアップおよび他のファイル

コピーされません。

コピーされません。


データファイルが正常にオフライン化されている場合または除外されている場合を除き、複製データベースにはすべてのデータファイルが格納されます。表領域を除外するには、SKIP句を使用するか、またはDUPLICATE ... TABLESPACEを使用して表領域のサブセットのみを含めます。

高速リカバリ領域を明示的に定義している場合は、複製データベースまたはスタンバイ・データベース上でこの領域が定義されます。また、ソース・データベース上でフラッシュ・リカバリが定義されており、DUPLICATEコマンドを使用してコピーまたはリストアされたサーバー・パラメータ・ファイルを補助インスタンスで使用しているときは、複製データベースまたはスタンバイ・データベース上でフラッシュ・リカバリが定義されます。

アクティブなデータベース複製を使用する場合は、使用上の注意に関して、「dupOptionList」にあるFROM ACTIVE DATABASEの説明を参照してください。

バックアップベースの複製

ターゲット・データベースに接続してNOARCHIVELOGモードでデータベースのバックアップベースの複製を実行する場合は、メディア・リカバリでNOREDOオプションが使用されます。したがって、増分バックアップが存在していると、RMANは、リカバリ時には、その増分バックアップのみをリストアされたファイルに適用します。

ARCHIVELOGモードのデータベースをバックアップベースで複製する場合、デフォルトでは、RMANによってそのコマンドが実行された時点で最後に作成されたアーカイブREDOログまで、またはSET UNTIL句で指定した時点までリカバリされます。

ターゲット・データベースに接続せずにデータベースのバックアップベースの複製を実行する場合、RMANではソース・データベースがNOARCHIVELOGモードであったかどうかを判断できません。したがって、バックアップが行われたときにソース・データベースがNOARCHIVELOGモードであった場合は、NOREDOオプションを使用する必要があります。NOREDOオプションは、アーカイブREDOログ・ファイルを一貫性バックアップに適用しない場合にも使用できます。

バックアップベースの複製を使用している場合で、ソース・データベースと補助インスタンスが別々のホストに存在する場合は、ソース・データベースのバックアップが補助インスタンスから使用できるようにする方法を決定する必要があります。BACKUP LOCATIONを使用してこれを行う方法については、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』ディスク・バックアップから補助インスタンスへのアクセスの有効化に関する項で説明されているオプションを確認してください。

ターゲット・データベースで、ASMストレージのリカバリ領域が使用されていない場合は、DUPLICATEコマンドを実行する前に、次のいずれかのタスクを実行します。

  • SBTバックアップを使用している場合は、バックアップを作成するテープがトランスポート先ホストからアクセスできるようにします。

  • ディスク・バックアップを使用している場合で、トランスポート先ホスト上でソース・ホストと同じバックアップ・ディレクトリ名を使用できる場合は、次のいずれかを実行します。

    • ソース・ホストのバックアップおよびコピーをトランスポート先ホストの同じパスに手動で転送します。

    • NFSまたは共有ディスクを使用して、転送先ホストで同じパスにアクセスできるようにします。

  • ディスク・バックアップを使用しているときに、トランスポート先ホスト上でソース・ホストと同じバックアップ・ディレクトリ名を使用できない場合は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』で説明されている方法を使用します。

ソース・データベースでASMストレージのリカバリ領域が使用されている場合は、DUPLICATEコマンドを実行する前に、次のいずれかのタスクを実行します。

  • データベースのバックアップを、高速リカバリ領域の外に作成します。このバックアップは、次のようにしてアクセス可能にすることができます。

    • NFSを使用して、バックアップを同じ名前でトランスポート先ホストにマウントします。

    • NFSを使用して、バックアップを別の名前でトランスポート先ホストにマウントしてから、RMANがソース・データベースにTARGETとして接続されている状態で、バックアップに対してCATALOGを実行します。

  • 高速リカバリ領域をテープにバックアップし、それを複製処理に使用します。

Oracle Managed Filesでの複製

ソース・データベース・ファイルがOracle Managed Files(OMF)形式の場合は、DB_FILE_NAME_CONVERTおよびLOG_FILE_NAME_CONVERT初期化パラメータ、またはfileNameConversionSpec句を使用して、複製データベースの新しいOMFファイル名を生成することはできません。このルールに従わなかった場合、3つの方法で生成された新しいOMFファイルが原因で問題が発生する可能性があります。OMFの名前の詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』のTSPITRでOMF補助セット・ファイルの名前を変更する場合の考慮事項に関する項を参照してください。

このルールの唯一の例外は、ASMディスク・グループ名のみを変更する場合です。ソース・データファイルおよびオンラインREDOログ・ファイルが、ASMディスク・グループ+SOURCEDSKに格納されているとします。複製データベース・ファイルは、ASMディスク・グループ+DUPDSKに格納することにします。その場合、初期化パラメータを次のように設定できます。

DB_FILE_NAME_CONVERT = ("+SOURCEDSK","+DUPDSK")
LOG_FILE_NAME_CONVERT = ("+SOURCEDSK","+DUPDSK")

RMANは、DB_FILE_NAME_CONVERTまたはLOG_FILE_NAME_CONVERTを使用してディスク・グループ名を変換し、その名前に基づいた有効なファイル名を新しく生成します。

ソース・ファイルがOracle Managed Files形式の場合にデータファイルの名前を付けるオプションとしては、次のサポート・オプションがあります。

  • SET NEWNAMEを使用すると、個々のデータファイルの名前を指定できます。

  • DB_FILE_CREATE_DESTを設定すると、新しいデータベースのすべてのデータファイルをOracle Managed Filesにできます(ただし、SET NEWNAMEが使用されるファイルは除きます)。DB_FILE_CREATE_DESTを設定する場合は、DB_FILE_NAME_CONVERTを設定しないでください。

Oracle Managed Filesから複製されるオンラインREDOログに名前を付けるサポート・オプションには、DB_CREATE_FILE_DESTDB_RECOVERY_FILE_DESTおよびDB_CREATE_ONLINE_LOG_DEST_nがあります。

一時ファイルの再作成

DB_FILE_NAME_CONVERTパラメータを使用して、Oracle Managed Files(OMF)ではない新しいデータベースの一時ファイル名を変換できます。この動作が制限される唯一の例外は、自動ストレージ管理(ASM)のOMF名です。この場合、ディスク・グループの名前のみを変更できます。

新しいデータベースの一時ファイル名を変換するその他の方法としては、SET NEWNAME FOR TEMPFILE TO'filename'またはTO NEWを使用する方法があります。後者の方法では、データファイルがOMFであるか非OMFであるかにかかわらず、データベースがオープンされると一時ファイルはDB_CREATE_FILE_DESTディレクトリに再作成されます。

一時ファイルごとに異なる名前を指定するには、「SWITCH TEMPFILE」を参照してください。

セマンティクス

複製

この句を使用すると、データベースまたは表領域を複製できます。構文図は、duplicate::=」を参照してください。

構文要素 説明
TARGET DATABASE 複製元のデータベースであるソース・データベースを指定します。Oracle Database 11gリリース2以上では、TARGETキーワードはオプションです。
DATABASE ソース・データベースを指定します。
   'database_name' 複製元のデータベースであるソース・データベースの名前を指定します。

RMANがTARGETとしてソース・データベースに接続している場合は、この句をTARGET DATABASEのかわりに使用できます。ターゲット接続を指定して複製を実行する場合は、現在接続しているデータベースを指定する必要があります。INCARNATION副次句は使用しないでください。

ターゲット接続なしでバックアップベースの複製を実行する場合は、データベース名を指定するか、またはSET DATABASE 'database_name'コマンドを実行する必要があります。

   DBID integer ソース・データベースのデータベースID(DBID)を指定します。

ソース・データベースへのTARGET接続なしで複製する際にリカバリ・カタログでソース・データベース名が一意でない場合は、DBIDパラメータが必要です。SET DBIDコマンドを使用するオプションもあります。

RMANでは、ソース・データベースにTARGETとして接続しているときにデータベースを複製する場合、DBIDパラメータは必要ありません。DBIDが指定されている場合、そのパラメータ値はソース・データベースのDBIDと一致している必要があります。

 INCARNATION primaryKey 孤立したインカネーションを指定します。

デフォルトでは、UNTIL句を指定したDUPLICATEコマンドは、現行のデータベース・インカネーションまたは現行インカネーションの直接の祖先での特定の時点を参照します。この句を使用すると、現行のインカネーション・パスに存在しない、孤立したインカネーションと呼ばれるインカネーションを指定できます。ターゲット・データベースに接続している場合、またはBACKUP LOCATIONを使用している場合は、INCARNATIONを指定することはできません。

SET INCARNATIONコマンドを使用するオプションもあります。

FOR STANDBY 複製対象のデータベースをスタンバイ・データベースとして使用するように指定します(例2-81を参照)。

DUPLICATEコマンドでスタンバイ・データベースを作成するには、FOR STANDBYオプションを指定する必要があります。DUPLICATE ... FOR STANDBYコマンドを使用すると、スタンバイ制御ファイルをリストアしてマウントすることによって、スタンバイ・データベースが作成されます。FROM ACTIVE DATABASEを指定すると、RMANはプライマリ・データベースからスタンバイ・データベースにデータファイルをコピーします。指定しない場合、RMANはソース・データベースのデータファイルのバックアップをスタンバイ・データベースにリストアします。SET UNTILを指定しないかぎり、RMANは、最新ファイルをリストアします。

SPFILEを複製する場合は、SPFILE句に一意のDB_UNIQUE_NAMEを指定します。指定しない場合は、補助インスタンスのPFILEまたはSPFILEで、このパラメータに手動で一意の値を指定します。

スタンバイ・データベースにはTO database_nameは使用できません。

DORECOVERを指定すると、RMANではデータベースもリカバリされます。スタンバイ・データベースは、複製の完了後もマウントされたままです。

スタンバイ・データベース上のオンラインREDOログのファイル名の変換には、SET NEWNAMEまたはCONFIGURE AUXNAMEは使用できません。

CONNECTを実行してRMANをスタンバイ・データベースに接続してから、DUPLICATE ... FOR STANDBYを使用してスタンバイ・データベースを追加作成することはできません。スタンバイ・データベースを追加作成するには、RMANをオリジナルのプライマリ・データベースに接続してDUPLICATE ... FOR STANDBYを実行します。

注意: DUPLICATEコマンドを使用してスタンバイ・データベースを作成することはできますが、アクティブ化することはできません。

RMANをスタンバイ・データベースに接続し、そのプライマリ・データベースが登録されているリカバリ・カタログに接続すると、スタンバイ・データベースは、RMANによって認識され、暗黙的に登録されます。スタンバイ・データベースには、REGISTERコマンドを使用しないでください。

TO database_name 複製データベースの名前を指定します。この複製データベースは、スタンバイ・データベースではないため、この句はFOR STANDBYとは使用できません。

SPFILE句を指定しない場合は、指定するデータベース名が、複製データベース・インスタンス(RMANがAUXILIARYとして接続されているインスタンス)の初期化パラメータ・ファイルに記述されている名前に一致する必要があります。一致しない場合、データベースはエラーを発行します。

複製データベースがソース・データベースと同じOracleホームにある場合、ソース・データベースと複製データベースに同じデータベース名は使用できません。ただし、複製データベースがソース・データベースとは別のOracleホームにある場合は、そのOracleホームにある他のデータベース名と異なっていれば、同じ名前でも使用できます。複製データベースの管理を容易にするために、ソース・データベースと複製データベースを別の名前にすることをお薦めします。

   dupOptionList
複製データベースまたはスタンバイ・データベースの作成に使用するオプションを指定します。「dupOptionList」を参照してください。

dupOptionList

この副次句には、複製時の各種機能(ファイルの名前付け、複製のエンド・ポイントの決定など)を制御するオプションが含まれます。構文図は、dupOptionList::=」を参照してください。

複製データベースのファイル名がソース・データベースのファイル名と異なる必要がある場合(トランスポート先ホストとソース・ホストが同じである場合など)は、データファイルとオンラインREDOログに新しいファイル名を指定するか、ソース・データベースのファイル名を変換します。オンラインREDOログおよび複製データベースのデータファイルのファイル名を指定しない場合、RMANはソース・データベースのデータファイル名を使用します。

構文要素 説明
BACKUP LOCATION backup_location 複製するデータベースのバックアップおよびコピーが置かれているディスク上のバックアップの場所を指定します。このオプションは、ターゲットまたはリカバリ・カタログに接続しない複製の場合に有効です。
DEVICE TYPE deviceSpecifier 指定したデバイス(DISKまたはsbtなど)のみに自動チャネルを割り当てます。

このオプションが有効なのは、構成済の自動チャネルがあり、チャネルを手動で割り当てていない場合のみです。たとえば、自動ディスクおよびテープ・チャネルを構成してDUPLICATE...DEVICE TYPE DISKを実行すると、RMANではディスク・チャネルのみが割り当てられます。

関連項目: deviceSpecifierを参照してください。

DORECOVER スタンバイ・データベースの作成後に、RMANがそのスタンバイ・データベースをリカバリするように指定します。untilClauseを指定すると、RMANは、指定されたSCNまたは時点までリカバリし、データベースをマウント状態のままにします。

RMANは、メディア・リカバリの完了後にスタンバイ・データベースをマウント状態のままにしますが、スタンバイ・データベースを手動リカバリ・モードおよび管理リカバリ・モードには設定しません。RMANがスタンバイ・データベースを作成した後、スタンバイ・データベースを手動リカバリ・モードまたは管理リカバリ・モードに設定したり、読取り専用モードでオープンする前に、すべてのギャップ・シーケンスの問題を解決する必要があります。

制御ファイルのチェックポイントSCNは、スタンバイ・サイトから使用できるかRMANバックアップに含まれるアーカイブREDOログに含める必要があります。たとえば、スタンバイ制御ファイルを作成し、その直後に順序が100の現行ログをアーカイブするとします。この場合、スタンバイ制御ファイルのバックアップはその時点以後に取られるため、少なくともログ順序100までスタンバイ・データベースをリカバリしないと、データベースからORA-1152エラー・メッセージが発行されます。

fileNameConversionSpec
ソース・データベースのファイル名を複製データベースのファイル名にマップする1つ以上のパターンを指定します(例2-75を参照)。

DUPLICATEコマンドで設定されるDB_FILE_NAME_CONVERTは、初期化パラメータDB_FILE_NAME_CONVERT(設定されている場合)をオーバーライドします。たとえば、初期化パラメータ・ファイルの設定がDB_FILE_NAME_CONVERT=('disk1','disk2')であっても、DUPLICATE ...DB_FILE_NAME_CONVERT ('disk1','disk3')を実行した場合、RMANでは、disk1サブストリングはdisk2に変換されません。かわりに、RMANによってdisk1サブストリングがdisk3に変換されます。

指定リストのファイルがDUPLICATEの変換パラメータに影響されない場合は、他の方法(SET NEWNAMEなど)でそのファイルの名前を変更する必要があります。

注意: SPFILE句を指定した場合に、DUPLICATE ... DB_FILE_NAME_CONVERTを実行すると、SPFILE構文で指定されている変換パラメータはすべてオーバーライドされます。たとえば、DUPLICATEコマンドで、SPFILE句の内側と外側の両方でDB_FILE_NAME_CONVERTを指定した場合、SPFILE句の外側の設定が優先されます。

関連項目: fileNameConversionSpecを参照してください。

FROM ACTIVE DATABASE 複製データベースのファイルは、ソース・データベースのバックアップからではなく、ソース・データベースから直接提供されるように指定します(例2-72を参照)。

関連項目: コマンドの前提条件については、「アクティブなデータベースの複製に固有の前提条件」を参照してください。

LOGFILE スタンバイ・データベースではない複製データベースを作成するときのオンラインREDOログ作成のオプションを指定します(例2-75を参照)。
   INSTANCE 'inst_name' 指定されたインスタンスのオンラインREDOログをReal Applications Cluster(Oracle RAC)データベースに作成します。インスタンス名は、最大80文字の文字列です。

RMANは、指定されたインスタンスにマップされたスレッドを自動的に使用します。INSTANCE名を指定しなかった場合は、デフォルトのインスタンスにログ・ファイルが作成されます。

この句は、DUPLICATE TARGET DATABASEを使用して、Oracle RACデータベースをシングル・インスタンスのデータベースに複製する場合に役に立ちます。それ以外の場合、INSTANCEを使用する必要はありません。LOGFILE句を使用する場合は、INSTANCEを使用して、データベースのバックアップ時(バックアップベースで複製する場合)またはUNTIL TIMEの実行時(アクティブなデータベースを複製する場合)にオープンしていた各スレッドのOracle RACインスタンスの名前を指定します。

   logSpec
オンラインREDOログ・ファイルのファイル名およびグループを指定します。

関連項目: 有効なオプションについては、logSpecを参照してください。

NOFILENAMECHECK ソース・データベース・ファイルが複製データベース・ファイルと同じ名前を共有するときに、ソース・データベースのデータファイルおよびオンラインREDOログ・ファイルが使用中であるかどうかのチェックを、RMANでチェックしないようにします。複製操作によって有用なデータが上書きされないかどうかを確認するのは、ユーザーの責任です。

このオプションが必要になるのは、ディスク構成、ディレクトリ構造およびファイル名がソース・データベースのホストと同じであるが、それとは別のホストに複製データベースを作成する場合です。たとえば、srchost/dbsディレクトリに小規模なデータベースがあるとします。

/oracle/dbs/system_prod1.dbf
/oracle/dbs/users_prod1.dbf
/oracle/dbs/rbs_prod1.dbf

このデータベースを、同じファイル・システムである/oracle/dbs/*を持つdesthostに複製し、複製データベースとソース・データベースで同じファイル名を使用する必要があるとします。この場合は、NOFILENAMECHECKを指定して、エラー・メッセージを回避します。RMANは別のホストを認識していないため、ファイル名のチェックが不要であることを自動的に判断できません。

ソース・データベースと同じホストにデータベースを複製する場合は、NOFILENAMECHECKが設定されていないことを確認してください。設定されていると、RMANによってターゲット・データベースのデータファイル、一時ファイルまたはオンライン・ログが上書きされ、破損する場合があります。また、次のエラーが発行される場合があります。

RMAN-10035: exception raised in RPC: ORA-19504: failed to create 
            file "/oracle/dbs/tbs_01.f" 
ORA-27086: skgfglk: unable to lock file - already in use 
SVR4 Error: 11: Resource temporarily unavailable 
Additional information: 8 
RMAN-10031: ORA-19624 occurred during call to 
DBMS_BACKUP_RESTORE.RESTOREBACKUPPIECE
NOREDO 次のいずれかが該当する場合は、一貫性バックアップのリカバリ時にアーカイブREDOログ・ファイルが適用されないように指定します。
  • アーカイブREDOログ・ファイルが使用可能であっても、アーカイブREDOログ・ファイルを一貫性バックアップに適用しない場合。

  • ソース・データベースがバックアップ時にNOARCHIVELOGモードで実行され、複製がターゲット・データベースに接続されていない場合。

  • ソース・データベースが、現在はARCHIVELOGモードで実行されているが、バックアップ時にはNOARCHIVELOGモードであった場合。

NORESUME 複製操作に失敗したときに自動的にリカバリするRMANの機能を無効にします。複製の初回起動時にNORESUMEを使用すると、新しいデータベースに対するそれ以降のすべての複製コマンドで、この自動最適化機能が永久に無効になります。

関連項目: DUPLICATE操作失敗時の自動リカバリの詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。

OPEN RESTRICTED SQL文ALTER SYSTEM ENABLE RESTRICTED SESSIONを発行して、制限されたセッションを複製データベースで有効にします。RMANは、複製データベースがオープン状態になる直前にこの文を発行します。
PASSWORD FILE 補助インスタンスで現在使用されているパスワード・ファイルを、ソース・データベースのパスワード・ファイルで上書きするように指定します(例2-72を参照)。このオプションは、FROM ACTIVE DATABASEが指定されている場合にのみ有効です。指定されていない場合は、RMANによりエラーが発行されます。

FOR STANDBYを指定すると、RMANがパスワード・ファイルをデフォルトでコピーします。指定しない場合は、デフォルトではコピーしません。PASSWORD FILEを使用すると、RMANでは、ソース・データベースのパスワード・ファイルで、既存のパスワード・ファイルを上書きするように指定できます。本番データベースで使用可能なすべてのパスワードを複製データベースに組み込む場合は、PASSWORD FILEオプションを使用します。

PFILE filename 補助インスタンスで使用するテキストベースの初期化パラメータ・ファイルを指定します(例2-75を参照)。RMANでは、複製中に補助インスタンスが自動的に停止され、再起動されます。デフォルトの場所にあるサーバー・パラメータ・ファイルを補助インスタンスで使用しない場合は、補助インスタンスの起動時にRMANで使用するテキストベースの初期化パラメータ・ファイルを指定する必要があります。初期化パラメータ・ファイルは、複製の実行に使用するRMANクライアントと同じホストに存在する必要があります。

デフォルトの場所にあるサーバー・パラメータ・ファイルを補助インスタンスで使用する場合は、PFILEを指定する必要はありません。

SKIP READONLY 現行の読取り専用表領域にあるデータファイルを複製データベースから除外します。デフォルトでは、RMANは現在の読取り専用表領域を複製します。

表領域は現在読み書き両用に設定されていますが、untilClauseを使用して表領域が読取り専用であったSCNにデータベースを複製する場合、RMANはこの表領域を複製データベースに含めません。以前に読取り専用であった表領域は、オフラインの表領域とみなされるため、複製には含まれません。

注意: このオプションでDUPLICATEコマンドが成功するには、読取り専用の表領域は自己完結型である必要があります。

SKIP TABLESPACE tbs_name 指定した表領域を複製データベースから除外します(例2-75を参照)。

注意: SYSが所有するオブジェクト、ロールバック・セグメントが含まれている表領域、またはマテリアライズド・ビューが含まれている表領域は除外しないでください。また、複製する表領域のセットは自己完結型である必要があります。

ソース・データベースのバックアップの一部が存在しない場合にそのデータベースを複製するには、SKIP TABLESPACEを指定する必要があります。SKIP TABLESPACEを指定しない場合、RMANは次の複製を試みます。

  • データファイルがオンラインであるかどうかに関係なく、オンライン表領域内のすべてのデータファイル。

  • NORMAL以外のオプションでオフライン化されたすべての表領域。たとえば、RMANはIMMEDIATEオプションでオフライン化された表領域の複製を試みます。OFFLINE NORMAL表領域は複製できませんが、この種の表領域は複製後に手動で追加できます。

SPFILE サーバー・パラメータ・ファイルをソース・データベースから複製データベースにコピーします。複製データベースで以前設定された初期化パラメータは使用されません。
   setParameter
指定された初期化パラメータを指定された値に設定します。setParameterを参照してください。

PARAMETER_VALUE_CONVERT
string_pattern
[setParameter]
最初の文字列に一致するすべての初期化パラメータ値を、2番目の文字列で置換します。dupOptionListPARAMETER_VALUE_CONVERTの説明を参照してください。
TABLESPACE tablespace_name 指定したデータベースに入れる表領域を指定します。複製データベースから除外する表領域を指定するSKIP TABLESPACEとは異なり、このオプションを使用すると、含める表領域が指定された後、残りの表領域はスキップされます。

注意: SYSTEM表領域、SYSAUX表領域およびUNDO表領域は、RMANによって複製データベースに自動的に含まれます。これらの表領域はスキップできません。また、これらの表領域のセットは自己完結型である必要があります。

UNDO TABLESPACE tablespace_name UNDOセグメントが含まれている表領域の名前を指定します。このオプションは、表領域のサブセットがSKIP TABLESPACE句およびTABLESPACE句を使用して複製される場合にのみ必要です。次の場合は、UNDOセグメントを持つ表領域のリストを指定する必要があります。
  • ターゲット・データベースまたはリカバリ・カタログへの接続がない場合。

  • リカバリ・カタログへの接続がなく、ターゲットへの接続はあるが、ターゲット・データベースがオープンされていない場合。


TO RESTORE POINT
restore_point_name
リストア・ポイントを作成した時点のSCNを上限として、バックアップベースの複製のリストア・ポイントを指定します。指定した値は含まれます。上限値が含まれるため、RMANは、対応するSCN以前のデータベースの複製に使用できるファイルのみを選択します。

注意: untilClauseに適用される制約と同じものが、TO RESTORE POINTにも適用されます。

untilClause
バックアップベースの複製のPoint-in-Timeリカバリの終了時刻、SCNまたはログ順序番号を設定します(例2-75を参照)。UNTIL句は、アクティブなデータベース複製ではサポートされません。

DUPLICATEコマンドの前にSET UNTILを実行しても、同じ結果が得られます。複製にUNTIL句を指定する場合は、次の制約が適用されます。

  • RMANでは、NOREDOを使用するかどうかは、データベースの現在の状態に基づいて決定されます。指定したUNTILの時刻またはSCNの時点でアーカイブ・モードのデータベースが、現在のアーカイブ・モードと異なっている場合、RMANでは、NOREDOは使用されません。

  • DUPLICATEコマンドのエンド・ポイントを、最新のALTER DATABASE OPEN RESETLOGSのSCNより前にすることはできません。ターゲットに接続して行う複製では、以前のデータベース・インカネーションはサポートされません。ただし、ターゲット・データベースに接続せずに複製する場合は、以前のインカネーションを指定できます。

  • 複製データベースを現時点、つまり最新のSCNまでリカバリすることはできません。RMANは、使用可能な最新のアーカイブ・ログまたはその前まで複製データベースをリカバリしますが、オンライン・ログまではリカバリできません。


setParameter

この副次句は、サーバー・パラメータ・ファイルの値を指定します。

構文要素 説明
SET identifier string 指定された初期化パラメータを指定された値に設定します(例2-73を参照)。SETを使用すると、メモリー内の差異を調整し、レプリケーション・オプションを無効化し、複製データベースの他のオプションを設定できます。

このSET機能は、サーバー・パラメータ・ファイルをリストアした後で複製を一時停止し、ALTER SYSTEM SET文を発行して初期化パラメータ・ファイルを変更する操作と同じです。

RMANでは、SETは、PARAMETER_VALUE_CONVERTの後に処理されます。あるパラメータで指定されたファイル名がPARAMETER_VALUE_CONVERTによって設定され、同じパラメータで指定されたファイル名がSETによって設定される場合、SETの値がPARAMETER_VALUE_CONVERTによる設定をオーバーライドします。

注意: DUPLICATEコマンドでDB_FILE_NAME_CONVERTが指定された場合は、そのファイル名の設定は、SPFILE SETで指定された競合する設定をオーバーライドします。

   COMMENT 'string' パラメータ設定のオプションのコメントを指定します。
RESET identifier string 指定した初期化パラメータをパラメータ・ファイルから削除します。RESETを使用して不要な初期化パラメータを削除できます。

このRESET機能は、サーバー・パラメータ・ファイルをリストアした後で複製を一時停止し、ALTER SYSTEM RESET文を発行して初期化パラメータ・ファイルを変更する操作と同じです。


logSpec

この副次句では、スタンバイ・データベースではない複製データベースを作成するときのオンラインREDOログを指定します。構文図は、logSpec::=」を参照してください。

LOGFILEを指定しないと、RMANはまずLOG_FILE_NAME_CONVERT、DB_CREATE_FILE_DEST、DB_RECOVERY_FILE_DESTまたはDB_CREATE_ONLINE_LOG_DEST_n初期化パラメータのいずれかが設定されているかどうかを確認します。これらのパラメータが設定されている場合、RMANはこれらのパラメータ設定に基づいて、複製データベースのオンラインREDOログ・ファイルをOracle管理ストレージに格納します。これらの初期化パラメータのいずれも設定されていない場合、RMANは複製データベースのREDOログ・ファイルにソース・データベースの元のREDOログ・ファイル名を使用します。この場合は、NOFILENAMECHECKオプションを指定する必要があります。

構文要素 説明
'filename' SIZE sizeSpec オンラインREDOログ・メンバーのファイル名と、KB単位(K)またはMB単位(M)によるファイル・サイズを指定します。デフォルトはバイト単位です。
   REUSE データベースで既存のファイルを再利用できます。ファイルが存在している場合は、そのサイズがSIZEパラメータと一致しているかどうかがデータベースで検証されます。ファイルが存在しない場合は作成されます。

GROUP integer
('filename', ...)
SIZE sizeSpec
オンラインREDOログ・メンバーを含むグループ、オンラインREDOログ・メンバーのファイル名、およびKB単位(K)またはMB単位(M)のファイル・サイズを指定します。デフォルトはバイト単位です。
   REUSE データベースで既存のログを再利用できます。

例2-72 アクティブなデータベースから同じディレクトリ構造を持つホストへの複製

データベースprod1を基にしてテスト・データベースを新しいホストに作成するとします。新しいホストのディレクトリ構造はソース・ホストと同じであるため、複製データベースのファイルには、ソース・データベースのファイルと同じ名前を使用できます。データベースは、RMANバックアップを使用せずに作成でき、複製中もprod1をオープン状態のままにしておくことができます。

prod1でサーバー・パラメータ・ファイルが使用されている場合は、任意の値に設定されたDB_NAMEパラメータのみを含む初期化パラメータ・ファイルをトランスポート先ホストに作成できます。補助インスタンスを起動する前に、ソース・データベースと同じSYSDBAパスワードを使用するパスワード・ファイルを作成する必要があります。その後、補助インスタンスはspfileを使用して(使用可能な場合)起動します。pfileを使用して補助インスタンスを起動すると、RMANはデフォルトの場所にspfileを作成し、spfileファイルが存在する場合はそれを上書きします。

デフォルトでは、RMANはスタンバイ・データベースではない複製データベースを作成するときにパスワード・ファイルを複製しません。PASSWORD FILEオプションを指定すると、RMANはパスワード・ファイルをトランスポート先ホストにコピーします。ソース・データベースで使用可能なすべてのパスワードを複製データベースに組み込む場合は、PASSWORD FILEオプションを使用します。

補助チャネルを構成する必要はありません。RMANは、ソース・データベースに構成された通常のチャネルを使用してデータベース・ファイルをコピーします。RMANを起動し、ソース・データベース・インスタンスおよび補助データベース・インスタンスに次のように接続して、データベースを複製します。

% rman
RMAN> CONNECT TARGET SYS@prod1

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

RMAN> CONNECT AUXILIARY SYS@dup1

auxiliary database Password: password
connected to auxiliary database: DUP1 (not mounted)

RMAN> DUPLICATE TARGET DATABASE TO dup1
2> FROM ACTIVE DATABASE
3> NOFILENAMECHECK
4> PASSWORD FILE
5> SPFILE;

例2-73 アクティブなデータベース複製でのサーバー・パラメータ・ファイルのコピー

データベースprod1を基にしてスタンバイ・データベースを新しいホストに作成するとします。トランスポート先ホストとソース・ホストはディレクトリ構造が異なるため、スタンバイ・データベース・ファイルは、/disk1ではなく/disk2に保存されます。スタンバイ・データベースは、RMANバックアップを使用せずに作成でき、複製中もprod1をオープン状態のままにしておくことができます。

最初に実行するのは、スタンバイ・データベース用に必要最小限の初期化パラメータ・ファイルを作成することです。次に、スタンバイ・インスタンスを起動します。このパラメータ・ファイルは、必要最小限のものとします。それは、SPFILEオプションを使用すると、RMANでは、サーバー・パラメータ・ファイルが新規ホストにコピーされ、各種パラメータが新しい指定値に設定されるためです。スタンバイ・インスタンスの起動に使用されたパラメータは無視されます。

RMANクライアントを起動し、CONNECTを実行してTARGETとしてソース・データベースに接続して、補助インスタンスに接続します。次に示すように、ターゲット・インスタンスに複数のチャネルを割り当て、補助インスタンスに1つのチャネルを割り当てます。

ALLOCATE CHANNEL tgt10 TYPE DISK; 
ALLOCATE CHANNEL tgt20 TYPE DISK; 
ALLOCATE CHANNEL tgt30 TYPE DISK; 
ALLOCATE CHANNEL tgt40 TYPE DISK; 
ALLOCATE AUXILIARY CHANNEL dup1 TYPE DISK;

次のコマンドを入力できます。

DUPLICATE TARGET DATABASE
  FOR STANDBY
  FROM ACTIVE DATABASE
  PASSWORD FILE
  SPFILE 
    PARAMETER_VALUE_CONVERT '/disk1', '/disk2'
    SET DB_FILE_NAME_CONVERT '/disk1','/disk2'
    SET LOG_FILE_NAME_CONVERT '/disk1','/disk2'
    SET DB_UNIQUE_NAME 'dup1'
    SET SGA_MAX_SIZE 200M
    SET SGA_TARGET 125M;

例2-74 同じディレクトリ構造を持つホストへのターゲット接続なしのデータベース複製

バックアップを使用してソース・データベースprodを複製し、このデータベースにRMANをTARGETとして接続しない(このソース・データベースはメンテナンスのためにシャットダウンされているため)とします。環境は次のとおりです。

  • ソース・ホストとトランスポート先ホストのディレクトリ構造は同じです。複製データベース内のデータファイルとオンラインREDOログの名前は、ソース・データベースでの名前と同じである必要があります。

  • オンラインREDOログ・ファイルでの番号と同じ番号が複製データベースで使用されます。

  • リカバリ・カタログを使用できます。ソース・データベース名prodは、リカバリ・カタログで一意です。

  • 補助チャネルはCONFIGURE CHANNELコマンドを使用して構成されています。

次のコマンドによって、dupdbという名前の複製データベースが作成されます。

% rman 

RMAN> CONNECT CATALOG rman@catdb;
 
recovery catalog database Password: password
connected to recovery catalog database

RMAN> CONNECT AUXILIARY SYS@dupdb;

auxiliary database Password: password
connected to auxiliary database: DUPDB (not mounted)

RMAN> DUPLICATE DATABASE 'PROD' TO 'DUPDB' NOFILENAMECHECK;

データベース名prodがリカバリ・カタログで一意ではない別の例を想定します。次のDUPLICATEコマンドは、DBIDパラメータを使用してソース・データベースを一意に識別します。

RMAN> DUPLICATE DATABASE 'PROD' DBID 39525561 TO 'DUPDB' NOFILENAMECHECK;

例2-75 DUPLICATEコマンドでの新しいファイル名の設定

srchost上のソース・データベースproddesthost上のnewdbに複製するためにテープ・バックアップを使用すると想定します。

この使用例では、ソース・データベースでサーバー・パラメータ・ファイルが使用されません。テキストベースの初期化パラメータ・ファイルをdesthost上に作成し、それを使用してデータベース・インスタンスを起動します。したがって、バックアップベースの複製ではターゲット接続を使用する必要があります(表2-6を参照)。

desthostDUPLICATEを実行する場合は、PFILEパラメータを使用して、初期化パラメータ・ファイルの場所を指定する必要があります。RMANクライアントは、複製データベースの初期化パラメータ・ファイルと同じホストで使用する必要があります。

表領域のexamplehistoryは、複製データベースに含めないことにします。したがって、これらの表領域については、DUPLICATE ...SKIP TABLESPACEを指定します。また、複製データベースの状態は、24時間前の本番データベースと同じにします。したがって、DUPLICATE ...UNTIL TIMEを使用します。

この例は、ソース・データベースのデータファイルがsrchostのディレクトリ/h1/oracle/dbs/trgtに存在していることを前提としています。データファイルをディレクトリ/h2/oracle/oradata/newdbに複製するため、DUPLICATE ... DB_FILE_NAME_CONVERTで複製データファイルの名前を生成するように指定します。複製データベース内のオンラインREDOログ・ファイルの名前は、DUPLICATE ...LOGFILEを使用して指定します。

desthost上でRMANクライアントを起動し、CONNECTを実行してTARGETとしてソース・データベースに接続して、補助インスタンスに接続します。次のRUNコマンドを入力できます。

RUN
{  
  ALLOCATE AUXILIARY CHANNEL newdb DEVICE TYPE sbt; 
  DUPLICATE TARGET DATABASE TO newdb
    PFILE ?/dbs/initNEWDB.ora
    UNTIL TIME 'SYSDATE-1'  # specifies incomplete recovery
    SKIP TABLESPACE example, history   # skip desired tablespaces
    DB_FILE_NAME_CONVERT ('/h1/oracle/dbs/trgt/','/h2/oracle/oradata/newdb/')
    LOGFILE
      GROUP 1 ('/h2/oradata/newdb/redo01_1.f',
               '/h2/oradata/newdb/redo01_2.f') SIZE 4M,
      GROUP 2 ('/h2/oradata/newdb/redo02_1.f',
               '/h2/oradata/newdb/redo02_2.f') SIZE 4M,
      GROUP 3 ('/h2/oradata/newdb/redo03_1.f',
               '/h2/oradata/newdb/redo03_2.f') SIZE 4M REUSE;
}

例2-76 SET NEWNAME FOR DATABASEを使用した複製ファイル名の設定

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

ソース・データベースprodには、複数のディレクトリに分散している8つのデータファイルが含まれています。このデータファイルはOracle Managed Filesではありません。トランスポート先ホストdesthost上のdupdbにソース・データベースを複製します。

この使用例では、srchostdesthostのディレクトリ構造は異なっています。データファイルを/oradata1サブディレクトリ内のdesthostに格納するために、SET NEWNAME FOR DATABASEを使用してディレクトリ・パスを除いたファイル名を指定します。たとえば、ソース・データベースの名前が/oradata/prod/financial.dbfの場合、%bを使用するとfinancial.dbfに変換されます。

ソース・データベースではサーバー・パラメータ・ファイルが使用されないため、SPFILE方法を使用して複製データファイルの名前を指定することはできません。すべての複製データファイルをトランスポート先ホスト上の同じディレクトリに格納するために、SET NEWNAME DATABASEコマンドを使用することにします。

サイズが200KBのメンバーがそれぞれに2つ含まれている2つのオンラインREDOログ・グループを、トランスポート先ホスト上の/duplogsディレクトリに作成します。srchostおよびdesthostでは、NFSなどの手段によってお互いのファイル・システムをマウントできないとします。

ソース・データベース内のすべてのデータファイルおよびアーカイブREDOログ・ファイルに対して、ディスク上にディスク・コピーまたはバックアップ・セットを格納し、オペレーティング・システムのユーティリティを使用してそれらをdesthostに手動でコピーしてあります。これらのバックアップおよびコピーは、desthost上のsrchostと同じ場所に存在します。

オペレーティング・システムのユーティリティを使用して、srchostからdesthostの適切な場所に初期化パラメータ・ファイルをコピーします。末尾が_DESTのすべての初期化パラメータを再設定し、パス名を指定します。RUNコマンド自体にデータファイルおよびオンライン・ログの名前を指定しているため、DB_FILE_NAME_CONVERTおよびLOG_FILE_NAME_CONVERTは設定しません。補助インスタンスではデフォルトの場所にあるサーバー側初期化パラメータ・ファイルが使用されるため、DUPLICATEコマンドにPFILEパラメータは必要ありません。

次のサンプル・スクリプトでは、複製データベースが作成されます。SET NEWNAMEを実行できるのはRUNコマンド内のみのため、RUNコマンドが必要です。

RUN
{
  SET NEWNAME FOR DATABASE TO '/oradata1/%b'; 
  DUPLICATE TARGET DATABASE TO dupdb
    LOGFILE
      GROUP 1 ('/duplogs/redo01a.log', 
               '/duplogs/redo01b.log') SIZE 4M REUSE,
      GROUP 2 ('/duplogs/redo02a.log',
               '/duplogs/redo02b.log') SIZE 4M REUSE;
}

例2-77 SET NEWNAME FOR DATAFILEおよびSET NEWNAME FOR TABLESPACEを使用した複製ファイル名の設定

この使用例では、バックアップベースの複製を使用してデータベースを複製します。

ソース・データベースprodsrchostにあり、これには複数のディレクトリに分散されている9つのデータファイルが含まれているとします。リモート・ホストdesthost上のデータベースdupdbにソース・データベースを複製します。dupdbデータベースでは、表領域toolsは除外されますが、その他の表領域はすべて保持されます。

ソース・データベースではサーバー・パラメータ・ファイルが使用されないため、SPFILE方法を使用して複製データファイルの名前を指定することはできません。複製データファイルは複数のディレクトリに分散されるため、SET NEWNAMEコマンドを使用してファイル名を指定することにします。

この使用例では、srchostdesthostのディレクトリ構造は異なっています。データファイルを/oradata1から/oradata7までのサブディレクトリ内のdesthostに格納します。/oradata7に複製する2つのデータファイルが含まれているusers表領域を除き、各データファイルを異なるディレクトリに配置します。

サイズが200KBのメンバーがそれぞれに2つ含まれている2つのオンラインREDOログ・グループを、トランスポート先ホスト上の/duplogsディレクトリに作成します。srchostおよびdesthostでは、NFSなどの手段によってお互いのファイル・システムをマウントできないとします。

ソース・データベース内のすべてのデータファイルおよびアーカイブREDOログ・ファイルに対して、ディスク上にディスク・コピーまたはバックアップ・セットを格納し、オペレーティング・システムのユーティリティを使用してそれらをdesthostに手動でコピーしてあります。これらのバックアップおよびコピーは、desthost上のsrchostと同じ場所に存在します。

オペレーティング・システムのユーティリティを使用して、srchostからdesthostの適切な場所に初期化パラメータ・ファイルをコピーします。末尾が_DESTのすべての初期化パラメータを再設定し、パス名を指定します。RUNコマンド自体にデータファイルおよびオンライン・ログの名前を指定しているため、DB_FILE_NAME_CONVERTおよびLOG_FILE_NAME_CONVERTは設定しません。補助インスタンスではデフォルトの場所にあるサーバー側初期化パラメータ・ファイルが使用されるため、DUPLICATEコマンドにPFILEパラメータは必要ありません。

次のサンプル・スクリプトでは、複製データベースが作成されます。SET NEWNAMEを実行できるのはRUNコマンド内のみのため、RUNコマンドが必要です。

RUN
{
  SET NEWNAME FOR DATAFILE 1 TO '/oradata1/system01.dbf'; 
  SET NEWNAME FOR DATAFILE 2 TO '/oradata2/undotbs01.dbf';
  SET NEWNAME FOR DATAFILE 3 TO '/oradata3/cwmlite01.dbf'; 
  SET NEWNAME FOR DATAFILE 4 TO '/oradata4/drsys01'; 
  SET NEWNAME FOR DATAFILE 5 TO '/oradata5/example01.dbf'; 
  # because the users tablespace contains 2 datafiles, the following command
  # generates unique names for both datafiles, placing them in /oradata7
  SET NEWNAME FOR TABLESPACE users TO '/oradata7/users%b.dbf';
  DUPLICATE TARGET DATABASE TO dupdb
    SKIP TABLESPACE tools
    LOGFILE
      GROUP 1 ('/duplogs/redo01a.log', 
               '/duplogs/redo01b.log') SIZE 4M REUSE, 
      GROUP 2 ('/duplogs/redo02a.log', 
               '/duplogs/redo02b.log') SIZE 4M REUSE;
}

例2-78 SET NEWNAME FOR DATAFILEを使用したOracle Managed Files名の設定

特定のデータファイルまたは一時ファイルを、他のデータベース・ファイルの場所から独立したOracle Managed Filesのトランスポート先に格納する方法は2通りあります。

  1. 補助インスタンスの初期化パラメータ・ファイル内のDB_CREATE_FILE_DESTパラメータを目的の場所に設定します。

  2. 初期化パラメータDB_CREATE_FILE_DESTおよびDB_FILE_NAME_CONVERTを設定します。この時点で、DB_FILE_NAME_CONVERTによる変換を行わないデータファイルに対してSET NEWNAMEコマンドを使用できます。

指定したデータファイルまたは一時ファイルが、DB_CREATE_FILE_DESTで指定した場所にOracle Managed Files名で作成されます。

次のサンプル・スクリプトに示すとおり、個々のデータファイルまたは一時ファイルを特定のASMディスク・グループに指定するためにSET NEWNAMEを使用することもできます。

RUN
{
   SET NEWNAME FOR DATAFILE 1 TO "+DGROUP1";
   SET NEWNAME FOR DATAFILE 2 TO "+DGROUP2";
   .
   .
   .
   DUPLICATE TARGET DATABASE 
     TO dupdb
     FROM ACTIVE DATABASE
     SPFILE SET DB_CREATE_FILE_DEST +DGROUP3;
}

例2-79 CONFIGURE AUXNAMEを使用した複製ファイル名の設定

この項では、例2-77「SET NEWNAME FOR DATAFILEおよびSET NEWNAME FOR TABLESPACEを使用した複製ファイル名の設定」で説明した状況と同じ状況を想定しています。この例は、SET NEWNAMEのかわりにCONFIGURE AUXNAMEを使用して新しいデータファイル名を指定する方法を部分的に変更したものです。これらの新しいファイル名は、制御ファイルに記録され、複製を今後実行するたびに使用されます。

この例では、データベースを複製するために自動チャネルおよびクライアント側初期化パラメータ、オンラインREDOログ・ファイルの名前およびサイズを指定するためにLOGFILE句も使用されます。この場合、SET NEWNAMEは使用しないため、RUNコマンドは必要ありません。

CONFIGURE AUXNAME FOR DATAFILE 1 TO '/oradata1/system01.dbf'; 
CONFIGURE AUXNAME FOR DATAFILE 2 TO '/oradata2/undotbs01.dbf';
CONFIGURE AUXNAME FOR DATAFILE 3 TO '/oradata3/cwmlite01.dbf'; 
CONFIGURE AUXNAME FOR DATAFILE 4 TO '/oradata4/drsys01'; 
CONFIGURE AUXNAME FOR DATAFILE 5 TO '/oradata5/example01.dbf'; 
CONFIGURE AUXNAME FOR DATAFILE 6 TO '/oradata6/indx01.dbf';
DUPLICATE TARGET DATABASE
  TO dupdb
  SKIP TABLESPACE tools
  LOGFILE
    GROUP 1 ('/duplogs/redo01a.log',
             '/duplogs/redo01b.log') SIZE 4M REUSE,
    GROUP 2 ('/duplogs/redo02a.log',
             '/duplogs/redo02b.log') SIZE 4M REUSE;

RMANは、すべての増分バックアップ、アーカイブREDOログ・バックアップおよびアーカイブREDOログ・ファイルを使用して不完全リカバリを実行し、次に、オンラインREDOログを作成するためにRESETLOGSオプションでデータベースをオープンします。

複製が完了した後、複製データベース内のデータファイルに構成された補助名を消去して、今後の操作で上書きされないようにすることができます。たとえば、次のコマンド入力します。

CONFIGURE AUXNAME FOR DATAFILE 1 CLEAR; 
CONFIGURE AUXNAME FOR DATAFILE 2 CLEAR; 
CONFIGURE AUXNAME FOR DATAFILE 3 CLEAR;
CONFIGURE AUXNAME FOR DATAFILE 4 CLEAR;
CONFIGURE AUXNAME FOR DATAFILE 5 CLEAR;
CONFIGURE AUXNAME FOR DATAFILE 6 CLEAR;

また、複製データベースを複製元のデータベースと定期的に同期させることもできます。この場合、DUPLICATEコマンドを再度実行すると、複製データベースを基本的に再作成できます。この方法では、複製データベースのデータファイルの完全なコピーを作成する必要があります。複製データベースをソース・データベースと同期させる場合は、常に次のスクリプトを実行します。たとえば、このスクリプトを毎日または毎週実行します。

DUPLICATE TARGET DATABASE TO dupdb
SKIP TABLESPACE tools
  LOGFILE
    GROUP 1 ('/duplogs/redo01a.log',
             '/duplogs/redo01b.log') SIZE 4M REUSE,
    GROUP 2 ('/duplogs/redo02a.log',
             '/duplogs/redo02b.log') SIZE 4M REUSE;

例2-80 同じディレクトリ構造を持つスタンバイ・データベースの作成

RMANバックアップを使用して、ソース・ホストと同じディレクトリ構造を持つリモート・ホストにスタンバイ・データベースを作成するとします。ソース・データベースはprod1と呼ばれ、Data Guard環境のプライマリ・データベースになります。

最初に、RMANクライアントを起動し、CONNECTを実行してTARGETとしてソース・データベースprod1に接続して、補助インスタンスに接続します。次に、CONFIGUREを実行して、DB_UNIQUE_NAMEstandby1のスタンバイ・データベースのデフォルトのデバイス・タイプをsbtに構成できます。

CONFIGURE DEFAULT DEVICE TYPE sbt FOR DB_UNIQUE_NAME standby1;
CONFIGURE DEVICE TYPE sbt PARALLELISM 2 FOR DB_UNIQUE_NAME standby1;

スタンバイ・データベースの作成に必要なすべてのバックアップがテープにあるとします。スタンバイ・データベースの初期化パラメータ・ファイルで、DB_UNIQUE_NAMEstandby1に設定します。

スタンバイ・データベースでは、初期化パラメータ・ファイルのデフォルトの場所が使用されています。スタンバイ・インスタンスNOMOUNTが起動したら、RMANクライアントを起動し、CONNECTを実行してTARGETとしてソース・データベースに接続して、補助インスタンスとリカバリ・カタログに接続します。次のDUPLICATEコマンドを実行して、NOFILENAMECHECKオプションを指定します(スタンバイとプライマリのデータファイルおよびオンラインREDOログ・ファイルの名前は同じです)。

DUPLICATE TARGET DATABASE FOR STANDBY
  NOFILENAMECHECK;

例2-81 OMFおよびASMでのスタンバイ・データベースの作成

RMANバックアップを使用して、OMFおよびASMを使用するホストにスタンバイ・データベースを作成するとします。ソース・データベースはprod1と呼ばれ、Data Guard環境のプライマリ・データベースになります。

最初に、RMANクライアントを起動し、CONNECTを実行してTARGETとしてデータベースprod1に接続して、リカバリ・カタログに接続します。次のCONFIGUREコマンドを実行して、DB_UNIQUE_NAMEstandby1、ネット・サービス名がsby1となるスタンバイ・データベースのデフォルト・デバイス・タイプをsbtに構成します。

CONFIGURE CONNECT IDENTIFIER "sby1" FOR DB_UNIQUE_NAME standby1;
CONFIGURE DEFAULT DEVICE TYPE TO sbt FOR DB_UNIQUE_NAME standby1;
CONFIGURE DEVICE TYPE sbt PARALLELISM 2 FOR DB_UNIQUE_NAME standby1;

スタンバイ・データベースの作成に必要なバックアップは、すべてテープに保存されているとします。データベースstandby1の初期化パラメータ・ファイルで、次のパラメータを設定します。

  • DB_UNIQUE_NAMEの値をstandby1に設定します。

  • DB_CREATE_FILE_DESTおよびDB_RECOVERY_FILE_DESTを、スタンバイ・ホスト上の目的のASMディスク・グループに設定します。たとえば、DB_CREATE_FILE_DEST+DATAFILEに、DB_RECOVERY_FILE_DEST+FLASH_REC_AREAに設定します。

スタンバイ・インスタンスがNOMOUNTモードであることを確認します。RMANクライアントを起動し、CONNECTを実行してTARGETとしてデータベースprod1に接続して、AUXILIARYとしてstandby1インスタンスに接続し、リカバリ・カタログに接続します。次のコマンドを入力して、スタンバイ・データベースを作成します。

DUPLICATE TARGET DATABASE FOR STANDBY;

リストアされるデータファイルの新しいOMF/ASMデータファイル名は、RMANで自動的に生成されます。

例2-82 ターゲット・データベースおよびリカバリ・カタログへの接続なしのデータベース複製

この例では、データベースprodの必要なすべてのデータファイル、制御ファイルおよびアーカイブ・ログのバックアップに、/net/prod/backupsからアクセスできるとします。この場所には、データベースprodのバックアップのみが格納されています。AUXILIARYとして新しいインスタンスにのみ接続します。

リカバリ・カタログまたはターゲット・データベースへの接続がない場合は、次のコマンドを入力してテスト・データベースを作成します。

DUPLICATE DATABASE TO 'TEST' BACKUP LOCATION '/net/prod/backups' NOFILENAMECHECK;

例2-83 ターゲット・データベースおよびリカバリ・カタログへの接続なしの複製での特定データベースの選択

この例では、/backupsに複数のデータベースからのバックアップが含まれ、PRODという名前のデータベースが3つ以上存在しているとします。この場合、複製するデータベースのDBNAMEおよびDBIDを指定する必要があります。補助インスタンスにのみ接続します。

DUPLICATE DATABASE 'PROD' dbid 8675309 to 'TEST'
  UNTIL TIME "to_date('11/01/2007', 'MM/DD/YYYY')"
  BACKUP LOCATION '/backups' NOFILENAMECHECK
  PFILE='?/dbs/inittest.ora' db_file_name_convert='prod','test';