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. |
|