この章では、「データベースの複製」で説明していない高度なデータベースの複製について説明します。
この章の内容は次のとおりです。
複製データベース・ファイルとソース・データベース・ファイルに同じ名前を使用する方法(推奨)については、「手順2: 複製ファイルの名前の指定方法の選択」を参照してください。それ以外の場合は、複製ファイルに対して、代替名を使用する方法を選択する必要があります。ソース・データベースと複製データベースでOracle Managed Files(OMF)またはOracle Automatic Storage Management (ASM)のいずれを使用するかによって、使用する方法は異なります。
ソース・データファイルにOMFを使用している場合、DB_FILE_NAME_CONVERT
を使用して名前を変更することはできません。OMF管理データファイルの詳細およびオプションについては、「非ASMストレージの使用」を参照してください。
この項の内容は、次のとおりです。
この項では、次の条件に該当する場合に複製ファイルの名前を指定する方法について説明します。
ソース・ホストと補助ホストのいずれかが異なるディレクトリ構造を使用しているか、または同じ構造を使用しているが複製ファイルに異なる名前を使用する必要がある場合
表26-1に、各タイプのファイルに名前を指定するために使用可能な形式の概要を示します。
この項の内容は、次のとおりです。
表26-1に示すように、複製データファイルに名前を指定する方法の1つとして、DUPLICATE
コマンドを実行する前にSET NEWNAME
コマンドを使用する方法があります。次に、RMANでサポートされているコマンドを優先順位の高い順に示します。
SET NEWNAME FOR DATAFILE
およびSET NEWNAME FOR TEMPFILE
SET NEWNAME FOR TABLESPACE
SET NEWNAME FOR DATABASE
この優先順位に従って、SET NEWNAME FOR DATAFILE
およびSET NEWNAME FOR TEMPFILE
を使用して名前が指定されていないファイルにはSET NEWNAME FOR TABLESPACE
を使用して名前が指定され、SET NEWNAME FOR TABLESPACE
、SET NEWNAME FOR DATAFILE
またはSET NEWNAME FOR TEMPFILE
を使用して名前が指定されていないファイルにはSET NEWNAME FOR DATABASE
を使用して名前が指定されます。
SET NEWNAME FOR DATAFILE
を使用する場合は、/oradata1/system01.dbf
のようなリテラルのフルパスを指定できます。ただし、SET
をFOR DATABASE
またはFOR TABLESPACE
とともに使用する場合は、表26-1 に示す%b
、%f
、%U
の置換変数のうち、1つ以上を使用する必要があります(%I
と%N
はオプションです)。
表26-1 SET NEWNAMEの置換変数
変数 | 説明 |
---|---|
ディレクトリ・パス以外のファイル名を指定します。たとえば、データファイルの名前が |
|
新しい名前を生成するデータファイルの絶対ファイル番号を指定します。たとえば、データファイル |
|
DBIDを指定します。 |
|
表領域名を指定します。 |
|
|
SET NEWNAMEを使用して新しいファイル名を指定する手順
次の状況を想定しています。
DBID
は87650928
データベース名はPROD
表26-2に、前述の例の結果を示します。
表26-2 SET NEWNAME FOR DATABASEコマンドの結果
SET NEWNAME DATABASEの実行前 | 表領域名 | データファイル番号 | SET NEWNAME DATABASE TO '/oradata/%U';の実行後 |
---|---|---|---|
|
|
1 |
|
|
|
2 |
|
|
|
3 |
|
|
|
4 |
|
|
|
5 |
|
|
|
1 |
|
関連項目:
SET NEWNAMEで使用可能な置換変数の詳細は、『Oracle Databaseバックアップおよびリカバリ・リファレンス』
を参照してください。
CONFIGURE AUXNAME
コマンドは、SET NEWNAME
コマンドの代替となるコマンドです。一度このコマンドを使用して補助ファイル名を構成すると、構成した設定がその後のDUPLICATE
コマンドで再利用される点が異なります。一方、SET NEWNAME
コマンドは、DUPLICATE
コマンドを実行するたびに再発行する必要があります。
CONFIGURE AUXNAMEを使用して複製データファイル名を指定する手順
関連項目:
CONFIGURE AUXNAMEの使用方法の詳細は、『Oracle Databaseバックアップおよびリカバリ・リファレンス』
を参照してください。
この項では、複製データベースの一部またはすべてのファイルでOMFまたはASMが使用されている場合に複製データベースを作成するための要件について説明します。
関連項目:
ASMおよびOMFの概要については、『Oracle Automatic Storage Management管理者ガイド』を参照してください。
この項の内容は、次のとおりです。
Oracle Managed Filesを使用する複製データベースを作成する場合は、補助インスタンスで初期化パラメータを設定する必要があります。DUPLICATE
のSPFILE
句を使用してファイルの名前を指定する場合は、SPFILE
句で初期化パラメータを設定できます。表26-3に、関連するパラメータおよび推奨設定を示します。表26-4に、他の初期化パラメータの設定に関する制限事項を示します。
関連項目:
これらのパラメータの詳細は、『Oracle Databaseリファレンス』を参照してください。
表26-3 Oracle Managed Filesの初期化パラメータ
初期化パラメータ | 用途 | 推奨事項 |
---|---|---|
|
Oracle管理データファイルのデフォルトの場所を指定します。この場所は、どの |
このパラメータをOracle Managed Filesの場所に設定します。他の場所が指定されてないデータベース・ファイルが |
|
Oracle管理の制御ファイルおよびオンラインREDOログのデフォルトの場所を指定します。複数のパラメータが設定されている場合は、それぞれの場所に制御ファイルおよびオンラインREDOログが1つずつ作成されます。 |
複数の場所の制御ファイルおよびオンラインREDOログ・ファイルを多重化する場合にのみ、これらのパラメータを設定します( |
|
高速リカバリ領域のデフォルトの場所を指定します。高速リカバリ領域には、現行の制御ファイルおよびオンラインREDOログ・ファイルの多重コピーが含まれています。 |
リカバリ領域に制御ファイルおよびオンラインREDOログ・ファイルの多重コピーが必要な場合は、このパラメータを設定します。 |
表26-4 Oracle Managed Filesの初期化パラメータの制限事項
初期化パラメータ | 用途 | 制限事項 |
---|---|---|
|
1つ以上の制御ファイル名をカンマで区切って指定します。 |
OMF形式でデータベース制御ファイルを複製する場合は、このパラメータを設定しないでください。制御ファイルにOMF形式を使用する場合は、複製データベースでサーバー・パラメータ・ファイルを使用することをお薦めします。 |
|
プライマリ・データベース上の新しいデータファイルのファイル名を複製データベース上のファイル名に変換します。 |
このパラメータを設定しないでください。このパラメータを省略することによって、データベースは複製データファイルにOracle Managed Filesの有効な名前を生成できます。 |
|
プライマリ・データベース上の新しいログ・ファイルのファイル名をスタンバイ・データベース上のログ・ファイルのファイル名に変換します。 |
このパラメータを設定しないでください。このパラメータを省略することによって、データベースはOracle管理オンラインREDOログ・ファイルの有効な名前を生成できます。 複製データベースのオンラインREDOログ・ファイルをOracle管理ストレージに格納するには、 |
ASMの場所に複製データベースを作成する手順は、「OMF初期化パラメータの設定および制限事項」に示す手順と同様です。ファイルが作成される場所を制御する初期化パラメータを特定し、これらのパラメータをASMディスク・グループに対して設定する必要がある点が異なります。たとえば、DB_CREATE_FILE_DEST
、DB_CREATE_ONLINE_DEST_
n
およびCONTROL_FILES
を+DISK1
に対して設定します。
この例では、アクティブなデータベースの複製を使用します。ソース・データベースでサーバー・パラメータ・ファイルが使用されている(またはバックアップが使用可能である)場合は、宛先ホストに一時初期化パラメータ・ファイルを作成し、DB_NAME
パラメータのみを設定できます。
ソース・データベースprod
はhost1
上にあり、データファイルは非ASMファイル・システムに保存されていると想定しています。prod
の制御ファイルは、/oracle/oradata/prod/
に存在します。ソース・データベースを複製し、リモート・ホストhost2
上にdupdb
データベースを作成します。ASMディスク・グループ+DISK1
に複製データベース・ファイルを保存します。
RMANをターゲット・データベース、複製データベースおよびリカバリ・カタログ・データベースに接続してから、例26-1に示すRMANスクリプトを実行してデータベースを複製します。
例26-1 ファイル・システムからASMへの複製(アクティブ)
DUPLICATE TARGET DATABASE TO dupdb FROM ACTIVE DATABASE SPFILE PARAMETER_VALUE_CONVERT '/oracle/oradata/prod/', '+DISK1' SET DB_CREATE_FILE_DEST +DISK1;
DUPLICATE
コマンドが完了すると、複製データベースはデータファイル、オンラインREDOログ・ファイルおよび制御ファイルとともに、ASMディスク・グループ+DISK1
に作成されます。
この例では、アクティブなデータベースの複製を使用します。ソース・データベースでサーバー・パラメータ・ファイルが使用されている(またはバックアップが使用可能である)場合は、宛先ホストに一時初期化パラメータ・ファイルを作成し、DB_NAME
パラメータのみを設定できます。
ソース・データベースprod
はhost1
上にあり、データファイルはASMディスク・グループ+DISK1
に保存されていると想定しています。ターゲット・データベースを複製し、リモート・ホストhost2
上にdupdb
データベースを作成します。ASMにdupdb
のデータファイルを格納します。具体的には、ディスク・グループ+DISK2
にデータファイルおよび制御ファイルを保存します。
DUPLICATE
コマンドにPARAMETER_VALUE_CONVERT
を設定し、すべてのディレクトリの場所を+DISK1
から+DISK2
に変換します。+DISK2
の新しいファイル名は、ASMによって生成され、ディスク・グループ+DISK1
の元のファイル名とは一致しません。
ターゲット・データベース、複製データベースおよびカタログ・データベースに接続してから、例26-2に示すRMANスクリプトを実行してデータベースを複製します。
例26-2 ASMからASMへの複製(アクティブ)
DUPLICATE TARGET DATABASE TO dupdb FROM ACTIVE DATABASE SPFILE PARAMETER_VALUE_CONVERT '+DISK1','+DISK2' SET DB_RECOVERY_FILE_DEST_SIZE='750G';
DUPLICATE
コマンドが完了すると、データファイル、オンラインREDOログおよび制御ファイルとともに複製データベースがより大きなASMディスク・グループ+DISK2
に作成されます。
Oracle管理データファイルの名前を指定するには、「SET NEWNAMEを使用したファイル・システム・データファイルおよび一時ファイルの名前の指定」で説明したSET NEWNAME
コマンドを使用できますが、TO '
filename
'
のかわりにTO NEW
を指定します。RMANによって、指定したデータファイルまたは一時ファイルが、DB_CREATE_FILE_DEST
を使用して指定した場所にOracle Managed Filesの名前で作成されます。
SET NEWNAMEを使用してOracle Managed Filesの名前を指定する手順
関連項目:
SET NEWNAMEの使用方法の詳細は、『Oracle Databaseバックアップおよびリカバリ・リファレンス』
を参照してください。
名前を生成するには、SET NEWNAME
またはCONFIGURE AUXNAME
コマンドを使用する以外にもう1つ、DB_FILE_NAME_CONVERT
を使用してターゲット・ファイル名を変更する方法があります。たとえば、ターゲット・ファイル名を/oracle/
から/dup/oracle/
に変更できます。DB_FILE_NAME_CONVERT
を使用すると、複数の変換ファイル名のペアを指定できます。データファイルや一時ファイルの名前を作成することもできます。
DB_FILE_NAME_CONVERT
は、DUPLICATE
コマンドで指定するか、または補助インスタンスの初期化パラメータで設定できます。
LOG_FILE
句が省略されていて、Oracle Managed Filesの初期化パラメータDB_CREATE_FILE_DEST
、DB_CREATE_ONLINE_DEST_n
またはDB_RECOVERY_FILE_DEST
のいずれも指定されていない場合、LOG_FILE_NAME_CONVERT
はターゲット・ファイル名を変更できます。これは、DB_FILE_NAME_CONVERT
とほぼ同様に機能し、ターゲット・ファイル名をlog_*
からduplog_*
に変更できます。このパラメータを使用すると、複数の変換ファイル名のペアを指定できます。
LOG_FILE_NAME_CONVERT
を指定すると、RMANは、オンラインREDOログの作成時にREUSE
パラメータを使用します。オンラインREDOログ・ファイルが名前の付けられた場所に存在し、適切なサイズである場合、そのファイルは複製に再利用されます。
Oracle Managed Filesの初期化パラメータを設定する場合、LOG_FILE_NAME_CONVERT
を指定しないでください。
LOG_FILE_NAME_CONVERT
は、DUPLICATE
句としては指定できません。補助インスタンスの初期化パラメータでのみ指定できます。
LOG_FILE_NAME_CONVERT
初期化パラメータを使用して、ソース・データベース・インスタンスではOracle Managed Files(OMF)形式である、複製インスタンスにあるファイル用の新しい名前の生成を制御することはできません。
「手順4: 複製インスタンスからバックアップへのアクセス可能化」では、バックアップを補助インスタンスで使用できるようにするため、共有ディスクを使用する方法を推奨しています。ターゲットまたはリカバリ・カタログ接続なしにBACKUP LOCATION
オプションがDUPLICATEコマンドに使用されていないかぎり、NFSまたは共有ディスクを使用できない場合、バックアップを格納するパスはソース・ホストおよび転送先ホストの両方に存在する必要があります。
srchost
およびdsthost
という2つのホストがあるとします。srchost
上のデータベースは、srcdb
です。srcdb
のRMANバックアップは、ホストsrchost
上の/dsk1/bkp
内に存在します。ディレクトリ/dsk1/bkp
は宛先ホストで使用されているため、バックアップは宛先ホスト上の/dsk2/dup
に格納します。
バックアップをソース・ホストから宛先ホストに転送する手順
補助チャネルでは、宛先ホストの/dsk2/dup
でバックアップを検索してリストアできます。
「手順7: 初期化パラメータ・ファイルの作成と補助インスタンスの起動」の手順では、DUPLICATE
コマンドのSPFILE
句を使用する場合を想定しています。ソース・データベースがサーバー・パラメータ・ファイルを使用していない場合は、補助インスタンスに必要なすべてのパラメータをテキストベースの初期化パラメータ・ファイルで設定する必要があります。
表26-5に、指定可能な初期化パラメータのサブセットを示します。これらのパラメータの詳細は、『Oracle Databaseリファレンス』を参照してください。複製ファイルに名前を指定するためのオプションについては、表26-1を参照してください。
表26-5 補助インスタンスの初期化パラメータ
初期化パラメータ | 値 | ステータス |
---|---|---|
|
複製データベースの |
必須 |
|
制御ファイルの場所 |
必須 |
|
複製データベースのブロック・サイズ。このブロック・サイズは、ソース・データベースのブロック・サイズと一致している必要があります。ソース・データベースのパラメータ・ファイルに |
必須(ソース・データベースでこの初期化パラメータが設定されている場合) |
|
データファイルおよび一時ファイルの名前を変換する文字列のペア。 |
オプション |
|
オンラインREDOログ・ファイルの名前を指定する文字列のペア。「LOG_FILE_NAME_CONVERTを使用した非OMFまたはASMログ・ファイルの名前の生成」を参照してください。 |
オプション |
|
Oracle管理データファイルの場所 |
オプション |
|
Oracle管理オンラインREDOログ・ファイルの場所 |
オプション |
|
高速リカバリ領域の場所 |
オプション |
Oracle Real Application Cluster(Oracle RAC)パラメータ:
|
Oracle RACデータベースのインスタンスごとにこれらのパラメータを設定します。 |
必須(Oracle RAC構成の場合) |
SPFILE句を使用しない場合に初期化パラメータ・ファイルを作成する手順
「手順7: 初期化パラメータ・ファイルの作成と補助インスタンスの起動」では、ソース・データベース・インスタンスがサーバー・パラメータ・ファイルを使用する場合を想定しています。この例では、ソース・データベースが現時点でサーバー・パラメータ・ファイルを使用していないか、またはRMANによってバックアップ・サーバー・パラメータ・ファイルをリストアできないと想定しています。この場合は、テキストベースの初期化パラメータ・ファイルを使用して、補助インスタンスを起動する必要があります。
データベース複製の準備として補助インスタンスを起動する手順
常に、データベースのすべての表領域を複製する必要があるわけではありません。たとえば、ソース・データベースから表領域のサブセットのみを必要とするレポートを生成する場合があります。
注意:
ターゲット接続なしに、またはターゲットおよびリカバリ・カタログ接続なしにバックアップベースの複製で表領域を除外する場合、RMANには特別な前提条件があります。詳細は、『Oracle Databaseバックアップおよびリカバリ・リファレンス』のDUPLICATE
エントリの前提条件に関する項を参照してください。
表26-6に、複製データベースの表領域のサブセットを指定するためのDUPLICATE
コマンドのオプションを示します。
表26-6 複製データベースの表領域のサブセットを指定するためのオプション
DUPLICATEのオプション | 説明 |
---|---|
|
複製データベースから読取り専用表領域のデータファイルを除外します。 |
|
指定した表領域を複製データベースから除外します。 |
|
|
複製データベースの表領域のサブセットを指定するには、次の手順を実行します。
DUPLICATE
コマンドを実行します。コピーされる表領域に影響を与えるその他の要因には、OFFLINE NORMAL
オプションが含まれます。複製の前にOFFLINE NORMAL
オプションによって表領域がオフラインにされた場合、RMANは関連するデータファイルを複製せず、その複製データベースの表領域に対してDROP TABLESPACE
文を発行します。したがって、これらの表領域を除外するオプションを指定する必要はありません。
注意:
RMANは、NORMAL
以外のいずれのオプションを使用してオフラインにされた表領域も複製します(SKIP TABLESPACE
オプションで名前が指定されている場合を除く)。自動的にスキップされるのは、OFFLINE NORMAL
表領域のみです。バックアップベースの複製を使用する場合は、オンライン表領域のときと同様に、RMANにこれらの表領域の有効なバックアップが必要です。
例26-3 読取り専用表領域の除外
この例に、読取り専用表領域をスキップする方法を示します。
DUPLICATE TARGET DATABASE TO dupdb FROM ACTIVE DATABASE SKIP READONLY NOFILENAMECHECK;
例26-4 指定した表領域の除外
この例に、tools
という名前の表領域をスキップする方法を示します。
DUPLICATE TARGET DATABASE TO dupdb FROM ACTIVE DATABASE SKIP TABLESPACE tools NOFILENAMECHECK;
TABLESPACE
オプションを使用すると、指定したデータベースに含める表領域を指定できます。複製データベースから除外する表領域を指定するSKIP TABLESPACE
オプションとは異なり、このオプションを使用すると、含める表領域が指定された後、残りの表領域はスキップされます。複製された表領域のサブセットは、自己完結型である必要があります。結果として、スキップされた表領域のセットには、UNDOセグメントやマテリアライズド・ビューは含まれていない必要があります。
例26-5 指定した表領域の追加
この例は例25-1を少し変更した例であり、自己完結型であると想定されるusers
表領域が含まれ、SYSTEM
表領域、SYSAUX
表領域およびUNDOセグメントを含む表領域以外の、すべての表領域が除外される点が異なります。
DUPLICATE TARGET DATABASE TO dupdb FROM ACTIVE DATABASE TABLESPACE users NOFILENAMECHECK;
リカバリ・カタログ接続ではなく、ターゲット接続を使用してバックアップベースの複製を実行するとします。また、複製の対象として表領域のサブセットを指定します。この場合、ターゲット・データベースが開いていないと、RMANではUNDOセグメントを含む表領域の名前を取得できません。したがって、例26-6に示すように、対象の表領域に対してUNDO TABLESPACE
オプションを指定する必要があります。
例26-6 指定した表領域の追加
DUPLICATE TARGET DATABASE TO dupdb TABLESPACE users UNDO TABLESPACE undotbs NOFILENAMECHECK;