用途
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コマンドでの混在するプラットフォームのサポートの詳細は、My Supportノート1079563.1 (https://support.oracle.com/CSP/main/article?cmd=show&type=NOT&id=1079563.1)を参照してください。
DUPLICATEコマンドを実行するには、1つ以上の補助チャネルが必要です。これらのチャネルは、補助データベース・インスタンスで複製処理を実行します。次のような場合、RMANはソース・データベースのチャネル構成を補助チャネルに使用します。
補助チャネルの手動割当てにALLOCATE CHANNELを使用しなかった場合。
補助チャネルの構成にCONFIGUREを使用しなかった場合。
CONNECT文字列を使用するように自動ターゲット・チャネルを構成した場合、RMANは補助インスタンスのチャネル割当てを複製しようとします。ただし、複製用のチャネル割当てを制御または変更する必要がある場合は、補助チャネルを手動で割り当てます。
COMPATIBLE初期化パラメータが11.0.0以上に設定されている場合、デフォルトでは、トランスポート後に読み書き両用に設定されていなかったトランスポータブル表領域が複製されます。それ以外の場合、RMANでは、トランスポート後に読み書き両用に設定されていないかぎり、トランスポータブル表領域は複製できません。
列レベルで機能する透過的データ暗号化(TDE)と表領域暗号化のデータベース暗号化機能のいずれにも、Oracleソフトウェア・キーストアが使用されています。複製する表領域が暗号化されている場合は、複製データベースにキーストアを手動でコピーする必要があります。キーストアが自動ログイン(SSO)・キーストアでない場合、複製データベースで自動ログイン・キーストアに変換する必要があります。
関連項目:
TDEの詳細は、『Oracle Database Advanced Securityガイド』を参照してください
バックアップベースの複製に固有の前提条件
表2-6に示すように、バックアップベースの複製の前提条件は、RMANがTARGETとしてソース・データベースに接続しているかどうかによって異なります。
表2-6 バックアップベースの複製の3つのモードに対する前提条件
| 前提条件 | ターゲットおよびリカバリ接続なし | ターゲット接続なし | ターゲット接続 |
|---|---|---|---|
RMANは、リカバリ・カタログに接続している必要があります。 |
非該当 |
該当 |
非該当 |
トランスポート先ホストのサーバー・セッションから、複製データベースの作成とリカバリに使用するすべてのバックアップおよびアーカイブREDOログ・ファイルにアクセスできる必要があります。 |
該当 |
該当 |
該当 |
トランスポート先ホストとソース・ホストが異なる場合は、ソース・ホストのディスク上のバックアップを、ソース・データベースでのフルパス名と同じフルパス名で、トランスポート先ホストから使用できるようにする必要があります。 |
非該当 |
該当 |
該当 |
ソース・データベースの名前を |
非該当( |
該当 |
非該当 |
|
N/A |
非該当 |
該当 |
RMANでアーカイブREDOログ・ファイルがバックアップされないようにする場合は、 |
該当 |
該当 |
該当 |
表領域のサブセットを複製する場合およびソース・データベースがオープンされていない場合は、UNDOセグメントを含む複製されたすべての表領域を |
該当 |
非該当 |
該当(カタログを使用しておらず、ターゲットがオープンされていない場合) |
表領域のセットが自己完結型であること、およびそれらの表領域に |
非該当 |
非該当 |
該当 |
アクティブなデータベースの複製に固有の前提条件
FROM ACTIVE DATABASEを指定してDUPLICATEを実行する場合、1つ以上の通常のターゲット・チャネルおよび1つ以上のAUXILIARYチャネルが必要です。チャネルを構成しない、または事前に割り当てない場合、RMANは必要なチャネルをデフォルトで割り当てます。バックアップ・セットによるアクティブな複製のために、チャネルを構成するか、または手動で割り当てる場合、補助チャネルの数がターゲット・チャネルの数以上であることを確認します。
RMANからTARGETとしてソース・データベースに接続するときは、RMANでオペレーティング・システム認証を使用している場合でも、ユーザー名とパスワードを指定する必要があります。ソース・データベースはマウントまたはオープン状態である必要があります。ソース・データベースがオープン状態の場合は、アーカイブ処理を有効にする必要があります。ソース・データベースがオープンされていない場合は、一貫性を保った状態で停止されている必要があります。
RMANから補助インスタンスに接続する場合は、次の規則が適用されます。
補助インスタンスと同じホストでRMANを実行している場合、ユーザー名とパスワードを使用して接続し、DUPLICATEコマンドにPASSWORD FILE句が含まれていないときは、ネット・サービス名なしでローカルに接続できます。接続するユーザーは、SYSDBAまたはSYSBACKUP権限が必要です。
リモートで接続する場合、またはDUPLICATEコマンドでPASSWORD FILE句を使用する場合、ネット・サービス名を使用して接続する必要があります。最初に補助インスタンス用のパスワード・ファイルを作成する必要があります。
ソース・データベースと補助インスタンスは、同じSYSおよびSYSBACKUPパスワードを使用する必要があり、両方のインスタンスにはパスワード・ファイルが存在している必要があります。パスワード・ファイルには、SYSユーザーとSYSBACKUPユーザーのために、2つ以上のパスワードを含める必要があります。補助インスタンスを開始し、ソース・データベースから接続できるようにすることができます。
パスワード・ファイルに対するDUPLICATEの動作は、複製データベースがスタンバイ・データベースとして動作するかどうかで異なります。作成する複製データベースがスタンバイ・データベースでない場合、デフォルトでは、RMANはパスワード・ファイルをコピーしません。PASSWORD FILEオプションを使用すると、補助インスタンス上の既存のパスワード・ファイルを上書きするようにRMANに指定できます。スタンバイ・データベースを作成すると、デフォルトでは、RMANがパスワード・ファイルをスタンバイ・ホストにコピーするため、既存のパスワード・ファイルは上書きされます。その場合は、PASSWORD FILE句は必要ありません。
アクティブなデータベースの複製を実行する場合は、UNTIL句を使用できません。RMANは、データファイルを一貫性のある時点にリカバリできるように、オンライン・データファイルが完全にコピーされた時間に基づいて時間を選択します。
関連項目:
パスワード保護については、『Oracle Databaseセキュリティ・ガイド』を参照してください。
使用上の注意
マルチテナント・コンテナ・データベース(CDB)全体または1つ以上のプラガブル・データベース(PDB)を複製する場合、補助インスタンスをCDBとして作成する必要があり、ターゲット・インスタンスと補助インスタンスの両方のrootに接続する必要があります。補助インスタンスをCDBとして作成するには、初期化パラメータ・ファイルに宣言enable_pluggable_database=TRUEを含めます。
イメージ・コピーによるアクティブなデータベース複製では、ソース・データベースが補助ネット・サービス名を使用してネットワーク経由で宛先ホストの補助インスタンスにコピーされます。一方、バックアップ・セットによるアクティブなデータベース複製では、補助インスタンスがターゲット・インスタンスのネット・サービス名を使用してネットワーク経由でソース・データベース・ファイルを取得します。バックアップベースの複製では、既存のRMANバックアップとコピーを使用します。
表2-7に、ソース・データベースから複製されるファイルを示します。
表2-7 複製されるファイル
| ソース・データベースのファイル | アクティブなデータベース | バックアップベース |
|---|---|---|
制御ファイル |
|
バックアップからリストアします。 |
データファイル |
ソース・データベースからコピーされます( |
バックアップからリストアされます( |
一時ファイル |
再作成されます(「一時ファイルの再作成」を参照) |
再作成されます(「一時ファイルの再作成」を参照) |
オンラインREDOログ・ファイル |
再作成されます。 |
再作成されます。 |
スタンバイREDOログ・ファイル |
プライマリ・データベース上で |
プライマリ・データベース上で |
アーカイブREDOログ・ファイル |
ソース・データベースからコピーされます(ただし、複製に必要な場合のみ)。 |
バックアップまたはカタログ化済のコピーから取得されます(ただし、複製に必要な場合のみ)。 |
サーバー・パラメータ・ファイル |
ソース・データベースからコピーされます(「dupOptionList」の |
|
フラッシュバック・ログ・ファイル |
再作成されません。 |
再作成されません。 |
ブロック・チェンジ・トラッキング・ファイル |
再作成されません。 |
再作成されません。 |
パスワード・ファイル |
スタンバイ・データベースの場合はデフォルトでコピーされ、非スタンバイのデータベースでは、 |
再作成されません。 |
高速リカバリ領域のバックアップおよび他のファイル |
コピーされません。 |
コピーされません。 |
データファイルが正常にオフライン化されている場合または除外されている場合を除き、複製データベースにはすべてのデータファイルが格納されます。表領域を除外するには、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_DEST、DB_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」を参照してください。
CDBおよびPDBの複製
DUPLICATEコマンドでは、CDB、root、および1つ以上のPDBを複製できます。手順は、非CDBを複製する場合と似ています。違いは、SYSBACKUPまたはSYSDBA権限を付与されたユーザーとしてrootに接続する必要があることと、補助インスタンスをCDBとして作成する必要があることです。PDBを複製するには、DUPLICATEコマンドをPLUGGABLE DATABASEオプションとともに使用します。
関連項目:
CDBおよびPDBの複製の詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください
構文
(deviceSpecifier::=, fileNameConversionSpec::=, logSpec::=, setParameter::=, sizeSpec::=, untilClause::=)
セマンティクス
duplicate
この句を使用すると、データベースまたは表領域を複製できます。構文図は、「duplicate::=」を参照してください。
| 構文要素 | 説明 |
|---|---|
|
複製元のデータベースであるソース・データベースを指定します。Oracle Database 11gリリース2以上では、 |
|
ソース・データベースを指定します。 |
|
複製元のデータベースであるソース・データベースの名前を指定します。 RMANが ターゲット接続なしでバックアップベースの複製を実行する場合は、データベース名を指定するか、または |
|
ソース・データベースのデータベースID(DBID)を指定します。 ソース・データベースへの RMANでは、ソース・データベースに |
孤立したインカネーションを指定します。 デフォルトでは、
|
|
|
複製対象のデータベースをスタンバイ・データベースとして指定します(例2-91を参照)。
SPFILEを複製する場合は、 スタンバイ・データベースには
スタンバイ・データベース上のオンラインREDOログのファイル名の変換には、
注意: スタンバイ・データベースの作成時には 注意: RMANをスタンバイ・データベースに接続し、そのプライマリ・データベースが登録されているリカバリ・カタログに接続すると、スタンバイ・データベースは、RMANによって認識され、暗黙的に登録されます。スタンバイ・データベースには、 |
|
複製データベースの名前を指定します。この複製データベースは、スタンバイ・データベースではないため、この句は
複製データベースがソース・データベースと同じOracleホームにある場合、ソース・データベースと複製データベースに同じデータベース名は使用できません。ただし、複製データベースがソース・データベースとは別のOracleホームにある場合は、そのOracleホームにある他のデータベース名と異なっていれば、同じ名前でも使用できます。複製データベースの管理を容易にするために、ソース・データベースと複製データベースを別の名前にすることをお薦めします。 |
複製データベースまたはスタンバイ・データベースの作成に使用するオプションを指定します。「dupOptionList」を参照してください。 |
dupOptionList
この副次句には、複製時の各種機能(ファイルの名前付け、複製のエンド・ポイントの決定など)を制御するオプションが含まれます。構文図は、「dupOptionList::=」を参照してください。
複製データベースのファイル名がソース・データベースのファイル名と異なる必要がある場合(トランスポート先ホストとソース・ホストが同じである場合など)は、データファイルとオンラインREDOログに新しいファイル名を指定するか、ソース・データベースのファイル名を変換します。オンラインREDOログおよび複製データベースのデータファイルのファイル名を指定しない場合、RMANはソース・データベースのデータファイル名を使用します。
| 構文要素 | 説明 |
|---|---|
|
複製するデータベースのバックアップおよびコピーが置かれているディスク上のバックアップの場所を指定します。このオプションは、ターゲットまたはリカバリ・カタログに接続しない複製の場合に有効です。 |
|
指定したデバイス( このオプションが有効なのは、構成済の自動チャネルがあり、チャネルを手動で割り当てていない場合のみです。たとえば、自動ディスクおよびテープ・チャネルを 関連項目: 「 |
|
スタンバイ・データベースの作成後に、そのスタンバイ・データベースをリカバリします。 RMANは、メディア・リカバリの完了後にスタンバイ・データベースをマウント状態のままにしますが、スタンバイ・データベースを手動リカバリ・モードおよび管理リカバリ・モードには設定しません。RMANがスタンバイ・データベースを作成した後、スタンバイ・データベースを手動リカバリ・モードまたは管理リカバリ・モードに設定したり、読取り専用モードでオープンする前に、すべてのギャップ・シーケンスの問題を解決する必要があります。 制御ファイルのチェックポイントSCNは、スタンバイ・サイトから使用できるかRMANバックアップに含まれるアーカイブREDOログに含める必要があります。たとえば、スタンバイ制御ファイルを作成し、その直後に順序が100の現行ログをアーカイブするとします。この場合、スタンバイ制御ファイルのバックアップはその時点以後に取られるため、少なくともログ順序100までスタンバイ・データベースをリカバリしないと、データベースから |
ソース・データベースのファイル名を複製データベースのファイル名にマップする1つ以上のパターンを指定します(例2-85を参照)。
指定リストのファイルが 注意: SPFILE句を指定した場合に、 関連項目: 「 |
|
|
複製データベースのファイルは、ソース・データベースのバックアップからではなく、ソース・データベースから直接使用します(例2-82を参照)。 関連項目: コマンドの前提条件については、「アクティブなデータベースの複製に固有の前提条件」を参照してください |
|
スタンバイ・データベースではない複製データベースを作成するときのオンラインREDOログ作成のオプションを指定します(例2-85を参照)。 |
|
指定されたインスタンスのオンラインREDOログをReal Applications Cluster(Oracle RAC)データベースに作成します。インスタンス名は、最大80文字の文字列です。 RMANは、指定されたインスタンスにマップされたスレッドを自動的に使用します。 この句は、 |
オンラインREDOログ・ファイルのファイル名およびグループを指定します。 関連項目: 有効なオプションについては、「 |
|
|
一連の表領域が自己完結型である必要があるかどうかを確認するRMAN機能を無効にします。この確認は、ターゲット接続を持つバックアップベースの複製を実行するときに、RMANによって自動的に実行されます。 |
|
ソース・データベース・ファイルが複製データベース・ファイルと同じ名前を共有するときに、ソース・データベースのデータファイルおよびオンラインREDOログ・ファイルが使用中であるかどうかのチェックを、RMANでチェックしないようにします。複製操作によって有用なデータが上書きされないかどうかを確認するのは、ユーザーの責任です。 このオプションが必要になるのは、ディスク構成、ディレクトリ構造およびファイル名がソース・データベースのホストと同じであるが、それとは別のホストに複製データベースを作成する場合です。たとえば、 /oracle/dbs/system_prod1.dbf /oracle/dbs/users_prod1.dbf /oracle/dbs/rbs_prod1.dbf このデータベースを、同じファイル・システムである ソース・データベースと同じホストにデータベースを複製する場合は、 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 |
|
複製データベースを作成した後に、そのデータベースをオープンしないことを指定します。 デフォルトでは、RMANは複製データベースを作成した後に、 |
|
次のいずれかが該当する場合は、一貫性バックアップのリカバリ時にアーカイブREDOログ・ファイルを適用されないようにします。
|
|
複製操作に失敗したときに自動的にリカバリするRMANの機能を無効にします。複製の初回起動時に 関連項目: DUPLICATE操作失敗時の自動リカバリの詳細は、 |
|
SQL文 |
|
補助インスタンスで現在使用されているパスワード・ファイルを、ソース・データベースのパスワード・ファイルで上書きします(例2-82を参照)。このオプションは、
|
|
カンマ区切りのリストで指定された1つ以上のPDBを複製します。PDBを複製するには、「CDBおよびPDBへの接続」の説明に従って デフォルトでは、RMANによって、 PDBの複製の詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。 |
|
補助インスタンスで使用するテキストベースの初期化パラメータ・ファイルを指定します(例2-85を参照)。RMANでは、複製中に補助インスタンスが自動的に停止され、再起動されます。デフォルトの場所にあるサーバー・パラメータ・ファイルを補助インスタンスで使用しない場合は、補助インスタンスの起動時にRMANで使用するテキストベースの初期化パラメータ・ファイルを指定する必要があります。初期化パラメータ・ファイルは、複製の実行に使用するRMANクライアントと同じホストに存在する必要があります。 デフォルトの場所にあるサーバー・パラメータ・ファイルを補助インスタンスで使用する場合は、 |
|
アクティブな複製操作のデータ転送フェーズで作成される各バックアップ・セクションのサイズを指定します。このオプションを使用すると、RMANはデフォルトでバックアップ・セットによるアクティブな複製を使用します。そのため、このタイプの複製の前提条件が満たされていることを確認します。 「SECTION SIZE sizeSpec」を参照してください。 |
|
現行の読取り専用表領域にあるデータファイルを複製データベースから除外します。デフォルトでは、RMANは現在の読取り専用表領域を複製します。 表領域は現在読み書き両用に設定されていますが、 注意: このオプションで |
|
CDB内にある、カンマ区切りリスト デフォルトでは、RMANによって、 |
|
指定した表領域を複製データベースから除外します(例2-85を参照)。 注意: この句は、 注意: ソース・データベースのバックアップの一部が存在しない場合にそのデータベースを複製するには、
|
|
CDB内の表領域の名前。同じ名前の表領域が複数のデータベースにある場合があるため、名前の前の修飾子によって、表領域が一意に識別されます。 表領域を複製データベースから除外する際の一般的な情報については、前述の |
|
サーバー・パラメータ・ファイルをソース・データベースから複製データベースにコピーします。複製データベースで以前設定された初期化パラメータは使用されません。 |
指定された初期化パラメータを指定された値に設定します。「 |
|
PARAMETER_VALUE_CONVERT string_pattern [setParameter] |
最初の文字列に一致するすべての初期化パラメータ値を、2番目の文字列で置換します。「 |
|
指定したデータベースに入れる表領域を指定します。 複製データベースから 注意: |
|
CDB内の表領域の名前。同じ名前の表領域が複数のデータベースにある場合があります。名前の前の修飾子によって、表領域が一意に識別されます。 これらのパラメータに関する一般的な情報については、前述の |
|
UNDOセグメントが含まれている表領域の名前を指定します。このオプションは、表領域のサブセットが
|
TO RESTORE POINT restore_point_name |
リストア・ポイントを作成した時点のSCNを上限として、バックアップベースの複製のリストア・ポイントを指定します。指定した値は含まれます。上限値が含まれるため、RMANは、対応するSCN以前のデータベースの複製に使用できるファイルのみを選択します。 注意: |
バックアップベースの複製のPoint-in-Timeリカバリの終了時刻、SCNまたはログ順序番号を設定します(例2-85を参照)。
|
|
|
バックアップ・セットを使用して、すべてのデータまたはデータのサブセットを、ソース・データベースから宛先データベースへコピーすることによって、アクティブなデータベース複製を実行します。 |
|
ソース・データベースから補助データベースへのデータ転送をバイナリ圧縮できるため、ネットワーク帯域幅の消費が減ります。 |
setParameter
この副次句は、サーバー・パラメータ・ファイルの値を指定します。
| 構文要素 | 説明 |
|---|---|
|
指定された初期化パラメータを指定された値に設定します(例2-83を参照)。 この RMANでは、 注意: DUPLICATEコマンドで |
|
パラメータ設定のオプションのコメントを指定します。 |
|
指定した初期化パラメータをパラメータ・ファイルから削除します。 この |
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オプションを指定する必要があります。
| 構文要素 | 説明 |
|---|---|
|
オンラインREDOログ・メンバーのファイル名と、KB単位( |
|
データベースで既存のファイルを再利用できます。ファイルが存在している場合は、そのサイズが |
GROUP integer ('filename', ...) SIZE sizeSpec |
オンラインREDOログ・メンバーを含むグループ、オンラインREDOログ・メンバーのファイル名、およびKB単位( |
|
データベースで既存のログを再利用できます。 |
例
例2-82 アクティブなデータベースから同じディレクトリ構造を持つホストへの複製
データベースprod1を基にしてテスト・データベースを新しいホストに作成するとします。新しいホストのディレクトリ構造はソース・ホストと同じであるため、複製データベースのファイルには、ソース・データベースのファイルと同じ名前を使用できます。データベースは、RMANバックアップを使用せずに作成でき、複製中もprod1をオープン状態のままにしておくことができます。
prod1でサーバー・パラメータ・ファイルが使用されている場合は、新しい値に設定されたDB_NAMEパラメータと適切なドメインに設定されたDB_DOMAINパラメータのみを含む初期化パラメータ・ファイルをトランスポート先ホストに作成できます。DB_DOMAINを設定すると、RMANでデフォルトのデータベース・サービスに接続できるようになります。補助インスタンスを起動する前に、ソース・データベースと同じSYSおよびSYSBACKUPパスワードを使用するパスワード・ファイルを作成します。その後、補助インスタンスはspfileを使用して(使用可能な場合)起動します。pfileを使用して補助インスタンスを起動すると、RMANはデフォルトの場所にspfileを作成し、spfileファイルが存在する場合はそれを上書きします。
デフォルトでは、RMANはスタンバイ・データベースではない複製データベースを作成するときにパスワード・ファイルを複製しません。PASSWORD FILEオプションを指定すると、パスワード・ファイルは宛先ホストにコピーされます。ソース・データベースで使用可能なすべてのパスワードを複製データベースに組み込む場合は、PASSWORD FILEオプションを使用します。
ソース・データベースのチャネル構成を変更したり、補助チャネルを構成する必要はありません。RMANクライアントを起動して、ソース・データベース・インスタンスおよび補助データベース・インスタンスに、ネット・サービス名を使用して次のように接続し、データベースを複製します。
% rman RMAN> CONNECT TARGET "sbu@prod1 AS SYSBACKUP" target database Password: password connected to target database: PROD1 (DBID=39525561) RMAN> CONNECT AUXILIARY "sbu@dup1 AS SYSBACKUP" 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-83 アクティブなデータベース複製でのサーバー・パラメータ・ファイルのコピー
データベース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-84 同じディレクトリ構造を持つホストへのターゲット接続なしのデータベース複製
バックアップを使用してソース・データベースprodを複製し、このデータベースにRMANをTARGETとして接続しない(このソース・データベースはメンテナンスのためにシャットダウンされているため)とします。環境は次のとおりです。
ソース・ホストとトランスポート先ホストのディレクトリ構造は同じです。複製データベース内のデータファイルとオンラインREDOログの名前は、ソース・データベースでの名前と同じです。
オンラインREDOログ・ファイルでの番号と同じ番号が複製データベースで使用されます。
リカバリ・カタログを使用できます。ソース・データベース名prodは、リカバリ・カタログで一意です。
補助チャネルはCONFIGURE CHANNELコマンドを使用して構成されています。
次のコマンドによって、DUPDBという名前の複製データベースが作成されます。
% rman RMAN> CONNECT CATALOG rco@catdb; recovery catalog database Password: password connected to recovery catalog database RMAN> CONNECT AUXILIARY "sbu@dupdb AS SYSBACKUP"; 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-85 DUPLICATEコマンドでの新しいファイル名の設定
srchost上のソース・データベースprodをdesthost上のnewdbに複製するためにテープ・バックアップを使用すると想定します。
この使用例では、ソース・データベースでサーバー・パラメータ・ファイルが使用されません。テキストベースの初期化パラメータ・ファイルをdesthost上に作成し、それを使用してデータベース・インスタンスを起動します。したがって、バックアップベースの複製ではターゲット接続を使用する必要があります(表2-6を参照)。
desthostでDUPLICATEを実行する場合は、PFILEパラメータを使用して、初期化パラメータ・ファイルの場所を指定する必要があります。RMANクライアントは、複製データベースの初期化パラメータ・ファイルと同じホストで使用する必要があります。
表領域のexampleとhistoryは、複製データベースに含めないことにします。したがって、これらの表領域については、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-86 SET NEWNAME FOR DATABASEを使用した複製ファイル名の設定
この使用例では、ターゲット接続なしでバックアップベースの複製を実行します。
ソース・データベースprodには、複数のディレクトリに分散している8つのデータファイルが含まれています。このデータファイルはOracle Managed Filesではありません。トランスポート先ホストdesthost上のdupdbにソース・データベースを複製します。
この使用例では、srchostとdesthostのディレクトリ構造は異なっています。データファイルを/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-87 SET NEWNAME FOR DATAFILEおよびSET NEWNAME FOR TABLESPACEを使用した複製ファイル名の設定
この使用例では、バックアップベースの複製を使用してデータベースを複製します。
ソース・データベースPRODがSRCHOSTにあり、これには複数のディレクトリに分散されている9つのデータファイルが含まれているとします。リモート・ホストDESTHOST上のデータベースDUPDBにソース・データベースを複製します。DUPDBデータベースでは、表領域TOOLSは除外されますが、他のすべての表領域は保持されます。
ソース・データベースではサーバー・パラメータ・ファイルが使用されないため、SPFILE方法を使用して複製データファイルの名前を指定することはできません。複製データファイルは複数のディレクトリに分散されるため、SET NEWNAMEコマンドを使用してファイル名を指定することにします。
この使用例では、srchostとdesthostのディレクトリ構造は異なっています。データファイルを/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 data files, the following command
# generates unique names for both data files, 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-88 SET NEWNAME FOR DATAFILEを使用したOracle Managed Files名の設定
特定のデータファイルまたは一時ファイルを、他のデータベース・ファイルの場所から独立したOracle Managed Filesのトランスポート先に格納する方法は2通りあります。
補助インスタンスの初期化パラメータ・ファイル内のDB_CREATE_FILE_DESTパラメータを目的の場所に設定します。
初期化パラメータ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-89 CONFIGURE AUXNAMEを使用した複製ファイル名の設定
この項では、例2-87と同じ状況であることを想定しています。この例は、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-90 同じディレクトリ構造を持つスタンバイ・データベースの作成
RMANバックアップを使用して、ソース・ホストと同じディレクトリ構造を持つリモート・ホストにスタンバイ・データベースを作成するとします。ソース・データベースはprod1と呼ばれ、Data Guard環境のプライマリ・データベースになります。
最初に、RMANクライアントを起動し、CONNECTを実行してTARGETとしてソース・データベースprod1に接続して、補助インスタンスに接続します。次に、CONFIGUREを実行して、DB_UNIQUE_NAMEがstandby1のスタンバイ・データベースのデフォルトのデバイス・タイプをsbtに構成できます。
CONFIGURE DEFAULT DEVICE TYPE sbt FOR DB_UNIQUE_NAME standby1; CONFIGURE DEVICE TYPE sbt PARALLELISM 2 FOR DB_UNIQUE_NAME standby1;
スタンバイ・データベースの作成に必要なすべてのバックアップがテープにあるとします。スタンバイ・データベースの初期化パラメータ・ファイルで、DB_UNIQUE_NAMEをstandby1に設定します。
スタンバイ・データベースでは、初期化パラメータ・ファイルのデフォルトの場所が使用されています。スタンバイ・インスタンスNOMOUNTが起動したら、RMANクライアントを起動し、CONNECTを実行してTARGETとしてソース・データベースに接続して、補助インスタンスとリカバリ・カタログに接続します。次のDUPLICATEコマンドを実行して、NOFILENAMECHECKオプションを指定します(スタンバイとプライマリのデータファイルおよびオンラインREDOログ・ファイルの名前は同じです)。
DUPLICATE TARGET DATABASE FOR STANDBY NOFILENAMECHECK;
例2-91 OMFおよびASMでのスタンバイ・データベースの作成
RMANバックアップを使用して、OMFおよびASMを使用するホストにスタンバイ・データベースを作成するとします。ソース・データベースはprod1と呼ばれ、Data Guard環境のプライマリ・データベースになります。
最初に、RMANクライアントを起動し、CONNECTを実行してTARGETとしてデータベースprod1に接続して、リカバリ・カタログに接続します。次のCONFIGUREコマンドを実行して、DB_UNIQUE_NAMEがstandby1、ネット・サービス名が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-92 ターゲット・データベースおよびリカバリ・カタログへの接続なしのデータベース複製
この例では、データベースprodの必要なすべてのデータファイル、制御ファイルおよびアーカイブ・ログのバックアップに、/net/prod/backupsからアクセスできるとします。この場所には、データベースprodのバックアップのみが格納されています。AUXILIARYとして新しいインスタンスにのみ接続します。
リカバリ・カタログまたはターゲット・データベースへの接続がない場合は、次のコマンドを入力してテスト・データベースを作成します。
DUPLICATE DATABASE TO 'TEST' BACKUP LOCATION '/net/prod/backups' NOFILENAMECHECK;
例2-93 ターゲット・データベースおよびリカバリ・カタログへの接続なしの複製での特定データベースの選択
この例では、/backupsに複数のデータベースからのバックアップが含まれ、PRODという名前のデータベースが3つ以上存在しているとします。この場合、複製するデータベースのDBNAMEおよびDBIDを指定する必要があります。補助インスタンスにのみ接続します。
DUPLICATE DATABASE 'PROD' dbid 8675309 to 'TEST'
UNTIL TIME "to_date('11/01/2013', 'MM/DD/YYYY')"
BACKUP LOCATION '/backups' NOFILENAMECHECK
PFILE='?/dbs/inittest.ora' db_file_name_convert='prod','test';
例2-94 PDBとPDB内の特定の表領域の複製
この例では、PDB pdb1、pdb5、およびPDB pdb2のusers表領域が複製されます。デフォルトでは、RMANによって、rootおよびCDBのシード・データベースも複製されます。補助インスタンスは、宣言enable_pluggable_database=TRUEを含む初期化パラメータ・ファイルで起動されている必要があります。共通のSYSBACKUP権限を持つユーザーとしてrootに接続します。
DUPLICATE TARGET DATABASE TO cdb PLUGGABLE DATABASE pdb1,pdb5 TABLESPACE pdb2:users;