26 データベースの複製: 高度なトピック
この章では、データベースの複製の高度な形式について説明します。
この章のトピックは、次のとおりです:
26.1 複製データベース・ファイルの代替名の指定
ソース・データベースと複製データベースでデータベース・ファイルに同じ名前を使用しない場合、複製ファイル用に別の名前を付ける方法を選択する必要があります。
ソース・データベースと複製データベースでOracle Managed Files(OMF)またはOracle Automatic Storage Management (ASM)のどちらを使用するかに応じて、次の方法のいずれかを使用します。
26.1.1 複製データベース・ファイルの非OMFまたは非ASM代替名の指定
この項では、ソース・データベースと複製データベースが異なるディレクトリ構造を使用しているか、または同じ構造を使用しているが複製ファイルに異なる名前を使用する場合に、複製ファイルに名前を付ける方法について説明します。表26-1に、各タイプのファイルに名前を指定するために使用可能な形式の概要を示します。
表26-1 SET NEWNAMEの置換変数
変数 | 説明 |
---|---|
|
ディレクトリ・パス以外のファイル名を指定します。たとえば、データファイルの名前が |
|
新しい名前を生成するデータファイルの絶対ファイル番号を指定します。たとえば、データファイル2を複製する場合は、 |
|
DBIDを指定します。 |
|
表領域名を指定します。 |
|
|
次のいずれかの方法を使用して、非OMFまたは非ASMの複製データベース・ファイルに代替名を指定します。
26.1.1.1 SET NEWNAMEを使用したファイル・システム・データファイルおよび一時ファイルの名前の指定
複製データファイルに名前を付ける方法として、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はオプションです)。
SET NEWNAMEを使用して新しいファイル名を指定する手順
例26-1 SET NEWNAME FOR DATAFILEを使用した複製
次の例は、データファイル1から5、および一時ファイル1に新しい名前を指定するスクリプトを示しています。データファイル6は、複製データベースから除外されるtools
表領域内にあるため、このスクリプトでは新しい名前は設定されません。
-
DBIDは87650928
-
データベース名は
PROD
RUN
{
SET NEWNAME FOR DATAFILE 1 TO '/oradata1/system01.dbf';
SET NEWNAME FOR DATAFILE 2 TO '/oradata2/sysaux01.dbf';
SET NEWNAME FOR DATAFILE 3 TO '/oradata3/undotbs01.dbf';
SET NEWNAME FOR DATAFILE 4 TO '/oradata4/users01.dbf';
SET NEWNAME FOR DATAFILE 5 TO '/oradata5/users02.dbf';
SET NEWNAME FOR TEMPFILE 1 TO '/oradatat/temp01.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;
}
例26-2 SET NEWNAME FOR DATAFILEおよびSET NEWNAME FOR TABLESPACEを使用した複製
この例は、例26-1を少し変更した例で、単一のSET NEWNAME
コマンドを使用して、users
表領域内にあるすべてのデータファイルの名前を指定します。この例の完了後、users
表領域のファイル名は/oradata4/users01.dbf
および/oradata5/users02.dbf
に設定されます。
{
SET NEWNAME FOR TABLESPACE users TO '/oradata%f/%b';
SET NEWNAME FOR DATAFILE 1 TO '/oradata1/system01.dbf';
SET NEWNAME FOR DATAFILE 2 TO '/oradata2/sysaux01.dbf';
SET NEWNAME FOR DATAFILE 3 TO '/oradata3/undotbs01.dbf';
SET NEWNAME FOR TEMPFILE 1 TO '/oradatat/temp01.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;
}
例26-3 SET NEWNAME FOR DATABASEを使用した複製
この例は例26-1を少し変更した例で、単一のSET
コマンドを使用して、データベース内のすべてのデータファイルの名前を指定します。
RUN
{
SET NEWNAME FOR DATABASE TO '/oradata/%U';
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;
}
次の表に、この例の結果を示します。
表26-2 SET NEWNAME DATABASEコマンドの結果
SET NEWNAME DATABASEの実行前 | 表領域名 | データファイル番号 | SET NEWNAME DATABASE TO '/oradata/%U';の実行後 |
---|---|---|---|
|
|
1 |
|
|
|
2 |
|
|
|
3 |
|
|
|
4 |
|
|
|
5 |
|
|
|
1 |
|
関連項目:
SET NEWNAME
で使用可能な置換変数の詳細は、『Oracle Databaseバックアップおよびリカバリ・リファレンス』を参照してください。
26.1.1.2 CONFIGURE AUXNAMEを使用したファイル・システム・データファイルおよびOMF/ASMターゲット・データファイルの名前の指定
CONFIGURE AUXNAME
コマンドは、SET NEWNAME
コマンドの代替となるコマンドです。一度このコマンドを使用して補助ファイル名を構成すると、構成した設定がその後のDUPLICATE
コマンドで再利用される点が異なります。一方、SET NEWNAME
コマンドは、DUPLICATE
コマンドを実行するたびに再発行する必要があります。
-
複製データベースで名前を指定するファイルごとに、
CONFIGURE AUXNAME
コマンドを発行します。たとえば、データファイル1から5の名前を指定するには、RMANプロンプトで次のコマンドを入力します。
CONFIGURE AUXNAME FOR DATAFILE 1 TO '/oradata1/system01.dbf'; CONFIGURE AUXNAME FOR DATAFILE 2 TO '/oradata2/sysaux01.dbf'; CONFIGURE AUXNAME FOR DATAFILE 3 TO '/oradata3/undotbs01.dbf'; CONFIGURE AUXNAME FOR DATAFILE 4 TO '/oradata4/users01.dbf'; CONFIGURE AUXNAME FOR DATAFILE 5 TO '/oradata5/users02.dbf';
-
DUPLICATE
コマンドを発行します。たとえば、RMANプロンプトで次のコマンドを入力します。
SET NEWNAME FOR TEMPFILE 1 TO '/oradatat/temp01.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;
関連項目:
CONFIGURE AUXNAME
の使用方法の詳細は、『Oracle Databaseバックアップおよびリカバリ・リファレンス』を参照してください。
26.1.2 複製データベース・ファイルに対するOMFまたはASM代替名の指定
ソース・データベースと複製データベースでデータベース・ファイルに同じ名前を使用しない場合は、複製データベース・ファイルの命名方法を指定する必要があります。
次の項では、複製データベースの一部またはすべてのファイルでOMFまたはASMが使用されている場合に複製データベースを作成するための要件と手順について説明します。
関連項目:
ASMおよびOMFの概要については、『Oracle Automatic Storage Management管理者ガイド』を参照してください。
26.1.2.1 OMF初期化パラメータの設定および制限事項
Oracle Managed Filesを使用する複製データベースを作成する場合は、補助インスタンスで初期化パラメータを設定する必要があります。DUPLICATE
のSPFILE
句を使用してファイルの名前を指定する場合は、SPFILE
句で初期化パラメータを設定できます。表26-3に、関連パラメータと推奨される設定を示します。
表26-3 Oracle Managed Filesの初期化パラメータ
初期化パラメータ | 目的 | 推奨 |
---|---|---|
|
Oracle管理データファイルのデフォルトの場所を指定します。この場所は、どの |
このパラメータをOracle Managed Filesの場所に設定します。他の場所が指定されてないデータベース・ファイルが |
|
Oracle管理の制御ファイルおよびオンラインREDOログのデフォルトの場所を指定します。複数のパラメータが設定されている場合は、それぞれの場所に制御ファイルおよびオンラインREDOログが1つずつ作成されます。 |
複数の場所の制御ファイルおよびオンラインREDOログ・ファイルを多重化する場合にのみ、これらのパラメータを設定します(_1、_2など)。 |
|
高速リカバリ領域のデフォルトの場所を指定します。高速リカバリ領域には、現行の制御ファイルおよびオンラインREDOログ・ファイルの多重コピーが含まれています。 |
リカバリ領域に制御ファイルおよびオンラインREDOログ・ファイルの多重コピーが必要な場合は、このパラメータを設定します。 |
表26-4に、他の初期化パラメータの設定に関する制限事項を示します。
表26-4 Oracle Managed Filesの初期化パラメータの制限事項
初期化パラメータ | 目的 | 制限事項 |
---|---|---|
|
1つ以上の制御ファイル名をカンマで区切って指定します。 |
OMF形式でデータベース制御ファイルを複製する場合は、このパラメータを設定しないでください。制御ファイルにOMF形式を使用する場合は、複製データベースでサーバー・パラメータ・ファイルを使用することをお薦めします。 |
|
プライマリ・データベース上の新しいデータファイルのファイル名を複製データベース上のファイル名に変換します。 |
このパラメータを設定しないでください。このパラメータを省略することによって、データベースは複製データファイルにOracle Managed Filesの有効な名前を生成できます。 |
|
プライマリ・データベース上の新しいログ・ファイルのファイル名をスタンバイ・データベース上のログ・ファイルのファイル名に変換します。 |
このパラメータを設定しないでください。このパラメータを省略することによって、データベースはOracle管理オンラインREDOログ・ファイルの有効な名前を生成できます。 複製データベースのオンラインREDOログ・ファイルをOracle管理ストレージに格納するには、 |
26.1.2.2 ASMの初期化パラメータの設定
ASMの場所に複製データベースを作成する手順は、「OMF初期化パラメータの設定および制限事項」に示す手順と同様です。ファイルが作成される場所を制御する初期化パラメータを特定し、これらのパラメータをASMディスク・グループに対して設定する必要がある点が異なります。たとえば、DB_CREATE_FILE_DEST
、DB_CREATE_ONLINE_DEST_n
およびCONTROL_FILES
を+DISK1
に対して設定します。
26.1.2.3 例: ASMへのデータベースの複製
この項では、ASMへのデータベースの複製例について説明します。
例26-4 ファイル・システムからASMへのデータベースの複製
この例では、アクティブなデータベースの複製を使用します。ソース・データベースでサーバー・パラメータ・ファイルが使用されている(またはバックアップが使用可能である)場合は、宛先ホストに一時初期化パラメータ・ファイルを作成し、DB_NAME
パラメータのみを設定できます。
ソース・データベースprod
はhost1
上にあり、データファイルは非ASMファイル・システムに保存されていると想定しています。prod
の制御ファイルは、/oracle/oradata/prod/
に存在します。ソース・データベースを複製し、リモート・ホストhost2
上にdupdb
データベースを作成します。ASMディスク・グループ+DISK1
に複製データベース・ファイルを保存します。
RMANをターゲット・データベース、複製データベースおよびリカバリ・カタログ・データベースに接続してから、次のRMANスクリプトを実行してデータベースを複製します。
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
に作成されます。
例26-5 ASMからASMへのデータベースの複製
この例では、アクティブなデータベースの複製を使用します。ソース・データベースでサーバー・パラメータ・ファイルが使用されている(またはバックアップが使用可能である)場合は、宛先ホストに一時初期化パラメータ・ファイルを作成し、DB_NAME
パラメータのみを設定できます。
ソース・データベースprod
はhost1
上にあり、データファイルはASMディスク・グループ+DISK1
に保存されていると想定しています。ターゲット・データベースを複製し、リモート・ホストhost2
上にdupdb
データベースを作成します。ASMにdupdb
のデータファイルを格納します。具体的には、ディスク・グループ+DISK2
にデータファイルおよび制御ファイルを保存します。
DUPLICATE
コマンドにPARAMETER_VALUE_CONVERT
を設定し、すべてのディレクトリの場所を+DISK1
から+DISK2
に変換します。+DISK2
の新しいファイル名は、ASMによって生成され、ディスク・グループ+DISK1
の元のファイル名とは一致しません。
ターゲット・データベース、複製データベースおよびカタログ・データベースに接続してから、次のRMANスクリプトを実行してデータベースを複製します。
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
に作成されます。
26.1.2.4 SET NEWNAMEを使用したOMFまたはASMファイルの作成
Oracle管理データファイルの名前を指定するには、「SET NEWNAMEを使用したファイル・システム・データファイルおよび一時ファイルの名前の指定」で説明したSET NEWNAME
コマンドを使用できますが、TO
'filename'
のかわりにTO NEW
を指定します。RMANによって、指定したデータファイルまたは一時ファイルが、DB_CREATE_FILE_DEST
を使用して指定した場所にOracle Managed Filesの名前で作成されます。
SET NEWNAMEを使用してOracle Managed Filesの名前を指定する手順
-
補助インスタンスの
DB_CREATE_FILE_DEST
初期化パラメータを任意の場所に設定します。 -
RUN
ブロックにDUPLICATE
コマンドを含め、Oracle Managed Filesに対してSET NEWNAME
をTO NEW
オプションとともに使用します。
例26-6 SET NEWNAME FOR DATAFILEおよびSET NEWNAME FOR TABLESPACEを使用した複製
この例に、データファイル1-5のリテラル名を指定するスクリプトを示します。ソース・データベース内のOracle Managed Filesは、users
表領域内のデータファイルのみです。このため、これらのファイルのSET NEWNAME
コマンドにはTO NEW
を指定します。
RUN
{
SET NEWNAME FOR TABLESPACE users TO NEW;
SET NEWNAME FOR DATAFILE 3 TO NEW;
SET NEWNAME FOR DATAFILE 1 TO '/oradata1/system01.dbf';
SET NEWNAME FOR DATAFILE 2 TO '/oradata2/sysaux01.dbf';
SET NEWNAME FOR TEMPFILE 1 TO '/oradatat/temp01';
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;
}
例26-7 SET NEWNAMEを使用したASMディスク・グループでのファイルの作成
この例では、SET NEWNAME
を使用して、指定したASMディスク・グループに個々のデータファイル、一時ファイルまたは表領域を格納します。
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;
}
26.1.2.5 DB_FILE_NAME_CONVERTを使用した非OMFまたはASMデータファイルの名前の生成
名前を生成するには、SET NEWNAME
またはCONFIGURE AUXNAME
コマンドを使用する以外にもう1つ、DB_FILE_NAME_CONVERT
を使用してターゲット・ファイル名を変更する方法があります。たとえば、ターゲット・ファイル名を/oracle/から/dup/oracle/
に変更できます。DB_FILE_NAME_CONVERT
を使用すると、複数の変換ファイル名のペアを指定できます。データファイルや一時ファイルの名前を作成することもできます。
DB_FILE_NAME_CONVERT
は、DUPLICATE
コマンドで指定するか、または補助インスタンスの初期化パラメータで設定できます。
DB_FILE_NAME_CONVERTの制限事項
DUPLICATE
コマンドのDB_FILE_NAME_CONVERT
句を使用して、ソース・データベース・インスタンスではOracle Managed Files(OMF)形式である、複製インスタンスにあるファイル用の新しい名前の生成を制御することはできません。この制限事項の詳細は、『Oracle Databaseバックアップおよびリカバリ・リファレンス』を参照してください。
26.1.2.6 LOG_FILE_NAME_CONVERTを使用した非OMFまたはASMログ・ファイルの名前の生成
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ログ・ファイルが名前の付けられた場所に存在し、適切なサイズである場合、そのファイルは複製に再利用されます。
LOG_FILE_NAME_CONVERTの制限事項
-
Oracle Managed Filesの初期化パラメータを設定する場合、
LOG_FILE_NAME_CONVERT
を指定しないでください。 -
LOG_FILE_NAME_CONVERT
は、DUPLICATE
句としては指定できません。補助インスタンスの初期化パラメータでのみ指定できます。 -
LOG_FILE_NAME_CONVERT
初期化パラメータを使用して、ソース・データベース・インスタンスではOracle Managed Files(OMF)形式である、複製インスタンスにあるファイル用の新しい名前の生成を制御することはできません。
26.2 共有ディスクを使用しないディスク・バックアップのアクセス可能化
共有ディスクの方法を使用して、補助インスタンスでバックアップを使用できるようにできます。ターゲットまたはリカバリ・カタログ接続なしにBACKUP LOCATION
オプションがDUPLICATE
コマンドに使用されていないかぎり、NFSまたは共有ディスクを使用できない場合、バックアップを格納するパスはソース・ホストおよび宛先ホストの両方に存在する必要があります。
srchost
およびdsthost
という2つのホストがあるとします。srchost
上のデータベースは、srcdb
です。srcdb
のRMANバックアップは、ホストsrchost
上の/dsk1/bkp
内に存在します。ディレクトリ/dsk1/bkp
は宛先ホストで使用されているため、バックアップは宛先ホスト上の/dsk2/dup
に格納します。
バックアップをソース・ホストから宛先ホストに転送する手順
-
バックアップを格納する宛先ホスト上にあるディレクトリと同じ名前のディレクトリをソース・ホスト上に作成します。
たとえば、RMANバックアップを宛先ホストの
/dsk2/dup
に格納する場合、ソース・ホスト上に/dsk2/dup
を作成します。 -
ソース・ホスト上で、前の手順で作成したディレクトリにバックアップをコピーして、バックアップをカタログに追加します。次のいずれかの方法を使用できます。
- RMANを
TARGET
としてソース・データベースに接続し、BACKUP
コマンドを使用してバックアップを実行します。たとえば、BACKUP COPY OF DATABASE
コマンドを使用して、ソース・ホストの/dsk1/bkp
にあるバックアップをソース・ホストの/dsk2/dup
にコピーします。この場合、RMANは、新しい場所のバックアップを自動的にカタログに追加します。プラガブル・データベース(PDB)を複製する場合、BACKUP COPY OF
コマンドのPLUGGABLE DATABASE
構文を使用して、PDBのバックアップのみをコピーします。 - オペレーティング・システム・ユーティリティを使用して、ソース・ホストの
/dsk1/bkp
にあるバックアップを、ソース・ホストの/dsk2/dup
にコピーします。後で、RMANをTARGET
としてソース・データベースに接続し、CATALOG
コマンドを使用して、手動で転送したバックアップの場所で、ソースの制御ファイルを更新します。
- RMANを
-
ソース・ホスト上の新しいディレクトリから宛先ホスト上の同じ名前のディレクトリに、バックアップを手動で転送します。
たとえば、FTPを使用して、ソース・ホストの
/dsk2/dup
にあるバックアップを、宛先ホストの/dsk2/dup
に転送します。
/dsk2/dup
でバックアップを検索してリストアできます。