| Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド 11g リリース1(11.1) E05700-03 |
|
この章では、DUPLICATEコマンドを使用して、複製データベースを作成する方法を説明します。この章では、次の項目について説明します。
この項では、データベースを複製する場合の基本的な概念およびタスクについて説明します。
データベースの複製では、複製データベースの作成を目的としています。複製データベースとは、ソース・データベースにあるすべてのデータまたはデータのサブセットが含まれている別のデータベースのことです。複製データベースは様々な目的で有効であり、ほとんどの場合、テストに使用されます。複製データベースでは、次のタスクを実行できます。
たとえば、host1上の本番データベースをhost2上に複製し、host1上の本番データベースを通常どおりに実行したまま、host2上の複製データベースを使用してこのデータベースのリストアおよびリカバリを練習できます。
DUPLICATEを使用してではなくオペレーティング・システムのユーティリティを使用してデータベースをコピーした場合、コピーしたデータベースのDBIDは元のデータベースと同じになります。このコピーしたデータベースを元のデータベースと同じリカバリ・カタログに登録するには、DBNEWIDユーティリティを使用してDBIDを変更する必要があります(『Oracle Databaseユーティリティ』を参照)。これに対して、DUPLICATEコマンドを実行すると、コピーされるデータベースに対して異なるDBIDが自動的に割り当てられるため、このデータベースをコピー元のデータベースと同じリカバリ・カタログに登録できます。
複製データベースはフィジカル・スタンバイ・データベースとは異なる目的で使用されますが、いずれのデータベースもDUPLICATEコマンドを使用して作成します。スタンバイ・データベースはプライマリ・データベースのコピーで、プライマリ・データベースのアーカイブ・ログを使用して継続的に更新できます。プライマリ・データベースにアクセスできない場合は、スタンバイ・データベースへのフェイルオーバーを実行し、それを新しいプライマリ・データベースにすることができます。一方、複製データベースはこのような用途には使用できません。複製データベースは、フェイルオーバーでの使用を目的としていないため、スタンバイの様々なリカバリ・オプションおよびフェイルオーバー・オプションをサポートしていません。
Recovery ManagerのDUPLICATEコマンドを使用して、複製データベースを作成します。複製データベースはコピー先のデータベースであり、ソース・データベースはコピー元のデータベースです。複製データベースのDBIDはソース・データベースのDBIDとは異なっており、完全に独立して機能します。
ソース・ホストはソース・データベースをホストするコンピュータであり、転送先ホストは複製データベースをホストするコンピュータです。ソース・ホストと転送先ホストは、同じである場合も異なる場合もあります。ソース・データベース・インスタンスは、ソース・データベースに関連付けられたOracleインスタンスです。複製データベースに関連付けられたインスタンスは、補助インスタンスと呼ばれます。
複製データベースには、ソース・データベースと同じ内容か、またはソース・データベース内の表領域のサブセットのみを含めることができます。たとえば、TABLESPACEオプションを使用すると、指定した表領域のみを複製できます。また、SKIP READONLYオプションを使用すると、複製データベースから読取り専用表領域を除外できます。
アクティブなデータベースの複製またはバックアップベースの複製のいずれかの方法を使用できます。アクティブなデータベースの複製では、ネットワークを介して使用中のソース・データベースが複製データベース・インスタンスにコピーされますが、バックアップベースの複製では、既存のRecovery Managerバックアップおよびコピーが使用されます。
複製の主な作業は、補助チャネルによって実行されます。このチャネルは、転送先ホスト上の補助インスタンスのサーバー・セッションに対応しています。Recovery Managerは、複製操作のうち、次の処理を自動化します。
ソース・データベースのオンラインREDOログ・ファイルがバックアップされず、複製データベースに適用できないため、Recovery Managerで不完全リカバリを実行する必要があります。Recovery Managerでは、ソース・データベースによってアーカイブされた最新のREDOログの時点まで、複製データベースをリカバリできます。
RESETLOGSオプションを使用した複製データベースのオープンデータベースを複製するには、多くの前提条件を満たしている必要があります。たとえば、ソース・データベースおよび複製データベースは、同じプラットフォーム上にある必要があります。詳細は、『Oracle Databaseバックアップおよびリカバリ・リファレンス』のDUPLICATEコマンド・エントリの前提条件に関する項を参照してください。
このタスクについては、「バックアップおよびアーカイブ・ログから複製インスタンスへのアクセス可能化」を参照してください。
このタスクについては、「複製ファイルの名前の指定方法の選択」を参照してください。
このタスクについては、「補助インスタンスの準備」を参照してください。
TARGETとしてソース・データベースに、AUXILIARYとして複製データベースのインスタンスに、必要に応じてCATALOGとしてリカバリ・カタログ・データベースに接続します。必要に応じて、DUPLICATEコマンドで使用するチャネルを構成します。このタスクについては、「Recovery Managerの起動および複製前の構成」を参照してください。
DUPLICATEコマンドを実行します。このタスクについては、「データベースの複製」を参照してください。
アクティブなデータベースの複製を使用している場合は、この項をスキップし、「複製ファイルの名前の指定方法の選択」に進みます。
Recovery Managerは、複製制御ファイルのメタデータを使用して、複製に必要なバックアップおよびアーカイブ・ログを検索します。補助チャネルが、複製データベースのリストアおよびリカバリに必要なすべてのデータファイル・バックアップおよびアーカイブREDOログにアクセスできることを確認する必要があります。アクセスできない場合、複製操作は失敗します。
データベース・バックアップは、BACKUP DATABASEで生成する必要はありません。個々のデータファイルの全体バックアップおよび増分バックアップを組み合せて使用できます。たとえば、データファイル1、2および3の全体バックアップを作成したとします。また、データファイル4、5、6のレベル0およびレベル1のバックアップも作成したとします。この場合、DUPLICATEを実行すると、全体バックアップからファイル1、2および3、レベル0のバックアップからファイル4、5および6をリストアできます。Recovery Managerは、増分レベル1の増分バックアップを4、5および6に適用し、アーカイブREDOログを6つすべてのデータファイルに適用できます。
バックアップベースの複製を使用している場合は、データベース・バックアップを補助インスタンスで使用できるようにする方法を決定する必要があります。また、複製データベースを目的の時点にリカバリする場合に必要なアーカイブREDOログ・ファイルは、複製データベースが作成されるホストから同じパスでアクセスできるようになっている必要があります。これらのログは、バックアップ(メディア・マネージャを使用する場合など)またはイメージ・コピー(または実際のアーカイブREDOログ・ファイル)のいずれかとして使用できます。
SBTバックアップを使用する場合は、バックアップが含まれているテープから転送先ホストにアクセスできるようにする必要があります。メディア管理ソフトウェアが転送先ホスト上にインストールされている場合は、リモート・ホストに接続されているドライブにテープを物理的に移動するか、またはネットワーク・アクセスが可能なテープ・サーバーを使用することによって実現できます。通常、メディア・マネージャによっては、リモート・メディア管理ソフトウェアにテープの存在について通知する必要があります。
ディスク・バックアップを使用する場合、ソース・ホストのファイル・システムと転送先ホストのファイル・システムが同じである場合が最も簡単です。たとえば、ソース・データベースのバックアップが/dsk1/bkpに格納されているとします。この場合、次のいずれかの方法で、ディスク・バックアップから転送先ホストにアクセスできるようになります。
/dsk1/bkpにある場合は、それらのバックアップを転送先ホストの/dsk1/bkpにFTP転送します。
/dsk1/bkpをマウントし、/dsk1/bkpをマウント・ポイント名として使用します。
ソース・ホストで使用するディレクトリ名と同じディレクトリ名を転送先ホストで使用できない場合は複雑です。この場合にバックアップをアクセス可能にする方法は、共有ディスクを使用するかどうかによって異なります。次の項で説明します。
NFSまたは共有ディスクを使用できない場合、バックアップを格納するパスはソース・ホストおよび転送先ホストの両方に存在する必要があります。srchostおよびdsthostという2つのホストがあるとします。srchost上のデータベースは、srcdbです。srcdbのRecovery Managerバックアップは、ホストsrchost上の/dsk1/bkp内に存在します。ディレクトリ/dsk1/bkpはすでに転送先ホストで使用されているため、バックアップは転送先ホスト上の/dsk2/dupに格納します。複製サイトの制御ファイルをダンプファイルの新しい場所で更新する必要があります。
バックアップをソース・ホストから転送先ホストに転送するには、次の手順を実行します。
たとえば、Recovery Managerバックアップを転送先ホストの/dsk2/dupに格納する場合、ソース・ホスト上に/dsk2/dupを作成します。
TARGETとしてソース・データベースに接続し、「Recovery Managerバックアップのバックアップ」で説明されているBACKUPコマンドを使用して、バックアップのバックアップを作成します。たとえば、BACKUP COPY OF DATABASEコマンドを使用して、ソース・ホストの/dsk1/bkpにあるバックアップをソース・ホストの/dsk2/dupにコピーします。この場合、Recovery Managerは、新しい場所のバックアップを自動的にカタログに追加します。
/dsk1/bkpにあるバックアップを、ソース・ホストの/dsk2/dupにコピーします。後で、Recovery ManagerをTARGETとしてソース・データベースに接続し、CATALOGコマンドを使用して、手動で転送したバックアップの場所で、ソース・データベースの制御ファイルを更新します。
たとえば、FTPを使用して、ソース・ホストの/dsk2/dupにあるバックアップを、転送先ホストの/dsk2/dupに転送します。
複製の一部として、Recovery Managerは、バックアップを表示する複製制御ファイルを/dsk2/dupパスに作成します。その後、補助チャネルでは、転送先ホスト上の/dsk2/dupでバックアップを検索してリストアできます。
srchostおよびdsthostという2つのホストがあるとします。srchost上のデータベースは、srcdbです。srcdbのバックアップは、ホストsrchost上の/dsk1/bkp内に存在します。ディレクトリ/dsk1/bkpは転送先ホストで使用されていますが、ディレクトリ/dsk2/dupは、いずれのホストでも使用されていません。
バックアップをソース・ホストから転送先ホストに転送するには、次の手順を実行します。
たとえば、転送先ホスト上にバックアップ・ディレクトリ/dsk2/dupを作成します。
たとえば、転送先ホストに/dsk2/dupを作成した場合は、NFSを使用してこのディレクトリを/dsk2/dupとしてソース・ホストにマウントします。
TARGETとしてソース・データベースに接続し、「Recovery Managerバックアップのバックアップ」で説明されているBACKUPコマンドを使用して、バックアップのバックアップを作成します。たとえば、BACKUP COPY OF DATABASEコマンドを使用して、ソース・ホストの/dsk1/bkpにあるバックアップをソース・ホストの/dsk2/dupにコピーします。この場合、Recovery Managerは、新しい場所のバックアップを自動的にカタログに追加します。
/dsk1/bkpから転送先ホストの/dsk2/dupにバックアップをFTP転送するか、cpコマンドを使用して、ソース・ホストの/dsk1/bkpからソース・ホストの/dsk2/dupにバックアップをコピーします。後で、Recovery ManagerをTARGETとしてソース・データベースに接続し、CATALOGコマンドを使用して、手動で転送したバックアップの場所で、ソース・データベースの制御ファイルを更新します。
複製の一部として、Recovery Managerは、バックアップを表示する複製制御ファイルを/dsk2/dupパスに作成します。その後、補助チャネルでは、転送先ホスト上の/dsk2/dupでバックアップを検索してリストアできます。
Recovery Managerは、データベースの複製時に複製データベース・ファイルの名前を生成します。転送先ホストでソース・ホストと同じディレクトリ構造が使用されている場合は、複製データベース・ファイルに、ソース・データベース・ファイルで使用されている名前と同じ名前を使用できます。この場合、複製ファイルの名前を変更する必要はありませんが、DUPLICATEコマンドでNOFILENAMECHECKオプションを指定する必要があります。
ホストで異なるディレクトリ構造が使用されている場合、または同じ構造が使用されているが、複製ファイルに異なる名前を使用する必要がある場合は、複製データベース・ファイルの名前の生成方法を決定する必要があります。具体的には、制御ファイル、データファイル、オンラインREDOログ・ファイルおよび一時ファイルに名前を指定する方法を決定する必要があります。
Recovery Managerでは、複製ファイルの名前を生成する次の方法がサポートされています。
DUPLICATEコマンドにSPFILE句を指定すると、DB_FILE_NAME_CONVERTを除いて、ファイル名に関連するすべての必要なパラメータを設定できます。最も簡単な方法であるため、この方法を使用することをお薦めします。DUPLICATE ... SPFILEを実行すると、Recovery Managerは、サーバー・パラメータ・ファイルをバックアップからリストアするか、またはアクティブなデータベースからコピーします。Recovery Managerは、SPFILE PARAMETER_VALUE_CONVERTおよびSPFILE SETの値に(この順序で)基づいて、コピーされたサーバー・パラメータ・ファイルの初期化パラメータ値を更新します。その後、Recovery Managerは、サーバー・パラメータ・ファイルを使用して補助インスタンスを再起動します。
テキスト・エディタを使用して複製インスタンス上の初期化パラメータ・ファイルでパラメータを設定するか、DUPLICATEコマンドにLOGFILEおよびDB_FILE_NAME_CONVERT句を指定するか、またはSETおよびCONFIGUREコマンドを発行します。これらのオプションは、希望する結果となるように任意に組み合せることができます。
この項では、SPFILEの方法についてのみ説明します。次のリストに、複製ファイルの名前を指定する場合に使用可能なDUPLICATEオプションを示します。DUPLICATEコマンドの構文およびセマンティクスの詳細は、『Oracle Databaseバックアップおよびリカバリ・リファレンス』を参照してください。
SPFILE ... PARAMETER_VALUE_CONVERT 'string_pattern'DB_FILE_NAME_CONVERTおよびLOG_FILE_NAME_CONVERTパラメータを除いて、パス名を指定する値を持つ初期化パラメータの変換文字列を指定します。PARAMETER_VALUE_CONVERTの主な目的は、初期化パラメータの集合を設定して、1つずつ明示的に設定しなくてもすむようにすることです。
SPFILE ... SET 'string_pattern'指定した初期化パラメータを指定した値に設定します。SETを使用すると、オンラインREDOログに対してLOG_FILE_NAME_CONVERTパラメータを設定できます。
DB_FILE_NAME_CONVERT 'string_pattern'データファイルおよび一時ファイルのファイル名を作成する規則を指定します。DUPLICATEコマンドに指定されたDB_FILE_NAME_CONVERTによって、初期化パラメータDB_FILE_NAME_CONVERT(初期化パラメータ・ファイルに設定されている場合)が上書きされます。
NOFILENAMECHECKソース・データベース・データファイルとオンラインREDOログ・ファイルの名前が、複製されたファイルと同じ名前かどうかをRecovery Managerが確認しなくなります。このオプションは、ソース・データベースのホストと同じディスク構成、ディレクトリ構成およびファイル名を持つ別のホスト上で、複製データベースを作成する場合に必要となります。ソース・データベースと同じホスト上でデータベースを複製する場合は、NOFILENAMECHECKが設定されていないことを確認してください。
例23-1に、SPFILE句を使用して複製ファイルに名前を指定するDUPLICATEコマンドを示します。PARAMETER_VALUE_CONVERTオプションによって、ファイル名を指定するすべての初期化パラメータの/disk2が/disk1に置き換えられます(ただし、DB_FILE_NAME_CONVERTおよびLOG_FILE_NAME_CONVERTを除く)。SET LOG_FILE_NAME_CONVERT句によって、複製データベースのオンラインREDOログのファイル名の/disk2が/disk1に置き換えられます。DB_FILE_NAME_CONVERTオプションによって、複製データファイルおよび一時ファイルの名前の/disk1が/disk2に置き換えられます。
DUPLICATE TARGET DATABASE TO dup1
FROM ACTIVE DATABASE
DB_FILE_NAME_CONVERT '/disk1','/disk2'
SPFILE
PARAMETER_VALUE_CONVERT '/disk1', '/disk2'
SET LOG_FILE_NAME_CONVERT '/disk1','/disk2'
SET SGA_MAX_SIZE '200M'
SET SGA_TARGET '125M';
DUPLICATE DATABASEコマンドで使用する補助インスタンスを準備するには、次のタスクを実行します。
次のいずれかの条件に該当する場合にのみ、補助インスタンスでパスワード・ファイルが必要となります。
FROM ACTIVE DATABASEオプションを使用すると、ソース・データベース・インスタンス(Recovery ManagerがTARGETとして接続されるデータベース・インスタンス)は、補助データベース・インスタンスに直接接続されます。この接続では、同じSYSDBAパスワードが含まれているパスワード・ファイルが必要です。パスワード・ファイルを手動で作成し、ソース・データベースと同じSYSDBAパスワードを使用するようにします。補助インスタンスを起動し、ソース・データベースをその補助インスタンスに接続できるように、1つのパスワードが含まれているパスワード・ファイルを作成することができます。
また、DUPLICATEコマンドにPASSWORD FILEオプションを指定することもできます。この場合、Recovery Managerは、ソース・データベース・パスワード・ファイルを転送先ホストにコピーし、既存のすべての補助インスタンスのパスワード・ファイルを上書きします。この方法は、複製データベースで使用できるようにするパスワードがソース・データベースのパスワード・ファイルに複数含まれている場合に有効です。
アクティブなデータベースの複製でスタンバイ・データベースを作成する場合、Recovery Managerは、パスワード・ファイルを常にスタンバイ・ホストにコピーします。PASSWORD FILEオプションを指定する必要はありません。また、補助インスタンス用の既存のパスワード・ファイルを上書きします。
次のいずれかの条件を満たしている場合、補助インスタンスは、Oracle Netを介して使用できる必要があります。
アクティブなデータベースから複製する場合は、まず、ネット・サービス名を使用して、SYSDBAとして補助インスタンスに接続する必要があります。このネット・サービス名は、ソース・データベース・インスタンス上でも使用可能である必要があります。ソース・データベース・インスタンス(Recovery ManagerがTARGETとして接続されるインスタンス)は、このネット・サービス名で補助データベース・インスタンスに直接接続されます。
補助インスタンス用にテキストベースの初期化パラメータ・ファイルを作成します。
複製ファイルの名前の指定に、SPFILEの方法(「複製ファイルの名前の指定方法の選択」を参照)を使用する場合、必要なパラメータは、任意の値に指定できるDB_NAMEのみとなります。DB_FILE_NAME_CONVERT、LOG_FILE_NAME_CONVERTなどのパラメータは、初期化パラメータ・ファイルで設定する必要はありません。これらのパラメータおよび他のすべてのパラメータは、DUPLICATEコマンド自体で設定できるためです。
SPFILEの方法を使用していない場合は、初期化パラメータを初期化パラメータ・ファイルで設定する必要があります。表23-1に、これらの初期化パラメータを示します。
| 初期化パラメータ | 値 | ステータス |
|---|---|---|
|
|
複製データベースの |
必須 |
|
|
参照: 「複製制御ファイルの名前の指定」を参照してください。 |
必須(Oracle管理ファイル用のパラメータを設定していない場合) |
|
|
このブロック・サイズは、ソース・データベースのブロック・サイズと一致している必要があります。ソース・データベースのパラメータ・ファイルに 参照: 「代替方法を使用した複製ファイルの名前の指定」を参照してください。 |
必須(ソース・データベースでこの初期化パラメータが設定されている場合) |
|
|
データファイルおよび一時ファイルの名前を変換する文字列のペア。 参照: 「複製データファイルの名前の指定」および「複製一時ファイルの名前の指定」を参照してください。 |
オプション |
|
|
オンラインREDOログ・ファイルの名前を指定する文字列のペア。 参照: 「複製オンラインREDOログ・ファイルのネーミング」を参照してください。 |
オプション |
|
|
参照: 「複製データファイルの名前の指定」および「複製一時ファイルの名前の指定」を参照してください。 |
オプション |
|
|
参照: 「複製オンラインREDOログ・ファイルのネーミング」を参照してください。 |
オプション |
|
|
参照: 「代替方法を使用した複製ファイルの名前の指定」を参照してください。 |
オプション |
必要に応じて、Oracle Netを介してSYSDBAとして接続するためのパラメータも含めて、その他の初期化パラメータを設定します。
同じホスト、または異なるファイル・システムを持つ新しいホストに複製を作成する場合は、パス名を指定するすべての初期化パラメータに注意してください。データベースの複製先ホスト上ですべてのパスがアクセス可能であることを確認します。
例23-2に、サンプル初期化パラメータ・ファイルの設定例を示します。
DB_NAME=dupdb CONTROL_FILES=(/dup/oracle/oradata/prod/control01.ctl, /dup/oracle/oradata/prod/control02.ctl) DB_FILE_NAME_CONVERT=(/oracle/oradata/prod/,/dup/oracle/oradata/prod/) LOG_FILE_NAME_CONVERT=(/oracle/oradata/prod/redo,/dup/oracle/oradata/prod/redo)
Recovery Managerの複製を開始する前に、SQL*Plusを使用してSYSOPER権限で補助データベース・インスタンスに接続します。インスタンスをNOMOUNTモードで起動し、必要に応じてPFILEパラメータを指定します。
SQL> STARTUP NOMOUNT
Recovery Managerは、複製処理中に補助インスタンスを停止して再起動します。このため、補助インスタンス用のサーバー側の初期化パラメータ・ファイルを転送先ホスト上のデフォルトの場所に含めることをお薦めします。
DUPLICATEコマンドのSPFILE句を使用すると、Recovery Managerは、ソース・データベースのサーバー・パラメータ・ファイルを転送先ホスト上の補助インスタンスのデフォルトの場所にコピーまたはリストアします。SPFILE句を使用しない場合は、サーバー・パラメータ・ファイルを転送先ホストにコピーするか、またはDUPLICATEコマンドのPFILEパラメータが含まれているテキストベースの初期化パラメータ・ファイルを指定する必要があります。補助インスタンス用のテキストベースの初期化パラメータ・ファイルは、複製の実行に使用されるRecovery Managerクライアントと同じホスト上に存在する必要があります。
DUPLICATE DATABASEコマンドを実行する前に、次のタスクを実行します。
Recovery Managerを起動して、TARGETとしてソース・データベースに、AUXILIARYとして複製データベース・インスタンスに、必要に応じてリカバリ・カタログ・データベースに接続します。すべてのデータベース・インスタンスに接続可能であるかぎり、どのホスト上でもRecovery Managerクライアントを起動できます。補助インスタンスにテキストベースの初期化パラメータ・ファイルが必要な場合は、Recovery Managerクライアント・アプリケーションが実行されるホストと同じホスト上にそのファイルが存在する必要があります。
たとえば、オペレーティング・システム・プロンプトで次のコマンドを入力します。
% rman
CONNECTコマンドを実行します。次の例では、3つのすべてのデータベース・インスタンスにネット・サービス名を使用して接続します。
RMAN> CONNECT TARGET SYS@prod # source database target database Password: password connected to target database: PROD (DBID=39525561) RMAN> CONNECT AUXILIARY SYS@dupdb # duplicate database instance auxiliary database Password: password connected to auxiliary database: DUPDB (not mounted) RMAN> CONNECT CATALOG rman@catdb # recovery catalog database recovery catalog database Password: password connected to recovery catalog database
Recovery Managerによる複製を開始する前に、ソース・データベースがマウントまたはオープンされていない場合は、マウントまたはオープンします。ソース・データベースがオープンしている場合は、アーカイブを有効にする必要があります。ソース・データベースがオープンしていない場合、およびソース・データベースがスタンバイ・データベースでない場合は、一貫性のある状態で停止する必要があります。
バックアップベースの複製に必要な場合は、補助データベース・インスタンス上で使用するチャネルを構成します。バックアップをリストアするのは補助インスタンスのチャネルであり、ソース・データベース・インスタンスではないことに注意してください。
Recovery Managerは、AUXILIARYオプションが指定されていなくても、ソース・データベースに設定された同じチャネル構成を複製に使用できます。ただし、補助チャネルに特別なパラメータが必要な場合(別のメディア・マネージャを指す場合など)は、CONFIGUREコマンドのAUXILIARYオプションを指定して自動チャネルを構成します。
バックアップベースの複製では、チャネルのチャネル・タイプ(DISKまたはsbt)は、ソース・データベースのバックアップが存在するメディアと一致している必要があります。バックアップがディスクにある場合は、割り当てるチャネルの数を増やすと、複製の速度も速くなります。テープ・バックアップの場合は、チャネルの数を使用可能なデバイスの数に制限します。
アクティブなデータベースの複製では、ソース・データベースのチャネル構成を変更したり、AUXILIARYチャネルを構成する必要はありません。ただし、Recovery Managerがネットワークを介してパラレルにファイルをコピーできるよう、ソース・データベースのディスク・チャネルのパラレル化設定を増加させる必要がある場合があります。
この項では、複製データベースを作成する最も基本的な手順について説明します。この手順は、データベースおよびホストの構成方法によって異なります。この項の内容は、次のとおりです。
最も簡単な方法は、アクティブなデータベースの複製を使用してデータベースを異なるホストに複製し、同じディレクトリ構造を使用する方法です。ソース・データベースでサーバー・パラメータ・ファイルが使用されている(またはバックアップが使用可能である)場合は、転送先ホストに一時初期化パラメータ・ファイルを作成し、DB_NAMEパラメータのみを設定できます。複製データベース・ファイル名に追加のパラメータを設定したり、バックアップを複製ホストに転送する必要はありません。
この例では、初期化パラメータ・ファイルに、任意の値に設定されたDB_NAMEのみが含まれています。
DUPLICATEコマンドを実行します。
例23-3に、アクティブな複製にDUPLICATEを使用する方法を示します。この例では、ソース・データベース・ファイルの名前が複製データベース・ファイルの名前と同じであるため、NOFILENAMECHECKオプションが必要です。
DUPLICATE TARGET DATABASE TO dupdb FROM ACTIVE DATABASE SPFILE NOFILENAMECHECK;
Recovery Managerは、サーバー・パラメータ・ファイルを転送先ホストに自動的にコピーし、サーバー・パラメータ・ファイルを使用して補助インスタンスを起動し、必要なすべてのデータベース・ファイルおよびアーカイブREDOログをネットワークを介して転送先ホストにコピーし、データベースをリカバリします。最後に、Recovery Managerは、RESETLOGSオプションを指定してデータベースをオープンし、オンラインREDOログを作成します。
ソース・データベースの1週間前のデータを表示するために、複製データベースをその時点までリカバリするとします。例23-4では、バックアップベースの複製を使用して、ソース・データベースの1週間前の状態の複製を作成します。UNTIL句は、アクティブなデータベースの複製ではサポートされていません。
DUPLICATE TARGET DATABASE TO dupdb PASSWORD FILE SPFILE NOFILENAMECHECK UNTIL TIME 'SYSDATE-7';
例23-4のコマンドでは、Recovery Managerがソース・データベースからパスワード・ファイルを複製する必要があることを示すPASSWORD FILEオプションが指定されています。
異なるディレクトリ構造を持つホストに複製データベースを作成する場合は、複製データベースのデータファイルにファイル名を生成する方法を使用する必要があります。最も簡単な方法は、アクティブなデータベースの複製を使用し、SPFILE句を使用してファイルの名前を指定する方法です(「複製ファイルの名前の指定方法の選択」を参照)。1ソース・データベースでサーバー・パラメータ・ファイルが使用されている(またはバックアップが使用可能である)場合は、転送先ホストに一時初期化パラメータ・ファイルを作成し、DB_NAMEパラメータのみを設定できます。
ソース・データベースのデータファイルが/oracle/oradata/prod/にあり、それらのデータファイルを/scratch/oracle/oradata/dupdb/に複製するとします。すべてのソース・データベースのオンラインREDOログが/oracle/oradata/prod/redo/にあり、それらのオンラインREDOログを/scratch/oracle/oradata/dupdb/redo/に複製するとします。
この例では、DB_NAMEのみがパラメータとして指定されている、複製インスタンス用の一時初期化パラメータ・ファイルを作成します。このパラメータは、任意の値に設定できます。
この例では、ソース・データベースはオープンされており、自動チャネルが構成されていると想定しています。次のように入力して、Recovery Managerを起動し、ソース・データベース・インスタンスおよび補助データベース・インスタンスに接続します。
RMAN> CONNECT TARGET SYS@prod target database Password: password connected to target database: PROD1 (DBID=39525561) CONNECT AUXILIARY SYS@dupdb auxiliary database Password: password connected to auxiliary database: DUPDB (not mounted)
DUPLICATEコマンドを実行します。例23-5では、DB_FILE_NAME_CONVERTパラメータと組み合せてSPFILE句を使用して、複製データベース・ファイルの名前を指定します。PARAMETER_FILE_CONVERTパラメータはLOG_FILE_NAME_CONVERTまたはDB_FILE_NAME_CONVERTに影響を及ぼしません。このため、これらの2つのパラメータは個別に設定する必要があります。
DUPLICATE TARGET DATABASE TO dupdb FROM ACTIVE DATABASE DB_FILE_NAME_CONVERT '/oracle/oradata/prod/','/scratch/oracle/oradata/dupdb/' SPFILE PARAMETER_VALUE_CONVERT '/oracle/oradata/prod/', '/scratch/oracle/oradata/dupdb/' SET SGA_MAX_SIZE '300M' SET SGA_TARGET '250M' SET LOG_FILE_NAME_CONVERT '/oracle/oradata/prod/redo/', '/scratch/oracle/oradata/dupdb/redo/';
Recovery Managerは、サーバー・パラメータ・ファイルを転送先ホストに自動的にコピーし、PARAMETER_VALUE_CONVERTおよびSETで指定されている値に基づいて、転送先ホスト上でサーバー・パラメータ・ファイルを更新します。その後、Recovery Managerは、サーバー・パラメータ・ファイルを使用して補助インスタンスを起動し、必要なすべてのデータベース・ファイルおよびアーカイブREDOログをネットワークを介して転送先ホストにコピーし、データベースをリカバリします。最後に、Recovery Managerは、RESETLOGSオプションを指定してデータベースをオープンし、オンラインREDOログを作成します。
ソース・データベースと同じホスト上に複製データベースを作成する場合は、「異なるディレクトリ構造を持つリモート・ホストでのデータベースの複製」に示す、異なるディレクトリ構造を持つリモート・ホストでの複製と同じ手順を実行します。
ソース・データベースと同じOracleホームにデータベースを複製できますが、ソース・データベースとは異なるデータベース名を使用し、別のホスト上でファイル名を変換する場合と同じ方法で、ファイル名を変換する必要があります。
この項では、複製データベースの一部またはすべてのファイルがOracle管理ファイルであるか、またはそれらのファイルで自動ストレージ管理(ASM)が使用されている場合に、複製データベースを作成する際の要件について説明します。
Oracle管理ファイルを使用する複製データベースを作成する場合は、補助インスタンスで初期化パラメータを設定する必要があります。DUPLICATEのSPFILE句を使用してファイルの名前を指定する場合は、SPFILE句で初期化パラメータを設定できます。次の表に、関連する初期化パラメータおよび推奨設定を示します。
| 初期化パラメータ | 用途 | 推奨事項 |
|---|---|---|
|
|
Oracle管理データファイルのデフォルトの場所を指定します。この場所は、どの |
このパラメータをOracle管理ファイルの場所に設定します。他の場所が指定されてないデータベース・ファイルが |
|
|
Oracle管理の制御ファイルおよびオンラインREDOログのデフォルトの場所を指定します。複数のパラメータが設定されている場合は、それぞれの場所に制御ファイルおよびオンラインREDOログが1つずつ作成されます。 |
複数の場所の制御ファイルおよびREDOログを多重化する場合のみ、これらのパラメータを設定します( |
|
|
フラッシュ・リカバリ領域のデフォルトの場所を指定します。フラッシュ・リカバリ領域には、現行の制御ファイルおよびオンラインREDOログの多重コピーが含まれています。 |
リカバリ領域に制御ファイルおよびオンラインREDOログ・ファイルの多重コピーが必要な場合は、このパラメータを設定します。 |
|
|
1つ以上の制御ファイル名をカンマで区切って指定します。 |
Oracle Managed Files形式でデータベース制御ファイルを複製する場合は、このパラメータを設定しないでください。制御ファイルにOMF形式を使用する場合は、複製データベースでサーバー・パラメータ・ファイルを使用することをお薦めします。 |
|
|
プライマリ・データベース上の新しいデータファイルのファイル名を複製データベース上のファイル名に変換します。 |
このパラメータを設定しないでください。このパラメータを省略することによって、データベースは複製データファイルにOracle管理ファイルの有効な名前を生成できます。 |
|
|
プライマリ・データベース上の新しいログ・ファイルのファイル名をスタンバイ・データベース上のログ・ファイルのファイル名に変換します。 |
このパラメータを設定しないでください。このパラメータを省略することによって、データベースはOracle管理オンラインREDOログ・ファイルの有効な名前を生成できます。
複製データベースのオンラインREDOログ・ファイルをOracle管理ストレージに格納するには、 |
ASMの場所に複製データベースを作成する手順は、「Oracle管理ファイルの初期化パラメータの設定」に示す手順と同様です。補助インスタンスで、ASMディスク・グループへの複製時にファイルが作成される場所を制御する初期化パラメータを設定する必要がある点が異なります。たとえば、DB_CREATE_FILE_DEST、DB_CREATE_ONLINE_DEST_nおよびCONTROL_FILESを設定します。
この例では、アクティブなデータベースの複製を使用します。ソース・データベースでサーバー・パラメータ・ファイルが使用されている(またはバックアップが使用可能である)場合は、転送先ホストに一時初期化パラメータ・ファイルを作成し、DB_NAMEパラメータのみを設定できます。
ソース・データベースprodはhost1上にあり、データファイルは非ASMファイル・システムに保存されていると想定しています。prodの制御ファイルは、/oracle/oradata/prod/に存在します。ソース・データベースを複製し、リモート・ホストhost2上にdupdbデータベースを作成します。ASMディスク・グループ+DISK1に複製データベース・ファイルを保存します。
Recovery Managerをターゲット・データベース、複製データベースおよびリカバリ・カタログ・データベースに接続してから、例23-6に示すRecovery Managerスクリプトを実行してデータベースを複製します。
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の元のファイル名とは一致しません。
ターゲット・データベース、複製データベースおよびカタログ・データベースに接続してから、例23-7に示すRecovery Managerスクリプトを実行してデータベースを複製します。
DUPLICATE TARGET DATABASE TO dupdb FROM ACTIVE DATABASE SPFILE PARAMETER_VALUE_CONVERT '+DISK1','+DISK2' SET DB_FILE_NAME_CONVERT '+DISK1','+DISK2' SET LOG_FILE_NAME_CONVERT '+DISK1','+DISK2';
DUPLICATEコマンドが完了すると、データファイル、オンラインREDOログおよび制御ファイルとともに複製データベースがASMディスク・グループ+DISK2に作成されます。
この項では、複製ファイルの名前の指定にSPFILE句の方法を使用しない場合、または他の名前指定方法でSPFILE句の方法を補完する場合を想定しています。
次の項で、複製データベースでファイルの名前を指定する方法について説明します。
複製データベースの制御ファイルの名前を指定する場合は、補助初期化パラメータ・ファイルで初期化パラメータを設定する必要があります。CONTROL_FILES初期化パラメータでファイル名を指定するか、または他のパラメータを使用してOracle管理ファイルの場所を指定することができます。
複製データベースの制御ファイルの名前を決定する場合の優先順位の規則は、SQL文CREATE CONTROLFILEで使用される規則と同じです。複製データベースの制御ファイルの名前を選択するときは、補助データベースの初期化パラメータ・ファイルにパラメータを正しく設定します。そうしない場合、ソース・データベースの制御ファイルが上書きされます。
Recovery Managerでは、複製データベースのオンラインREDOログ・ファイルの新しい名前が必要です。DUPLICATEコマンドで明示的に名前を指定するか、またはRecovery Managerによって名前を生成できます。
DUPLICATEコマンドのLOGFILE句を指定します。このオプションを指定すると、指定されたとおりに複製データベースにオンラインREDOログが作成されます。
LOG_FILE_NAME_CONVERT初期化パラメータを設定してください。このパラメータを設定すると、log_*からduplog_*などのように、ソース・データベース・ファイルの名前で文字列を置き換えることによって、複製ログ・ファイルの名前が作成されます。変換する組合せは複数指定できます。
Oracle管理ファイルでLOG_FILE_NAME_CONVERTを使用する方法の詳細は、「Oracle管理ファイルの初期化パラメータの設定」を参照してください。
Recovery Managerは、オンラインREDOログの作成時にREUSEパラメータを使用します。指定された場所にすでにオンラインREDOログ・ファイルが存在し、適切な大きさの場合は、そのオンラインREDOログ・ファイルが複製のために再利用されます。
DB_CREATE_FILE_DEST、DB_CREATE_ONLINE_DEST_nまたはDB_RECOVERY_FILE_DESTのいずれかを設定します。このパラメータを設定すると、ソース・データベース・ファイルの名前で文字列を置き換えることによって、複製ログ・ファイルの名前が作成されます。これらのパラメータの優先順位の規則は、SQL文ALTER DATABASE ADD LOGFILEで使用される規則と同じです。
複製ファイル名がソース・データベース・ファイル名と同じになります。この方法を使用する場合は、NOFILENAMECHECKオプションを指定する必要があります。また、複製のオンラインREDOログが複製元と競合しないように、複製データベースは別のホストに存在する必要があります。
優先順位の高い規則は、優先順位の低い規則より優先されます。たとえば、LOGFILE句およびLOG_FILE_NAME_CONVERTパラメータの両方を指定した場合、Recovery ManagerはLOGFILE句を使用します。
いくつかの方法を使用して、複製データベースのデータファイルに新しい名前を指定できます。次に、それらの方法を優先順位の高い順に示します。
SET NEWNAMEコマンドとDUPLICATEコマンドの両方が含まれているRUNブロック内で、Recovery ManagerのコマンドSET NEWNAME FOR DATAFILEを使用します。
CONFIGURE AUXNAMEを使用して、既存のデータファイルに新しい名前を指定します。CONFIGURE AUXNAMEコマンドは、DUPLICATEコマンドの前に実行します。
DUPLICATE ... DB_FILE_NAME_CONVERTを実行し、SET NEWNAMEまたはCONFIGURE AUXNAMEによって名前が変更されないデータファイルの名前を変換する規則を指定します。DB_FILE_NAME_CONVERT初期化パラメータを設定してください。DB_CREATE_FILE_DEST初期化パラメータを設定して、指定した場所でOracle Managed Filesのデータファイルを作成します。
前述のいずれの手順も実行しない場合、複製データベースではソース・データベースの元のデータファイルの場所が再利用されます。
Recovery Managerは、データベース複製プロセスの一部として一時表領域のデータファイルを再作成します。複製データベースの一時ファイルの場所を指定する方法は複数あります。次に、それらの方法を優先順位の高い順に示します。
SET NEWNAMEコマンドとDUPLICATEコマンドの両方が含まれているRUNブロック内で、SET NEWNAME FOR TEMPFILEコマンドを使用します。
DUPLICATEコマンドにDB_FILE_NAME_CONVERT句を指定して、SET NEWNAMEによって名前が変更されない一時ファイルを変換する規則を指定します。DB_FILE_NAME_CONVERT初期化パラメータを設定してください。DB_CREATE_FILE_DEST初期化パラメータを設定して、Oracle Managed Filesの一時ファイルを作成します。
この項では、Recovery ManagerのDUPLICATEの代表的な使用例を示します。
常に、データベースのすべての表領域を複製する必要があるわけではありません。たとえば、ソース・データベースから表領域のサブセットのみを必要とする、複製のレポートを生成する場合があります。DUPLICATE DATABASEコマンドには、読取り専用の表領域または現在OFFLINE NORMALである表領域をスキップできるオプションがあります。また、TABLESPACE句を使用して、複製データベースに含める表領域を指定することもできます。この項の内容は、次のとおりです。
DUPLICATEコマンドにSKIP READONLYを指定すると、Recovery Managerは読取り専用表領域のデータファイルを複製しません。例23-8は、例23-3を少し変更した例です。読取り専用表領域が除外される点が異なります。
DUPLICATE TARGET DATABASE TO dupdb FROM ACTIVE DATABASE SKIP READONLY NOFILENAMECHECK;
DUPLICATE操作の前に、表領域がOFFLINE NORMALオプションによってオフラインにされた場合、Recovery Managerはそれらの表領域のデータファイルの複製およびその複製データベースに対するDROP TABLESPACEの発行を行いません。したがって、特別な構文を指定してこれらの表領域を除外する必要はありません。複製後、すべてのデータファイルおよび表領域はオンラインになります。
SKIP TABLESPACEパラメータを指定すると、複製データベースから表領域を除外できます。SYSTEM表領域、SYSAUX表領域、UNDO表領域およびロールバック・セグメントを含む表領域は除外できないことに注意してください。TABLESPACEパラメータを使用すると、指定したデータベースに含める必要がある表領域を指定することもできます。複製データベースから除外する必要がある表領域を指定するSKIP TABLESPACEとは異なり、このオプションを使用すると、含める必要がある表領域が指定された後、残りの表領域はスキップされます。
例23-9は、例23-3を少し変更した例です。tools表領域が除外される点が異なります。
DUPLICATE TARGET DATABASE TO dupdb FROM ACTIVE DATABASE SKIP TABLESPACE tools NOFILENAMECHECK;
例23-10は例23-3を少し変更した例です。users表領域が含まれ、SYSTEM表領域、SYSAUX表領域およびUNDOセグメントまたはロールバック・セグメントが含まれている表領域以外の他のすべての表領域が除外される点が異なります。
DUPLICATE TARGET DATABASE TO dupdb FROM ACTIVE DATABASE TABLESPACE users NOFILENAMECHECK;
「長期格納用のデータベース・バックアップの作成」の説明に従って、アーカイブ・バックアップを行うことができます。アーカイブ・バックアップは、データベースのリストアおよびリカバリに必要なすべてのファイルが含まれているという点で包括的なバックアップです。テストのためにアーカイブ・バックアップをリストアする場合は、一時インスタンスを作成し、DUPLICATEコマンドを使用する方法をお薦めします。この方法を使用すると、本番システムに影響が及ぼされません。
Recovery Managerを起動し、ターゲット・データベースおよびカタログ・データベースに接続するとします。例23-11では、タグTESTDBが含まれているアーカイブ・バックアップを一時ディスクに作成します。
BACKUP DATABASE FORMAT '/disk1/oraclebck/%U' TAG TESTDB KEEP UNTIL 'SYSDATE+1' RESTORE POINT TESTDB06;
例23-11では、リカバリ・カタログおよびバックアップ制御ファイルの両方に存在し、バックアップをリカバリする時点を示すラベルとなるリストア・ポイントを作成します。アーカイブ・ログは、オンライン・バックアップの場合にのみバックアップされることに注意してください。アーカイブ・ログは、オフライン・バックアップでは必要ないためバックアップされません。
例23-11で作成されたバックアップをリストアする手順は、「データベースの複製」の手順と同様です。唯一の追加要件として、DUPLICATEコマンドで、アーカイブ・バックアップを使用して作成されたリストア・ポイントを指定する必要があります。
TARGETとしてソース・データベースに、AUXILIARYとして複製データベース・インスタンスに、およびリカバリ・カタログに接続します。
LIST RESTORE POINTを実行し、使用可能なリストア・ポイントを表示します(手順は、「リストア・ポイントの表示」を参照)。
LIST RESTORE POINT;
DUPLICATEコマンド自体の発行の前までのすべての手順に従います。
DUPLICATEコマンドを実行し、リストアするアーカイブ・バックアップのリストア・ポイントを指定します。次の例では、補助インスタンスを作成し、テスト・ホスト上でRecovery Managerを実行していると想定しています。UNTIL RESTORE POINT句にTESTDB06が指定されています。これは、例23-11で作成されたリストア・ポイントです。
DUPLICATE TARGET DATABASE TO mytest UNTIL RESTORE POINT TESTDB06 DB_FILE_NAME_CONVERT '/prod/oracledb/','/test/oracledb' PFILE 'test/oracledb/init.ora';
前述のDUPLICATEコマンドによって、データベース全体がリストアされ、データベースの名前がmytestに変更されます。DUPLICATEコマンドでは、元の制御ファイルはリストアされませんが、新しい制御ファイルが作成されます。したがって、リストア・ポイントが制御ファイル内に存在しているときに、Recovery Managerがカタログまたはソース・データベースに接続されている場合は、DUPLICATE ... UNTIL RESTORE POINTのみを指定できます。
この例では、バックアップベースの複製を使用して複製データベースを作成します。ソース・データベースでサーバー・パラメータ・ファイルが使用されないため、SPFILEの方法を使用して複製データファイルの名前を指定することはできません。複製データファイルがいくつかのディレクトリに分散されるため、SET NEWNAMEコマンドを使用してファイル名を指定します。
ソース・データベースprodはhost1上にあり、複数のディレクトリに分散した8つのデータファイルが含まれているとします。ソース・データベースを複製し、リモート・ホストhost2上にdupdbデータベースを作成します。dupdbデータベースでは、表領域toolsが除外され、その他のすべての表領域が保持されます。
この例では、host1とhost2のディレクトリ構造が異なります。host2のデータファイルを/oradata1から/oradata7サブディレクトリに格納します。ソース・データベースには8つのデータファイルが存在しますが、tools表領域は除外するため、ターゲット・データファイルに指定する必要があるのは7つの場所のみです。転送先ホスト上のディレクトリ/duplogsに2つのオンラインREDOログ・グループを作成し、各グループに200KBのメンバーを2つ含めます。host1およびhost2は、NFSなどの方法を使用して相互のファイル・システムにマウントできないとします。
ソース・データベースのすべてのデータファイルおよびアーカイブREDOログのディスク・コピーまたはバックアップ・セットがディスク上に存在しており、オペレーティング・システム・ユーティリティを使用して、それらをhost2に手動でコピー済です。これらのバックアップおよびコピーは、host2上の、host1上と同じ場所に存在します。
オペレーティング・システムのユーティリティを使用して、初期化パラメータ・ファイルをhost1からhost2の適切な場所にコピー済です。末尾に_DESTが付いていて、パス名を指定するすべての初期化パラメータを再設定済である。RUNコマンド自体でデータファイルおよびオンライン・ログの名前を指定するため、DB_FILE_NAME_CONVERTおよびLOG_FILE_NAME_CONVERTは設定しません。補助インスタンスは、デフォルトの場所にあるサーバー側の初期化パラメータ・ファイルを使用します。そのため、DUPLICATEコマンドにPFILEパラメータを指定する必要はありません。
例23-12に、複製データベースを作成するスクリプトを示します。SET NEWNAMEはRUN内でのみ実行できるため、RUNコマンドが必要であることに注意してください。データファイル7は複製データベースから除外するtools表領域にあるため、このデータファイルには新しい名前を設定しません。
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'; SET NEWNAME FOR DATAFILE 6 TO '/oradata6/indx01.dbf'; # Do not set a newname for datafile 7, because it is in the tools tablespace, # and you are excluding tools from the duplicate database. SET NEWNAME FOR DATAFILE 8 TO '/oradata7/users01.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; }
残りのデータベース・ファイルの場所とは別に、Oracle管理ファイルの複製先に特定のデータファイルまたは一時ファイルを格納する場合は、次の手順を実行します。
DB_CREATE_FILE_DEST初期化パラメータを任意の場所に設定します。
RUNブロックにDUPLICATEコマンドを含めて、SET NEWNAME FOR DATAFILE ... TO NEWおよびSET NEWNAME FOR TEMPFILE ... TO NEWを使用します。
指定したデータファイルまたは一時ファイルは、DB_CREATE_FILE_DESTで指定された場所にOracle管理ファイルの名前で作成されます。
例23-13に示すように、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; }
この項では、「SET NEWNAMEを使用した複製ファイルの名前の指定」で説明されている環境と同じ環境を想定しています。例23-12は例23-14を少し変更した例です。CONFIGURE AUXNAMEを使用して新しいデータファイル名を指定します。これらの新しいファイル名は制御ファイルに記録され、将来のすべての複製で使用されます。
また、例23-14では、自動チャネルおよびクライアント側の初期化パラメータ・ファイルを使用してデータベースを複製し、LOGFILE句を使用してオンラインREDOログの名前とサイズを指定します。この場合、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;
Recovery Managerは、すべての増分バックアップ、アーカイブREDOログのバックアップおよびアーカイブREDOログを使用して不完全リカバリを実行し、RESETLOGSオプションを指定してデータベースをオープンしてオンラインREDOログを作成します。
複製の完了後、データファイルが以降の操作によって上書きされないように、複製データベース内のデータファイル用に設定した補助名を消去します。たとえば、次のコマンドを入力します。
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コマンドを再度実行して、基本的に複製データベースを再作成します。この方法では、複製データベースのデータファイルの完全コピーを作成する必要があります。複製データベースとソース・データベースを同期化する場合は、常に例23-15に示すスクリプトを実行します。たとえば、このスクリプトは、毎日または毎週実行できます。
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;
|
![]() Copyright © 2003, 2008, Oracle Corporation. All Rights Reserved. |
|