この章では、DUPLICATE
コマンドを使用して、独立して機能するデータベース・コピーを作成する方法について説明します。
この章の内容は次のとおりです。
データベースを複製するには、DUPLICATE
コマンドを使用して、ソース・データベースにあるすべてのデータまたはそのサブセットをコピーします。複製データベース(コピー先のデータベース)は、ソース・データベース(コピー元のデータベース)から完全に独立して機能します。
複製データベースは様々な目的で有効であり、ほとんどの場合、テストに使用されます。複製データベースでは、次のタスクを実行できます。
バックアップ手順およびリカバリ手順のテスト
Oracle Databaseの新しいリリースへのアップグレードのテスト
データベースのパフォーマンスにアプリケーションが与える影響のテスト
スタンバイ・データベースの作成
レポートの生成
たとえば、host1
上の本番データベースをhost2
上に複製し、host1
上の本番データベースを通常どおりに実行したまま、host2
上の複製データベースを使用してこのデータベースのリストアおよびリカバリを練習できます。
DUPLICATE
コマンドの代わりにオペレーティング・システムのユーティリティを使用してデータベースをコピーした場合、コピーしたデータベースのDBIDは元のデータベースと同じになります。このコピーしたデータベースを元のデータベースと同じリカバリ・カタログに登録するには、DBNEWIDユーティリティを使用してDBIDを変更する必要があります(『Oracle Databaseユーティリティ』を参照)。これに対して、DUPLICATE
コマンドを実行すると、複製データベースに対して異なるDBIDが自動的に割り当てられるため、複製データベースをソース・データベースと同じリカバリ・カタログに登録できます。
DUPLICATE
コマンドを使用すると、まったく同じ機能を持つデータベースのコピーを作成したり、大きく異なる目的で使用されるフィジカル・スタンバイ・データベースを作成することができます。スタンバイ・データベースはプライマリ・データベースのコピーで、プライマリ・データベースのアーカイブ・ログ・ファイルを使用して継続的に更新できます。プライマリ・データベースにアクセスできない場合は、スタンバイ・データベースへのフェイルオーバーを実行し、それを新しいプライマリ・データベースにすることができます。ただし、データベース・コピーはこの用途には使用できません。データベース・コピーは、フェイルオーバーでの使用を目的としていないため、スタンバイの様々なリカバリ・オプションおよびフェイルオーバー・オプションをサポートしていません。
関連項目: DUPLICATEコマンドを使用したスタンバイ・データベースの作成方法は、『Oracle Data Guard概要および管理』 を参照してください。 |
ソース・ホストは、ソース・データベースをホストするコンピュータを表します。ソース・データベース・インスタンスは、ソース・データベースに関連付けられたインスタンスを表します。
転送先ホストは、複製データベースをホストするコンピュータを表します。ソース・ホストと転送先ホストは、同じコンピュータである場合も異なるコンピュータである場合もあります。複製データベースに関連付けられたデータベース・インスタンスは、補助インスタンスと呼ばれます。
注意: 同じソース・データベースを使用して同時データベース複製操作を実行することは、サポートされていません。 |
RMANでは、2種類の基本的な複製がサポートされます。アクティブなデータベースの複製およびバックアップベースの複製です。RMANは、次の接続を使用しているかどうかにかかわらず、バックアップベースの複製を実行できます。
ターゲット
リカバリ・カタログ
アクティブなデータベースを複製する場合、両方への接続が必要です。
図24-1に、2つの複製方法のディシジョン・ツリーを示します。
アクティブなデータベースの複製の場合、RMANは、ソース・データベース・インスタンスにTARGET
として、補助インスタンスにAUXILIARY
として接続します。RMANは使用中のソース・データベースをネットワーク経由で補助インスタンスにコピーします。これにより、複製データベースが作成されます。ソース・データベースのバックアップは必要ありません。図24-2に、アクティブなデータベースの複製を示します。
バックアップベースの複製の場合、RMANでは、既存のRMANバックアップおよびコピーを使用して複製データベースを作成します。この複製方法では、相互に排他的な次の方法のいずれかを使用します。
ターゲット・データベース接続を行わず、リカバリ・カタログを使用しない複製。RMANはBACKUP LOCATION
からバックアップおよびコピーが存在する場所のメタデータを取得します。
ターゲット・データベース接続を行う複製。RMANはターゲット・データベースの制御ファイルまたはリカバリ・カタログからバックアップのメタデータを取得します。
図24-3に、ターゲット接続を行わない場合のバックアップベースの複製を示します。RMANは、リカバリ・カタログ・データベース・インスタンスおよび補助インスタンスに接続します。転送先ホストは、複製データベースの作成に必要なRMANバックアップにアクセスできる必要があります。
図24-4に、ターゲットまたはリカバリ・カタログ・データベース・インスタンスへの接続を行わない場合のバックアップベースの複製を示します。RMANは、転送先ホスト上の複製データベースの補助インスタンスに接続します。複製のためのすべてのバックアップまたはコピーが含まれているディスクのバックアップ場所が、転送先ホストによって使用可能である必要があります。
図24-4 ターゲット接続またはリカバリ・カタログ接続を行わない場合のバックアップベースの複製
図24-5に、ターゲット接続を行う場合のバックアップベースの複製を示します。RMANは、ソース・データベース・インスタンスおよび補助インスタンスに接続します。必要に応じて、RMANはリカバリ・カタログ・データベース(図では非表示)に接続できます。転送先ホストは、複製データベースの作成に必要なRMANバックアップにアクセスできる必要があります。
複製データベースには、ソース・データベースと同じ内容か、またはソース・データベース内の表領域のサブセットのみを含めることができます。たとえば、TABLESPACE
オプションを使用すると、指定した表領域のみを複製できます。また、SKIP READONLY
オプションを使用すると、複製データベースから読取り専用表領域を除外できます。
バックアップベースの複製では、複製の主な作業は補助チャネルによって実行されます。これらのチャネルは、宛先ホスト上の補助インスタンスのサーバー・セッションに対応しています。アクティブなデータベースの複製では、主な作業はターゲット・チャネルによって実行されます。
複製のための明示的な時点が提供されていない場合でも、RMANでデータベースのPoint-in-Timeリカバリを実行する必要があります。Point-in-Timeリカバリが必要なのは、ソース・データベースのオンラインREDOログ・ファイルがバックアップされておらず、複製データベースに適用できないためです。複製データベースをリカバリできるのは、ソース・データベースによってアーカイブされた最新のREDOログ・ファイルの時点までです。
RMANは、複製操作のうち、次の処理を自動化します。
次の条件を満たしている場合に、補助インスタンスのデフォルトのサーバー・パラメータ・ファイルを作成します。
複製にはスタンバイ・データベースを使用しない。
サーバー・パラメータ・ファイルは複製されない。
補助インスタンスは、サーバー・パラメータ・ファイルを使用して起動されていない。
UNTIL
句の要件を満たす最新の制御ファイルを、アクティブなデータベースのバックアップまたはコピーからリストアします。
リストアまたはコピーされたバックアップ制御ファイルを、アクティブなデータベースからマウントします。
注意: ソース・データベースの制御ファイルに無効なスレッドが含まれる場合、それらのスレッドも複製データベースで無効になります。 |
RMANリポジトリを使用して、データファイルを補助インスタンスにリストアするためのバックアップを選択します。この手順は、バックアップベースの複製に適用されます。
複製データファイルをリストアおよびコピーし、増分バックアップとアーカイブREDOログ・ファイルを使用して、現在以外の時点にリカバリします。
データベース・インスタンスを停止し、NOMOUNT
モードで再起動します。
新しい制御ファイルを作成します(この制御ファイルによって、新しいDBIDが作成されてデータファイルに格納されます)。
RESETLOGS
オプションを使用して複製データベースをオープンし、新しいデータベース用のオンラインREDOログを作成します。
関連項目: 複製データベースにコピーされるファイルの詳細は、 『Oracle Databaseバックアップおよびリカバリ・リファレンス』のDUPLICATEに関する項を参照してください。 |
この項では、データベースの複製の基本手順について説明します。詳細は、各手順のリンク先を参照してください。
データベースを複製する手順
データベースを複製する準備をします。
「データベースの複製の準備」を参照してください。
RMANを起動し、必要なデータベース・インスタンスに接続します。
「RMANの起動およびデータベースへの接続」を参照してください。
ソース・データベースを適切な状態に設定します(必要な場合)。
「ソース・データベースの適切な設定」を参照してください。
RMANチャネルを構成します(必要な場合)。
「複製で使用するためのRMANチャネルの構成」を参照してください。
複製を実行します。
「データベースの複製」を参照してください。
データベースを複製する前に、複製方法を決定し、補助データベース・インスタンスを含めてデータベース環境を準備する必要があります。
複製の準備の手順
複製方法を選択します。
「手順1: 複製方法の選択」を参照してください。
Oracle Real Application Clusters (Oracle RAC)データベースの複製では、補助データベースのCLUSTER_DATABASE
初期化パラメータをFALSE
に設定します。複製完了後に、このパラメータはTRUE
に再設定できます。
複製データベース・ファイルの名前の指定方法を選択します。
「手順2: 複製ファイルの名前の指定方法の選択」を参照してください。
バックアップベースの方法の場合は、バックアップに補助インスタンスからアクセスできるようにします。バックアップベースの方法でない場合、この手順をスキップします。
「手順3: 複製インスタンスからバックアップへのアクセス可能化」を参照してください。
データベースへのリモート・アクセスを準備します。
「手順4: データベースへのリモート・アクセスの準備」を参照してください。
補助インスタンスを準備します。
「手順5: 初期化パラメータ・ファイルの作成と補助インスタンスの起動」を参照してください。
ビジネス要件およびデータベース環境に応じて、状況に合った最適な複製方法を決定します。次の質問事項を検討してください。
それぞれの複製方法の前提条件を十分に理解しているかどうか。
詳細は、『Oracle Databaseバックアップおよびリカバリ・リファレンス』のDUPLICATEコマンド・エントリの前提条件に関する項を参照してください。すべての複製方法に共通する前提条件もあります。そのような条件の例を次に示します。
ソース・データベースおよび複製データベースは、同じプラットフォーム上にある必要があります。DUPLICATE
コマンドは、同じオペレーティング・システムの32ビット版および64ビット版を、同じプラットフォームに属しているとみなします。
DUPLICATE
コマンドを使用する場合は、補助インスタンスで複製作業を実行するために1つ以上の補助チャネルが必要です。
その他の前提条件は特定のものであり、複製方法に応じて異なります。たとえば、アクティブな複製では、ソース・インスタンスと補助インスタンスにソース・データベースと同じパスワードを使用する必要があります。一方で、ターゲット・データベースおよびリカバリ・カタログに接続しないバックアップベースの複製では、すべてのバックアップおよびデータベース・コピーが単一の場所に存在することのみが必要とされます。
ソース・データベースのバックアップがすでに存在しているかどうか。
アクティブなデータベースの複製の主なメリットとしては、ソース・データベースをバックアップする必要のないことがあげられます。アクティブな複製では、マウントされたデータベース・ファイルまたはオンラインのデータベース・ファイルがネットワークを介して補助インスタンスにコピーされます。この方法のデメリットの1つとしては、作業がネットワークのパフォーマンスに悪影響を及ぼすことがあげられます。また、別のデメリットとして、ファイルを補助ホストに転送するために必要なプロセスがソース・データベースによって実行されているため、ソース・データベースおよび本番ワークロードに影響を与えることもあげられます。
ソース・データベースのバックアップがすでに存在し、ネットワークへの影響を許容できない場合は、バックアップベースの複製をお薦めします。バックアップを一時記憶域にコピーし、手動で転送先ホストに転送できます。ターゲットまたはリカバリ・カタログとの接続を使用して複製が作成される場合、転送先ホストのバックアップ・ファイルは、ソース・ホスト上のバックアップ・ファイルと同じファイル仕様である必要があります。それ以外の場合、これは要件ではありません。
リカバリ・カタログが使用できるかどうか。
リカバリ・カタログが存在する場合は、RMANがTARGET
としてソース・データベースに接続されていなくても、バックアップベースの複製を実行できます。この方法は、補助ホストからソース・データベースへのネットワーク接続が制限されたり、断続的に中断されるような場合に役立ちます。TARGET
接続を行わない複製では、ソース・データベースは複製の影響を受けません。
宛先ホストでどの程度のディスク領域が使用できるか。
ディスク・バックアップを使用して複製を実行する場合、宛先ホストのディスク領域が問題となることがあります。たとえば、ソース・データベースが1テラバイト(TB)で、共有ディスクまたはネットワーク・ファイル・システム(NFS)を使用せずにディスク・バックアップからデータベースを複製する場合は、宛先ホストで2テラバイト(TB)以上の領域を使用できる必要があります。NFSのパフォーマンスがボトルネックとなるため、環境によっては、手動でバックアップを転送する必要があります。
ソース・ホストと宛先ホストの接続がLANまたはWANであるかどうか。
アクティブなデータベースの複製のパフォーマンスは、Local Area Network(LAN)よりもWide Area Network(WAN)の方が低下する可能性があります。WANにおけるパフォーマンスの低下を許容できないときは、バックアップベースの複製のみが実行可能な選択肢となる場合があります。
データベースをいつ複製する予定か。
ユーザー・アクティビティが高い時間帯にデータベースを複製する必要がある場合には、アクティブな複製によって生じるネットワーク・スループットの損失が問題となる可能性があるため、バックアップベースの複製をお薦めします。また、アクティブなデータベースの複製の場合は、補助ホストへファイルをコピーするときに必要となるRMANチャネルが、パフォーマンスに影響を与えることがあります。
データベースの複製時に、RMANによって、複製制御ファイル、データファイル、一時ファイルおよびオンラインREDOログ・ファイルの名前が生成されます。このため、これらのファイルの名前の指定方法を決定する必要があります。
最も簡単な複製の方法として、ソース・データベースと同じ名前を使用するよう複製データベースを構成する方法をお薦めします。同じ名前を使用する場合は、環境が次の要件を満たしている必要があります。
ソース・データベースがASMディスク・グループを使用している場合、複製データベースは同じ名前のASMディスク・グループを使用する必要があります。
ソース・データベース・ファイルがOracle Managed Filesの場合、補助インスタンスはソース・データベースと同じディレクトリ
の場所に、DB_FILE_CREATE_DESTを設定する必要があります。ソース・ホスト上と宛先ホスト上でディレクトリが同じであっても、Oracle Databaseは複製ファイルに対して相対ファイル名を選択します。
Oracle RAC環境を使用している場合、ソース・ホストと転送先ホストの両方に同じORACLE_SID
を使用する必要があります。
ソース・データベースのデータベース・ファイルの名前にパスが含まれている場合、そのパス名は複製データベースにあるパス名と同じである必要があります。
前述の推奨事項に従って環境を構成する場合、複製ファイルの名前の指定で必要となる追加の構成はありません。
ターゲットおよびリカバリ・カタログへの接続を使用して、またはターゲット接続のみを使用して複製を実行している場合、RMANでは、RMANリポジトリのメタデータを使用して、複製に必要なバックアップおよびアーカイブREDOログ・ファイルを検索します。RMANがリカバリ・カタログに接続される場合、RMANはカタログからバックアップ・メタデータを取得します。RMANがカタログに接続されない場合は、(ターゲット接続を行うバックアップベースの複製のときなど)、制御ファイルからメタデータを取得します。
ターゲットにもリカバリ・カタログにも接続せずに複製を実行している場合を除いて、バックアップの名前はRMANリポジトリに記録されている名前と同じ名前で使用できる必要があります。宛先ホスト上の補助チャネルがすべてのデータファイル・バックアップおよびアーカイブREDOログ・ファイルにアクセスできることを確認してください(複製データベースを目的の時点までリストアおよびリカバリするために必要です)。アクセスできない場合、複製は失敗します。アーカイブREDOログ・ファイルは、イメージ・コピーまたはバックアップ・セットとして使用可能です。
注意: データベース・バックアップは、BACKUP DATABASE で生成する必要はありません。個々のデータファイルの全体バックアップおよび増分バックアップを組み合せることができますが、すべてのデータファイルの全体バックアップが必要です。 |
この作業手順はメディア・マネージャの構成によって異なります。
補助インスタンスからSBTバックアップへのアクセスを可能にするための手順
必要に応じて、宛先ホストにメディア管理ソフトウェアをインストールします。
宛先ホストからバックアップが含まれているテープにアクセスできるようにします。通常、次のいずれかを実行します。
リモート・ホストに接続されているドライブに、テープを物理的に移動します。
ネットワーク・アクセスが可能なテープ・サーバーを使用します。
必要に応じて、リモート・メディア管理ソフトウェアにテープの存在について通知します。
補助インスタンスからディスク・バックアップへのアクセスを可能にする場合は、ターゲットまたはリカバリ・カタログに接続された状態でデータベースを複製するかどうかによって、方法が異なります。ターゲットまたはリカバリ・カタログに接続しない場合、複製のためのBACKUP LOCATION
を指定する必要があります。
BACKUP LOCATION
を使用する場合、バックアップおよびコピーは共有の場所に存在するか、または宛先ホスト上のBACKUP LOCATION
に移動することができます。後者の場合は、バックアップまたはコピーの名前や元のパスを保持する必要はありません。BACKUP LOCATION
オプションで指定された場所には、複製されるすべてのファイルをリストアし目的の時点までリカバリするために十分なバックアップ・セット、イメージ・コピーおよびアーカイブ・ログが含まれる必要があります。
バックアップは、すべて同じ時点のものである必要はありません。また、すべてバックアップ・セットである必要も、すべてイメージ・コピーである必要もありません。データファイル・バックアップは、イメージ・コピーまたはバックアップ・セットとして提供されることができます。 アーカイブ・ログは、通常の形式またはアーカイブ・ログのバックアップ・セットとして提供されることができます。
異なる時点のバックアップを使用する場合、バックアップ場所には、最も古いバックアップの開始から目的のリカバリ・ポイントまでの期間をカバーするアーカイブ・ログが含まれる必要があります。
バックアップ場所に複数のデータベースのバックアップ・ファイルが含まれる場合、DATABASE
句で、複製するデータベースの名前を指定する必要があります。バックアップ場所に同じ名前を持つ複数のデータベースのバックアップ・ファイルが含まれる場合、DATABASE
句で、複製するデータベースの名前とDBID
の両方を指定する必要があります。
ソース・データベースの高速リカバリ領域は、バックアップ場所としての使用に特に適しています。これは、複製に必要なすべてのファイルがほぼ常に含まれているためです。高速リカバリ領域をバックアップ場所として使用するには、宛先システムからリモートでアクセスするか、または高速リカバリ領域の内容を宛先システムにコピーすることができます。
BACKUP LOCATION
を使用しない場合は、次の相互に排他的な例ごとに、方法が異なります。
ソース・ホストと宛先ホストが同一のファイル・システムである場合
これは最も簡単で推奨される例です。たとえば、ソース・データベースのバックアップが/dsk1/bkp
に格納されているとします。この場合、次のいずれかの方法で、宛先ホストからディスク・バックアップにアクセスできるようになります。
バックアップをソース・ホストから宛先ホストの同一のパスに手動で転送します。たとえば、バックアップがソース・ホストの/dsk1/bkp
にある場合は、FTPを使用してそれらのバックアップを宛先ホストの/dsk1/bkp
に転送します。
NFSまたは共有ディスクを使用して、宛先ホストで同じパスにアクセスできるようにします。たとえば、ソース・ホストから/dsk1/bkp
にアクセスできると想定して、NFSを使用して宛先ホストに/dsk1/bkp
をマウントし、/dsk1/bkp
をマウント・ポイント名として使用します。
ソース・ホストと宛先ホストのファイル・システムが異なる場合
この場合、ソース・ホストで使用するディレクトリ名と同じディレクトリ名は、宛先ホストで使用できません。次の選択肢があります。
バックアップを使用可能にするために共有ディスクを使用できる場合。この項では、共有ディスクを使用する方法について説明します。
バックアップを使用可能にするために共有ディスクを使用できない場合。この方法については、「共有ディスクを使用しないディスク・バックアップのアクセス可能化」を参照してください。
srchost
およびdsthost
という2つのホストがあり、NFSまたは共有ディスクにアクセスできるとします。srchost
上のデータベースは、srcdb
です。srcdb
のバックアップは、ホストsrchost
上の/dsk1/bkp
内に存在します。ディレクトリ/dsk1/bkp
は転送先ホストで使用されていますが、ディレクトリ/dsk2/dup
は、いずれのホストでも使用されていません。
バックアップをソース・ホストから宛先ホストに転送する手順
ソース・ホストまたは宛先ホストのいずれかに、バックアップを格納するディレクトリを作成します。
たとえば、宛先ホスト上にバックアップ・ディレクトリ/dsk2/dup
を作成します。
前の手順で作成したディレクトリをもう一方のホストにマウントします。ディレクトリとマウント・ポイントの名前が同一であることを確認します。
たとえば、宛先ホストに/dsk2/dup
を作成した場合は、NFSを使用してこのディレクトリを/dsk2/dup
としてソース・ホストにマウントします。
バックアップを宛先ホスト上の新しい場所で使用できるようにします。次のいずれかの方法を使用できます。
RMANをTARGET
としてソース・データベースに接続し、「RMANバックアップのバックアップ」
で説明されているBACKUPコマンドを使用して、バックアップのバックアップを作成します。たとえば、BACKUP COPY OF DATABASE
コマンドを使用して、ソース・ホストの/dsk1/bkp
にあるバックアップをソース・ホストの/dsk2/dup
にコピーします。この場合、RMANは、新しい場所のバックアップを自動的にカタログに追加します。
オペレーティング・システム・ユーティリティを使用して、バックアップを新しい場所に転送します。たとえば、FTPを使用して、ソース・ホストの/dsk1/bkp
から宛先ホストの/dsk2/dup
にバックアップを転送するか、cp
コマンドを使用して、ソース・ホストの/dsk1/bkp
からソース・ホストの/dsk2/dup
にバックアップをコピーします。後で、RMANをTARGET
としてソース・データベースに接続し、CATALOG
コマンドを使用して、手動で転送したバックアップの場所で、RMANのリポジトリを更新します。
別のホストからデータベースにアクセスする必要がある場合、パスワード・ファイルおよびOracle Netからの接続を設定する必要があります。このタイプの設定は、セキュリティに影響を与える可能性があることに注意してください。
手動でパスワード・ファイルを作成する手順
パスワード・ファイルを作成するには、『Oracle Database管理者ガイド』の手順を実行します。
パスワード・ファイルに許可されているファイル名のタイプおよびパスワード・ファイルの場所は、プラットフォームとオペレーティング・システムの両方に固有です。
関連項目:
|
Oracle Netの接続を確立し静的リスナーを設定する手順
データベースに接続するようにクライアントを構成し、リスナーの静的サービス情報を追加するには、『Oracle Database Net Services管理者ガイド』の手順を実行します。
宛先ホスト上の補助インスタンスのパスワード・ファイルを作成するには、次の方法があります。
パスワード・ファイルを手動で作成します。
DUPLICATE ... FROM ACTIVE DATABASE
を使用する場合は、追加の要件があります。SYS
ユーザーIDを使用する必要があり、パスワードがソース・データベースのパスワードと一致する必要があります。補助インスタンスを起動し、ソース・データベースをその補助インスタンスに接続できるように、1つのパスワードが含まれているパスワード・ファイルを作成することができます。
DUPLICATE... FROM ACTIVE DATABASE
コマンドにPASSWORD FILE
オプションを指定します。
この場合、RMANは、ソース・データベース・パスワード・ファイルを転送先ホストにコピーし、既存のすべての補助インスタンスのパスワード・ファイルを上書きします。この方法は、複製データベースで使用できるようにするパスワードがソース・データベースのパスワード・ファイルに複数含まれている場合に有効です。
関連項目: Oracle Database管理者ガイド |
注意: FROM ACTIVE DATABASE オプションを使用してスタンバイ・データベースを作成する場合、RMANは、パスワード・ファイルを常にスタンバイ・ホストにコピーします。 |
初期化パラメータ・ファイルの場所と内容は、「手順2: 複製ファイルの名前の指定方法の選択」での決定によって異なります。この項では、次のことを想定しています。
ソース・ホストと転送先ホストで同じ名前を使用するという推奨される方法を選択します。つまり、Oracle RAC環境では、ソース・ホストと転送先ホストに同じORACLE_SID
を使用します。
補助インスタンス用にテキストベースの初期化パラメータ・ファイルを作成します。表25-5「補助インスタンスの初期化パラメータ」を参照してください。
初期化パラメータ・ファイルは、SQL*Plusを実行するホストのオペレーティング・システム固有のデフォルトの場所に配置されます。
たとえば、LinuxおよびUNIXではデフォルトの初期化パラメータ・ファイル名はORACLE_HOME
/dbs/init
ORACLE_SID
.ora
ですが、WindowsではORACLE_HOME
\database\init
ORACLE_SID
.ora
です。
DUPLICATE
コマンドのSPFILE
句を指定する予定です。
このDUPLICATE ... SPFILE
という方法が最も簡単です。これは、複製中にRMANによって、自動的にサーバー・パラメータ・ファイルがソース・データベースから補助インスタンスへコピーされるか、またはそのファイルがバックアップからリストアされるためです。サーバー・パラメータ・ファイルが補助インスタンスに存在する場合は、RMANによって上書きされます。
前述の要件を満たすことができない場合は、「サーバー・パラメータ・ファイルが存在しない場合のデータベースの複製」を参照してください。
初期化パラメータ・ファイルの作成および補助インスタンスの起動の手順
テキスト・エディタを使用して、テキストベースの初期化パラメータ・ファイルとして使用するための空のファイルを作成します。
SQL*Plusを実行するホストのオペレーティング・システム固有のデフォルトの場所に、初期化パラメータ・ファイルをコピーします。
パラメータ・ファイルのDB_NAME
を任意の値に設定します。
必須の初期化パラメータは、DB_NAME
のみです。次に、DB_NAME
の設定例を示します。
DB_NAME=somevalue
必要に応じて、Oracle RACに必要なパラメータおよびOracle Netを介してSYSDBA
権限を持つユーザーIDを使用して接続するためのパラメータなど、その他の初期化パラメータを設定します。
SQL*Plusを起動し、SYSDBA権限で補助インスタンスに接続します。補助インスタンスをNOMOUNT
モードで起動します(ファイルがデフォルトの場所にある場合には、STARTUP
コマンドのPFILE
パラメータは不要です)。
SQL> STARTUP NOMOUNT
注意: サーバー・パラメータ・ファイルではなく、テキストベースの初期化パラメータ・ファイルで補助インスタンスが起動されることを確認してください。制御ファイルの作成、補助インスタンスのマウントまたはオープンは実行しないでください。 |
RMANがTARGET
としてソース・データベースに接続されている場合、複製を行うには、ソース・データベースが適切な状態に設定されている必要があります。
ソース・データベースが適切な状態にあることを確認する手順
ソース・データベース・インスタンスをマウントまたはオープンしていない場合は、マウントまたはオープンします。
アクティブなデータベースの複製を実行している場合は、次の追加要件を満たしていることを確認します。
ソース・データベースがオープンしている場合は、アーカイブを有効にする必要があります。
ソース・データベースがオープンしていない場合は、データベースにインスタンス・リカバリは必要ありません。
この項では、RMANクライアントを起動し、「手順1: 複製方法の選択」で選択した複製方法で必要となるデータベース・インスタンスに接続します。RMANクライアントは、ネットワーク経由で必要なデータベースに接続可能であるかぎり、任意のホスト上に配置できます。
RMANを起動し、ターゲット・インスタンスおよび補助インスタンスに接続する手順
必要なデータベース・インスタンスに接続可能なホスト上で、RMANを起動します。
RMANプロンプトで、選択した複製方法に必要となるデータベース・インスタンスに対して、CONNECT
コマンドを実行します。
アクティブなデータベースの複製の場合、ソース・データベースにTARGET
として、補助インスタンスにAUXILIARY
として接続する必要があります。両方のインスタンスに同じSYSDBA
パスワードを使用し、ネット・サービス名を提供してAUXILIARY
インスタンスに接続する必要があります。リカバリ・カタログ接続は任意です。
ターゲット接続を行わないバックアップベースの複製の場合、AUXILIARY
として補助インスタンスに接続し、CATALOG
としてリカバリ・カタログに接続する必要があります。
ターゲット接続を行うバックアップベースの複製の場合、TARGET
としてソース・データベースに接続し、AUXILIARY
として補助インスタンスに接続する必要があります。リカバリ・カタログは任意です。
ターゲットおよびリカバリ・カタログへの接続を行わないバックアップベースの複製の場合、AUXILIARY
として補助インスタンスに接続する必要があります。
次のアクティブなデータベースの複製の例では、3つのすべてのデータベース・インスタンスにネット・サービス名を使用して接続します。
RMAN> CONNECT TARGET SYS/sysdba@prod; # source database connected to target database: PROD (DBID=39525561) RMAN> CONNECT AUXILIARY SYS/sysdba@dupdb; # duplicate database instance connected to auxiliary database: DUPDB (not mounted) RMAN> CONNECT CATALOG rman/rman@catdb; # recovery catalog database connected to recovery catalog database
バックアップベースの複製では、ソース・データベース・インスタンスではなく、補助インスタンスのチャネルによって、RMANのバックアップがリストアされます。チャネル構成は複製方法に応じて異なります。
アクティブなデータベースの複製では、ソース・データベースのチャネル構成を変更したり、AUXILIARY
チャネルを構成する必要はありません。ただし、RMANがネットワークを介してパラレルにファイルをコピーできるよう、ソース・データベースのディスク・チャネルのパラレル化設定を増加させる必要がある場合があります。
関連項目: CONFIGUREコマンドの詳細は、『Oracle Databaseバックアップおよびリカバリ・リファレンス』 を参照してください。 |
RMANでは、ソース・データベースのチャネル構成と同じ構成を宛先ホスト上の複製に使用できます。ソース・データベースのチャネルでAUXILIARY
オプションを指定しなくても、RMANでこれらの構成を利用できます。
次の追加事項に注意してください。
補助チャネルのチャネル・タイプ(DISK
またはsbt
)は、バックアップ・メディアと一致している必要があります。通常、ディスク・バックアップ用に割り当てるチャネルの数を増やすと、複製が高速になります。ディスクが最大の読取り/書込み速度に達した後、複製の速度を速くすることはできません。テープ・バックアップの場合は、チャネルの数を使用可能なデバイスの数に制限します。
ただし、補助チャネルに特別なパラメータが必要な場合(別のメディア・マネージャを指す場合など)は、CONFIGURE
コマンドのAUXILIARY
オプションを指定して自動チャネルを構成します。
ターゲット接続もリカバリ・カタログも使用せずに複製を実行する場合、ディスク・チャネルのみが使用できます。ユーザーによって割り当てられたチャネルが使用されていない場合、最初に制御ファイルをリストアするチャネルは1つのみです。制御ファイルがマウントされた後は、割り当てられるチャネルの数はリストアされた制御ファイルの構成によって異なります。
この項では、データベースを複製する最も基本的な手順について説明します。この項では、次のことを想定しています。
リモート・ホストにデータベースを複製します。複製データベース・ファイルには、ソース・データベース・ファイルと同じ名前を使用します。
注意: この構成でDUPLICATE コマンドを実行する場合は、DUPLICATE コマンドにNOFILENAMECHECK オプションを指定する必要があります。ソース・データベースと同じホスト上にデータベースを複製する場合は、NOFILENAMECHECK が指定されていないことを確認してください。 |
データベース全体を複製します。他の例については、「ソース・データベース表領域のサブセットの複製」を参照してください。
同じディレクトリ構造を持つリモート・ホストにデータベースを複製する手順
「データベースの複製の基本手順」の手順1から4が完了していることを確認します。
DUPLICATE
コマンドを実行します。
例24-1に、SPFILE
句が指定された場合のアクティブな複製の実行方法を示します。DUPLICATE
では、ソース・データベース・ファイルの名前が複製データベース・ファイルの名前と同じであるため、NOFILENAMECHECK
オプションが必要です。
PASSWORD FILE
オプションを指定すると、RMANはパスワード・ファイルを転送先ホストにコピーします。RMANは、サーバー・パラメータ・ファイルを転送先ホストに自動的にコピーし、サーバー・パラメータ・ファイルを使用して補助インスタンスを起動し、必要なすべてのデータベース・ファイルおよびアーカイブREDOログをネットワークを介して転送先ホストにコピーし、データベースをリカバリします。最後に、RMANは、RESETLOGS
オプションを指定してデータベースをオープンし、オンラインREDOログを作成します。
例24-1 同じディレクトリ構造を持つホストへの複製(アクティブ)
DUPLICATE TARGET DATABASE TO dupdb FROM ACTIVE DATABASE PASSWORD FILE SPFILE NOFILENAMECHECK;
これは例24-1を少し変更した例です。この例では、RMANは、ソース・データベースに対してTARGET
接続を行いません。例24-2では、ソース・データベースprod
の複製が、以前のデータベース・インカネーションの2007年の状態で作成されます。BACKUP LOCATION
が提供されていないため、RMANはソース・データベースに接続していませんが、リカバリ・カタログに接続する必要があります。
例24-2 過去の特定の時点までのデータベースの複製(バックアップベース)
DUPLICATE DATABASE prod DBID 8675309 TO dupdb UNTIL TIME "TO_DATE('11/01/2007', 'MM/DD/YYYY')" SPFILE NOFILENAMECHECK;
例24-2の特徴は、次のとおりです。
FROM ACTIVE DATABASE
句が指定されていません。句を指定しないと、RMANでは、バックアップベースの複製が行われます。
DBID
が指定されています。これは、ソース・データベース名prod
がリカバリ・カタログ内で一意ではないためです。
NOFILENAMECHECK
チェックが指定されています。これは、複製データベース・ファイルでソース・データベース・ファイルと同じ名前を使用する場合にはこのオプションが必要となるためです。
類似の例として、アーカイブ・バックアップをリストアする必要があるとします。このバックアップは、データベースのリストアおよびリカバリに必要なすべてのファイルが含まれているという点で包括的なバックアップです。テストのためにアーカイブ・バックアップをリストアする場合は、一時インスタンスを作成し、DUPLICATE
コマンドを使用する方法をお薦めします。この方法を使用すると、ソース・データベースに影響が及ぼされません。
DUPLICATE
コマンドで、アーカイブ・バックアップを使用して作成されたリストア・ポイントを指定する必要があります。リストア・ポイントが制御ファイル内に存在しているときに、RMANがカタログまたはソース・データベースに接続されている場合は、TO RESTORE POINT
のみを指定できます。例24-3では、リストア・ポイントとしてTESTDB103107
を指定しています。
例24-1をバックアップベースに変更したとします。この場合、RMANは、TARGET
としてソース・データベースに接続します。例24-4では、ソース・データベースの1週間前のデータを表示するために、複製データベースをその時点までリカバリします。
例24-4 過去の特定の時点までのデータベースの複製(バックアップベース)
DUPLICATE TARGET DATABASE TO dupdb SPFILE NOFILENAMECHECK UNTIL TIME 'SYSDATE-7';
例24-4の特徴は、次のとおりです。
FROM ACTIVE DATABASE
句が指定されていません。句を指定しないと、RMANでは、バックアップベースの複製が行われます。
NOFILENAMECHECK
オプションが指定されています。これは、複製データベース・ファイルでソース・データベース・ファイルと同じ名前を使用する場合にはこのオプションが必要となるためです。
例24-5は例24-1を少し変更した例です。この例では、RMANは、ソース・データベースに対してTARGET
接続を行わず、リカバリ・カタログに対してCATALOG
接続を行いません。制御ファイルのバックアップまたはコピーを含む、2007年11月11日午後2:00までの複製に必要なすべてのバックアップおよびコピーは、/prod_backups
に格納されています。
例24-5 ターゲット接続およびリカバリ・カタログ接続を行わない場合のデータベースの複製(バックアップベース)
DUPLICATE DATABASE TO dupdb UNTIL TIME "TO_DATE('11/01/2007 14:00:00', 'MM/DD/YYYY HH24:MI:SS')" SPFILE BACKUP LOCATION '/prod_backups' NOFILENAMECHECK;
例24-5の特徴は、次のとおりです。
データベース名が指定されていません。DATABASE
キーワードを使用してデータベース名を指定しないことによって、DUPLICATE
はデータベース名とDBID
をバックアップから取得します。BACKUP LOCATION
で複数のデータベースのバックアップが検出された場合、エラーが表示されます。
BACKUP LOCATION
句を使用して、複製のタイプがターゲット接続もリカバリ・カタログも使用しないバックアップベースであることを識別します。
UNTIL TIME
オプションが指定されています。これは、BACKUP LOCATION
句で許容される唯一のUNTIL
副次句です。
NOFILENAMECHECK
オプションによるチェックが指定されています。これは、複製データベース・ファイルでソース・データベース・ファイルと同じ名前を使用する場合にはこのオプションが必要となるためです。
例24-6 過去の特定の時点までのデータベースの複製(バックアップベース)
DUPLICATE TARGET DATABASE TO dupdb SPFILE NOFILENAMECHECK UNTIL TIME 'SYSDATE-7';
例24-6の特徴は、次のとおりです。
FROM ACTIVE DATABASE
句が指定されていません。この句を省略すると、RMANでは、バックアップベースの複製が行われます。
NOFILENAMECHECK
オプションによるチェックが指定されています。これは、複製データベース・ファイルでソース・データベース・ファイルと同じ名前を使用する場合にはこのオプションが必要となるためです。
RMANは、以前に失敗したDUPLICATE
コマンドの繰返しであるDUPLICATE
コマンドを自動的に最適化します。繰返しのDUPLICATE
コマンドは、過去に正常にコピーされたデータファイルを検知し、それらのデータファイルを再度コピーしません。これは、バックアップベース(ターゲット接続の有無を問わない)の複製かアクティブなデータベースの複製かにかかわらず、すべての複製の形式に適用されます。DUPLICATE
コマンドの自動最適化は、非常に大きなデータベースの複製中に障害が発生した場合に特に有効です。
DUPLICATEの処理を再起動する手順
RMANを終了します。
SQL*Plusを起動し、SYSDBA
権限またはSYSBACKUP
権限で補助インスタンスに接続します。最初に使用したものと同じSPFILE
指定またはPFILE
指定を使用して、補助インスタンスをNOMOUNT
モードで起動します。この指定を最初に省略した場合は、再度省略します。
この例は、/home/my_pfile.ora
のパラメータを使用して補助インスタンスを開始します。
STARTUP FORCE PFILE=/home/my_pfile.ora
SQL*Plusを終了し、RMANを開始します。
最初と同じデータベースに接続します。
DUPLICATE
コマンドを繰り返します。
2番目のDUPLICATE
操作は、次の処理を実行します。
最初のDUPLICATE
コマンドによって正常に複製されたデータファイルを検索します。
再度複製される必要のない各データファイルに対して、次のようなメッセージを表示します。
RMAN-05560: Using previous duplicated file /oradata/new/data01.f for datafile 1 with checkpoint SCN of 1654665
欠落しているか、または不完全なデータファイルのみをリストアするため、コピーおよびリストアをすべてのデータファイルに対して再実行することを回避します。
失敗したDUPLICATE
操作からRMANが自動的にリカバリしないようにする場合、NORESUME
キーワードを指定してこの機能を無効にします。DUPLICATE
の最初の起動時にNORESUME
キーワードを使用すると、後続の新しいデータベース用のDUPLICATE
コマンドがこの自動最適化を使用することを防止できます。