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
コマンドを使用して複製データファイル名を指定するには:
-
複製データベースで名前を指定するファイルごとに、
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初期化パラメータの設定および制限事項
OMFを使用する複製データベースを作成する場合は、補助インスタンスで初期化パラメータを設定する必要があります。DUPLICATE
コマンドのSPFILE
オプションを使用してファイルの名前を指定する場合は、SPFILE
オプションで初期化パラメータを設定できます。
表26-3に、関連パラメータと推奨される設定を示します。
表26-3 Oracle Managed Filesの初期化パラメータ
初期化パラメータ | 目的 | 推奨 |
---|---|---|
|
Oracle管理データファイルのデフォルトの場所を指定します。この場所は、どの |
このパラメータをOMFの場所に設定します。場所を指定せずにデータベース・ファイルを作成すると、そのファイルは |
|
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ディスク・グループに対して設定する必要があります。
ASMの場所に複製データベースを作成する手順は、OMFに複製データベースを作成する手順と同様です。たとえば、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管理データファイルの名前を指定するには、TO 'filename'
オプションではなくTO NEW
オプションとともにSET NEWNAME
コマンドを使用します。RMANによって、指定したデータファイルまたは一時ファイルが、DB_CREATE_FILE_DEST
パラメータで指定した場所にOMFの名前で作成されます。
SET NEWNAME
コマンドを使用してOMFの名前を指定するには:
-
補助インスタンスの
DB_CREATE_FILE_DEST
初期化パラメータを任意の場所に設定します。 -
RUN
ブロックにDUPLICATE
コマンドを含め、OMFに対して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
コマンドを使用する方法に加えて、DB_FILE_NAME_CONVERT
パラメータを使用してターゲット・ファイル名を変更することもできます。DB_FILE_NAME_CONVERT
オプションは、DUPLICATE
コマンドで指定するか、または補助インスタンスの初期化パラメータ・ファイルで設定できます。
たとえば、ターゲット・ファイル名を/oracle/
ディレクトリから/dup/oracle/
ディレクトリに変更できます。DB_FILE_NAME_CONVERT
パラメータでは複数の変換ファイル名のペアを指定できますが、Oracle Database 12cリリース2 (12.2)以降では、ファイル名の文字列のペアが99個を超えないようにすることをお薦めします。DB_FILE_NAME_CONVERT
パラメータを使用して、データファイルおよび一時ファイルの名前を生成することもできます。
DB_FILE_NAME_CONVERTパラメータの制限事項
DUPLICATE
コマンドのDB_FILE_NAME_CONVERT
オプションを使用して、ソース・データベース・インスタンスではOMF形式である、複製インスタンスにあるファイル用の新しい名前の生成を制御することはできません。
26.1.2.6 LOG_FILE_NAME_CONVERTパラメータを使用した非OMFまたはASMログ・ファイルの名前の生成
LOG_FILE
句が省略されており、OMFの初期化パラメータ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パラメータの制限事項
-
OMF初期化パラメータを設定する場合、
LOG_FILE_NAME_CONVERT
パラメータは指定しないでください。 -
LOG_FILE_NAME_CONVERT
パラメータは、DUPLICATE
コマンドの句としては指定できません。補助インスタンスの初期化パラメータでのみ指定できます。 -
LOG_FILE_NAME_CONVERT
初期化パラメータを使用して、ソース・データベース・インスタンスでは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
ディレクトリでバックアップを検索してリストアできます。