2.20 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クライアントおよび補助インスタンスでサポートされているバージョンの詳細は、RMANの互換性マトリックスを参照してください。
すべての形式の複製に共通の前提条件
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 Oracle SupportのNote 1079563.1 (https://support.oracle.com/rs?type=doc&id=1079563.1
)を参照してください。
DUPLICATE
コマンドを実行するには、1つ以上の補助チャネルが必要です。これらのチャネルは、補助データベース・インスタンスで複製処理を実行します。次のような場合、RMANはソース・データベースのチャネル構成を補助チャネルに使用します。
-
補助チャネルの手動割当てに
ALLOCATE CHANNEL
を使用しなかった場合 -
補助チャネルの構成に
CONFIGURE
を使用しなかった場合
CONNECT
文字列を使用するように自動ターゲット・チャネルを構成した場合、RMANは補助インスタンスのチャネル割当てを複製しようとします。ただし、複製用のチャネル割当てを制御または変更する必要がある場合は、補助チャネルを手動で割り当てます。
COMPATIBLE
初期化パラメータが11.0.0以上に設定されている場合、デフォルトでは、トランスポート後に読み書き両用に設定されていなかったトランスポータブル表領域が複製されます。それ以外の場合、RMANでは、トランスポート後に読み書き両用に設定されていないかぎり、トランスポータブル表領域は複製できません。
複製を実行するには、静的リスナーを構成する必要があります。
列レベルで機能する透過的データ暗号化(TDE)と表領域暗号化のデータベース暗号化機能のいずれにも、Oracleソフトウェア・キーストアが使用されています。複製する表領域が暗号化されている場合は、複製データベースにOracleキーストアを手動でコピーする必要があります。自動ログイン・キーストアは、必要に応じてRMANによるオープンが可能です。パスワードベースのOracleキーストアを使用している場合、SET DECRYPTION WALLET OPEN IDENTIFIED BY
コマンドを使用して、Oracleキーストアのオープンに必要なパスワードを指定する必要があります。
関連項目:
TDEの詳細は、『Oracle Database Advanced Securityガイド』を参照してください
バックアップベースの複製に固有の前提条件
表2-6に示すように、バックアップベースの複製の前提条件は、RMANがTARGET
としてソース・データベースに接続しているかどうかによって異なります。
表2-6 バックアップベースの複製の3つのモードに対する前提条件
前提条件 | ターゲットおよびリカバリ接続なし | ターゲット接続なし | ターゲット接続 |
---|---|---|---|
RMANは、リカバリ・カタログに接続している必要があります。 |
いいえ |
はい |
いいえ |
トランスポート先ホストのサーバー・セッションから、複製データベースの作成とリカバリに使用するすべてのバックアップおよびアーカイブREDOログ・ファイルにアクセスできる必要があります。 |
はい |
はい |
はい |
トランスポート先ホストとソース・ホストが異なる場合は、ソース・ホストのディスク上のバックアップを、ソース・データベースでのフルパス名と同じフルパス名で、トランスポート先ホストから使用できるようにする必要があります。 |
いいえ |
はい |
はい |
ソース・データベースの名前を |
非該当( |
はい |
いいえ |
|
該当なし |
いいえ |
はい |
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
オプションとともに使用します。
RMANでは、バックアップベースの複製をターゲット接続モードで使用して、疎データベースを複製することもできます。疎データベースを複製するために、RMANはまず暗黙的なリストアを実行してから、選択されたバックアップからデータ・ファイルを取得します。
関連項目:
-
"CONNECT"
-
CDBおよびPDBの複製の詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください
構文
(deviceSpecifier::=、fileNameConversionSpec::=、logSpec::=、setParameter::=、sizeSpec::=、untilClause::=)
セマンティクス
複製
この句を使用すると、データベースまたは表領域を複製できます。構文図は、「duplicate::=」を参照してください。
構文要素 | 説明 |
---|---|
|
複製元のデータベースであるソース・データベースを指定します。Oracle Database 11gリリース2以上では、 |
|
ソース・データベースを指定します。 |
|
複製元のデータベースであるソース・データベースの名前を指定します。 RMANが ターゲット接続なしでバックアップベースの複製を実行する場合は、データベース名を指定するか、または |
|
ソース・データベースのデータベースID(DBID)を指定します。 ソース・データベースへの RMANでは、ソース・データベースに |
孤立したインカネーションを指定します。 デフォルトでは、
|
|
|
Oracle Data Guard遠隔同期インスタンスを作成します。遠隔同期インスタンスを作成するには、アクティブなデータベース複製またはバックアップベース複製を使用できます。 このオプションは Oracle Data Guard概要および管理を参照してください。 |
|
複製対象のデータベースをスタンバイ・データベースとして指定します(例2-93を参照)。
SPFILEを複製する場合は、 スタンバイ・データベースには
スタンバイ・データベース上のオンラインREDOログのファイル名の変換には、
注意: スタンバイ・データベースを作成する際に、 注意: RMANをスタンバイ・データベースに接続し、そのプライマリ・データベースが登録されているリカバリ・カタログに接続すると、スタンバイ・データベースは、RMANによって認識され、暗黙的に登録されます。スタンバイ・データベースには、 |
|
複製データベースの名前を指定します。この複製データベースは、スタンバイ・データベースではないため、この句は
複製データベースがソース・データベースと同じOracleホームにある場合、ソース・データベースと複製データベースに同じデータベース名は使用できません。ただし、複製データベースがソース・データベースとは別のOracleホームにある場合は、そのOracleホームにある他のデータベース名と異なっていれば、同じ名前でも使用できます。複製データベースの管理を容易にするために、ソース・データベースと複製データベースを別の名前にすることをお薦めします。 |
複製データベースまたはスタンバイ・データベースの作成に使用するオプションを指定します。「dupOptionList」を参照してください。 |
dupOptionList
この副次句には、複製時の各種機能(ファイルの名前付け、複製のエンド・ポイントの決定など)を制御するオプションが含まれます。構文図は、「dupOptionList::=」を参照してください。
複製データベースのファイル名がソース・データベースのファイル名と異なる必要がある場合(トランスポート先ホストとソース・ホストが同じである場合など)は、データファイルとオンラインREDOログに新しいファイル名を指定するか、ソース・データベースのファイル名を変換します。オンラインREDOログおよび複製データベースのデータファイルのファイル名を指定しない場合、RMANはソース・データベースのデータファイル名を使用します。
構文要素 | 説明 |
---|---|
|
複製するデータベースのバックアップおよびコピーが置かれているディスク上のバックアップの場所を指定します。このオプションは、ターゲットまたはリカバリ・カタログに接続しない複製の場合に有効です。 |
|
指定したデバイス( このオプションが有効なのは、構成済の自動チャネルがあり、チャネルを手動で割り当てていない場合のみです。たとえば、自動ディスクおよびテープ・チャネルを 関連項目: |
|
スタンバイ・データベースの作成後に、そのスタンバイ・データベースをリカバリします。 RMANは、メディア・リカバリの完了後にスタンバイ・データベースをマウント状態のままにしますが、スタンバイ・データベースを手動リカバリ・モードおよび管理リカバリ・モードには設定しません。RMANがスタンバイ・データベースを作成した後、スタンバイ・データベースを手動リカバリ・モードまたは管理リカバリ・モードに設定したり、読取り専用モードでオープンする前に、すべてのギャップ・シーケンスの問題を解決する必要があります。 制御ファイルのチェックポイントSCNは、スタンバイ・サイトから使用できるかRMANバックアップに含まれるアーカイブREDOログに含める必要があります。たとえば、スタンバイ制御ファイルを作成し、その直後に順序が100の現行ログをアーカイブするとします。この場合、スタンバイ制御ファイルのバックアップはその時点以後に取られるため、少なくともログ順序100までスタンバイ・データベースをリカバリしないと、データベースから |
ソース・データベースのファイル名を複製データベースのファイル名にマップする1つ以上のパターンを指定します(例2-87を参照)。
指定リストのファイルが 注意: SPFILE句を指定した場合に、 関連項目: 「 |
|
|
複製データベースのファイルは、ソース・データベースのバックアップからではなく、ソース・データベースから直接使用します(例2-84を参照)。 関連項目: コマンドの前提条件については、「アクティブなデータベースの複製に固有の前提条件」を参照してください |
FROM SPARSE |
複製データベースの疎データ・ファイルを疎データベースから内部的にリストアして提供します。この設定を使用するには、複製するデータベースのCOMPATIBLE 初期化パラメータが12.2以上であることが必要です。
|
FROM NONSPARSE |
非疎データ・ファイルのみを内部的にリストアして複製する必要があることを指定します。この設定は、複製環境のデフォルトの疎モードをオーバーライドします。この設定を使用するには、複製するデータベースのCOMPATIBLE 初期化パラメータが12.2以上であることが必要です。この設定は、DUPLICATE コマンドの他のオプションの動作に影響しません。
|
|
スタンバイ・データベースではない複製データベースを作成するときのオンラインREDOログ作成のオプションを指定します(例2-87を参照)。 |
|
指定されたインスタンスのオンライン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の機能を無効にします。複製の初回起動時に 関連項目: |
|
SQL文 |
|
補助インスタンスで現在使用されているパスワード・ファイルを、ソース・データベースのパスワード・ファイルで上書きします(例2-84を参照)。このオプションは、
|
|
カンマ区切りのリストで指定された1つ以上のPDBを複製します。PDBを複製するには、「CDBおよびPDBへの接続」の説明に従って デフォルトでは、RMANによって、 PDBの複製の詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。 |
|
補助インスタンスで使用するテキストベースの初期化パラメータ・ファイルを指定します(例2-87を参照)。RMANでは、複製中に補助インスタンスが自動的に停止され、再起動されます。デフォルトの場所にあるサーバー・パラメータ・ファイルを補助インスタンスで使用しない場合は、補助インスタンスの起動時にRMANで使用するテキストベースの初期化パラメータ・ファイルを指定する必要があります。初期化パラメータ・ファイルは、複製の実行に使用するRMANクライアントと同じホストに存在する必要があります。 デフォルトの場所にあるサーバー・パラメータ・ファイルを補助インスタンスで使用する場合は、 |
|
アクティブな複製操作のデータ転送フェーズで作成される各バックアップ・セクションのサイズを指定します。このオプションを使用すると、RMANはデフォルトでバックアップ・セットによるアクティブな複製を使用します。そのため、このタイプの複製の前提条件が満たされていることを確認します。 「SECTION SIZE sizeSpec」を参照してください。 |
|
現行の読取り専用表領域にあるデータファイルを複製データベースから除外します。デフォルトでは、RMANは現在の読取り専用表領域を複製します。 表領域は現在読み書き両用に設定されていますが、 注意: このオプションで |
|
CDB内にある、カンマ区切りリスト デフォルトでは、RMANによって、 |
|
指定した表領域を複製データベースから除外します(例2-87を参照)。 注意: この句は、 注意: ソース・データベースのバックアップの一部が存在しない場合にそのデータベースを複製するには、
|
|
CDB内の表領域の名前。同じ名前の表領域が複数のデータベースにある場合があるため、名前の前の修飾子によって、表領域が一意に識別されます。 表領域を複製データベースから除外する際の一般的な情報については、前述の |
|
サーバー・パラメータ・ファイルをソース・データベースから複製データベースにコピーします。複製データベースで以前設定された初期化パラメータは使用されません。 |
指定された初期化パラメータを指定された値に設定します。「 |
|
PARAMETER_VALUE_CONVERT string_pattern [ setParameter ] |
最初の文字列に一致するすべての初期化パラメータ値を、2番目の文字列で置換します。「 |
|
指定したデータベースに入れる表領域を指定します。 複製データベースから除外する表領域を指定する 注意: |
|
CDB内の表領域の名前。同じ名前の表領域が複数のデータベースにある場合があります。名前の前の修飾子によって、表領域が一意に識別されます。 これらのパラメータに関する一般的な情報については、前述の |
|
UNDOセグメントが含まれている表領域の名前を指定します。このオプションは、表領域のサブセットが
|
TO RESTORE POINT restore_point_name |
リストア・ポイントを作成した時点のSCNを上限として、バックアップベースの複製のリストア・ポイントを指定します。指定した値は含まれます。上限値が含まれるため、RMANは、対応するSCN以前のデータベースの複製に使用できるファイルのみを選択します。 注意: |
バックアップベースの複製のPoint-in-Timeリカバリの終了時刻、SCNまたはログ順序番号を設定します(例2-87を参照)。
|
|
|
バックアップ・セットを使用して、すべてのデータまたはデータのサブセットを、ソース・データベースから宛先データベースへコピーすることによって、アクティブなデータベース複製を実行します。 |
|
ソース・データベースから補助データベースへのデータ転送をバイナリ圧縮できるため、ネットワーク帯域幅の消費が減ります。 |
setParameter
この副次句は、サーバー・パラメータ・ファイルの値を指定します。
構文要素 | 説明 |
---|---|
|
指定された初期化パラメータを指定された値に設定します(例2-85を参照)。 この
注意: |
|
パラメータ設定のオプションのコメントを指定します。 |
|
指定した初期化パラメータをパラメータ・ファイルから削除します。 この |
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-84 アクティブなデータベースから同じディレクトリ構造を持つホストへの複製
データベース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-85 アクティブなデータベース複製でのサーバー・パラメータ・ファイルのコピー
データベースprod1
を基にしてスタンバイ・データベースを新しいホストに作成するとします。トランスポート先ホストとソース・ホストはディレクトリ構造が異なるため、スタンバイ・データベース・ファイルは、/disk1
ではなく/disk2
に保存されます。スタンバイ・データベースは、RMANバックアップを使用せずに作成でき、複製中もprod1
をオープン状態のままにしておくことができます。
最初に実行するのは、スタンバイ・データベース用に必要最小限の初期化パラメータ・ファイルを作成することです。次に、スタンバイ・インスタンスを起動します。このパラメータ・ファイルは、必要最小限のものとします。それは、SPFILE
オプションを使用すると、サーバー・パラメータ・ファイルが新規ホストにコピーされ、各種パラメータが新しい指定値に設定されるためです。
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-86 同じディレクトリ構造を持つホストへのターゲット接続なしのデータベース複製
バックアップを使用してソース・データベース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-87 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-88 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-89 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-90 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-91 CONFIGURE AUXNAMEを使用した複製ファイル名の設定
この項では、例2-89と同じ状況であることを想定しています。この例は、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-92 同じディレクトリ構造を持つスタンバイ・データベースの作成
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-93 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-94 ターゲット・データベースおよびリカバリ・カタログへの接続なしのデータベース複製
この例では、データベースprod
の必要なすべてのデータファイル、制御ファイルおよびアーカイブ・ログのバックアップに、/net/prod/backups
からアクセスできるとします。この場所には、データベースprod
のバックアップのみが格納されています。AUXILIARY
として新しいインスタンスにのみ接続します。
リカバリ・カタログまたはターゲット・データベースへの接続がない場合は、次のコマンドを入力してテスト・データベースを作成します。
DUPLICATE DATABASE TO 'TEST' BACKUP LOCATION '/net/prod/backups' NOFILENAMECHECK;
例2-95 ターゲット・データベースおよびリカバリ・カタログへの接続なしの複製での特定データベースの選択
この例では、/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-96 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;