ヘッダーをスキップ
Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド
11g リリース2(11.2)
B56269-05
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

21 RMANの表領域のPoint-in-Timeリカバリ(TSPITR)の実行

この章では、RMANの表領域のPoint-in-Timeリカバリを実行する方法について説明します。この章の内容は、次のとおりです。

RMANのTSPITRの概要

RMANの表領域のPoint-in-Timeリカバリ(TSPITR)を効果的に使用するには、解決可能な問題の種類、コンポーネント、TSPITRを実行中のRMANの機能、および実行時や実行方法に関する様々な制約および制限について理解することが有用です。この項では、RMANのTSPITRの実行に関する基本的な概念、準備およびモードについて説明します。

RMANのTSPITRの目的

Recovery Manager (RMAN)のTSPITRを使用すると、データベースの1つ以上の表領域をデータベースの残りの表領域およびオブジェクトには影響を及ぼさずに、過去の時点まで迅速にリカバリできます。

RMANのTSPITRは、次の場合に最も有効です。

  • 1つの物理データベースの個別の表領域に複数の論理データベースが存在するときに、ある論理データベースを物理データベースの残りの部分とは異なる時点までリカバリする場合。たとえば、ordersおよびpersonnel表領域に論理データベースを保持している場合などです。不正なバッチ・ジョブまたはデータ操作言語(DML)文を実行すると、1つの表領域にのみ存在するデータが破損します。

  • 表の構造を変更するデータ定義言語(DDL)操作を実行した後に消失したデータをリカバリする場合。フラッシュバック表を使用して、表の切捨て操作などで構造を変更した時点より前に表を巻き戻すことはできません。

  • PURGEオプションを使用して表を削除した後、その表をリカバリする場合。

  • 表の論理的な破損からリカバリする場合。

  • 削除された表領域をリカバリする場合。実際に、リカバリ・カタログを使用しない場合でも、RMANでは削除された表領域に対してTSPITRを実行できます。

フラッシュバック・データベースを使用してデータを巻き戻すこともできますが、サブセットのみでなくデータベース全体を巻き戻す必要があります。また、TSPITRとは異なり、フラッシュバック・データベース機能ではフラッシュバック・ログを保持するオーバーヘッドが伴います。データベースのフラッシュバックが可能な期間は、TSPITRの期間より限られています。TSPITRの期間は、最も古いリカバリ可能なバックアップまでの期間となります。

RMANのTSPITRの基本的な概念

次の各項では、RMANのTSPITRの基本事項について説明します。

共通の用語

表21-1に、RMANのTSPITRで使用される共通のエンティティの一部を定義します。

表21-1 RMANのTSPITRのエンティティ

名前 説明

ターゲット・インスタンス

目標時点までリカバリする表領域が含まれます。

目標時点

TSPITRが完了した後の表領域のPoint-in-TimeまたはSCN

補助インスタンス

リカバリ・プロセスで使用され、リカバリ作業を実行するデータベース・インスタンス。補助インスタンスには、データベース・インスタンスに関連付けられる他のファイルが含まれます。完全なリストについては、補助セットを参照してください。

補助の宛先

RMANが補助セット・ファイルを一時的に格納するために使用する、オプションのディスクの場所。補助の宛先は、RMAN管理の補助インスタンスを使用する場合にのみ使用されます。ユーザー管理の補助インスタンスとともに補助の宛先を指定すると、エラーが発生します。

この章で補助の宛先について言及したすべての箇所で、RMAN管理の補助インスタンスを使用することを想定しています。

リカバリ・セット

リカバリする表領域のデータファイル。

補助セット

リカバリ・セットには含まれていないTSPITRに必要なデータファイル。通常、補助セットには次のものが含まれます。

  • SYSTEM表領域およびSYSAUX表領域。

  • ターゲット・データベース・インスタンスのロールバック・セグメントまたはUNDOセグメントを含むデータファイル。

  • 一時表領域。

  • ソース・データベースの制御ファイル。

  • 指定した時点まで補助インスタンスをリカバリするためにリストアが必要なアーカイブREDOログ。

  • 補助インスタンスのオンラインREDOログ。ソース・データベースのオンラインREDOログとは異なります。RESETLOGSオプションを使用して補助インスタンスをオープンした場合に作成されます。

補助セットには、パラメータ・ファイル、パスワード・ファイルまたは関連するネットワーク・ファイルは含まれません。


RMANのTSPITRのモード

RMANのRECOVER TABLESPACEコマンドを使用して、RMANのTSPITRを起動します。RMANのTSPITRを実行するには、いくつかのオプションがあります。様々な操作モード間の違いは、実行環境に応じて必要とされる自動化とカスタマイズの割合に対応しています。ユーティリティは、次の3つの方法で実行できます。

  • 完全自動化(デフォルト)

    このモードでは、補助インスタンスを含むTSPITRプロセス全体がRMANによって管理されます。リカバリ・セットの表領域、補助の宛先および目標時点を指定し、RMANでその他すべてのTSPITRに関する手順を管理します。

    TSPITRの実行後のリカバリ・セット・ファイルの場所、TSPITRを実行中の補助セット・ファイル、チャネル設定およびチャネル・パラメータまたは補助インスタンスのその他の詳細を特に制御する必要がないかぎり、このデフォルトのモードをお薦めします。詳細は、「完全に自動化されたRMANのTSPITRの実行」を参照してください。

  • ユーザー設定を使用する自動化されたRMAN管理の補助インスタンス

    RMAN管理の補助インスタンスおよび補助の宛先を使用している場合でも、RMANのTSPITRのデフォルト値の一部を変更できます。デフォルトのモードを少し変更したこのモードを使用すると、RMANのTSITRに備えられた組込みの管理機能の一部を利用し、次の項目を指定できます。

    • 補助セットまたはリカバリ・セット・ファイルの場所

    • 初期化パラメータ

    詳細は、「RMAN管理の補助インスタンスを使用したRMANのTSPITRに対するデフォルトの変更」を参照してください。

  • 非自動化TSPITRおよびユーザー管理の補助インスタンス

    RMANのTSPITRのこのモードでは、補助インスタンスのすべての手順、およびTSPITRプロセスの一部の手順をユーザーが設定して管理する必要があります。たとえば、ユーザー管理の補助インスタンスに対して異なる数のチャネルを割り当てたり、チャネル・パラメータを変更する必要があるときなどは、このモードが適切である場合があります。

    詳細は、「独自の補助インスタンスを使用したRMANのTSPITRの実行」を参照してください。

RMAN管理の補助インスタンスを使用したRMANのTSPITRの仕組み

リカバリ・セットの表領域、補助の宛先および目標時点を選択すると、完全に自動化されたRMANのTSPITR(デフォルト)を実行できます。これらの高水準の処理ステップの多くは、RMANのTSPITRの自動化モードの場合にも共通します。

RMANのTSPITRによって、次の処理が自動的に実行されます。

  1. リカバリ・セットの表領域が削除されていない場合は、リカバリ・セットの表領域に対してDBMS_TTS.TRANSPORT_SET_CHECKを実行し、次にビューTRANSPORT_SET_VIOLATIONSが空であることを確認して、リカバリ・セットの表領域が自己完結型であるかどうかを確認します。問合せが行を戻す場合、RMANはTSPITRの処理を停止します。TSPITRを続行するには、表領域の格納違反をすべて解決する必要があります。例21-1に、RMANのTSPITRを起動する前に行う問合せの設定方法および実行方法を示します。

  2. ユーザー管理の補助インスタンスへの接続が指定されているかどうかを確認します。接続が指定されている場合、RMANのTSPITRはその接続を使用します。そうでない場合、RMANのTSPITRは補助インスタンスを作成して起動し、その補助インスタンスに接続します。

  3. リカバリ・セットの表領域が削除されていない場合は、ターゲット・データベース内のリカバリする表領域をオフラインにします。

  4. 目標時点より前の時点のバックアップの制御ファイルを、補助インスタンスにリストアします。

  5. リカバリ・セットおよび補助セットのデータファイルを、補助インスタンスにリストアします。

    次のいずれかの場所で、ファイルがリストアされます。

    • ファイルごとに指定した場所

    • ファイルの元の場所(リカバリ・セット・データファイルの場合)

    • 補助の宛先(RECOVER TABLESPACEAUXILIARY DESTINATION引数およびRMAN管理の補助インスタンスを使用する場合)

  6. 補助インスタンスにリストアしたデータファイルを、指定した時点までリカバリします。

  7. RESETLOGSオプションを使用して補助データベースをオープンします。

  8. 補助インスタンスのリカバリ・セットの表領域を読取り専用に設定します。

  9. トランスポータブル表領域のダンプ・ファイルを作成するためのデータ・ポンプ・ユーティリティを使用して、補助インスタンスからリカバリ・セットの表領域をエクスポートします。

  10. 補助インスタンスを停止します。

  11. リカバリ・セットの表領域をターゲットから削除します。

  12. データ・ポンプ・ユーティリティは、トランスポータブル表領域のダンプ・ファイルを読み取り、リカバリ・セットの表領域をターゲットに組み込みます。

  13. ターゲット・データベースに組み込まれた表領域を読取り/書込みに設定し、それらの表領域をすぐにオフラインにします。

  14. すべての補助セット・ファイルを削除します。

この時点でRMANのTSPITRは完了です。リカバリ・セットのデータファイルは、指定した時点の内容に戻り、ターゲット・データベースに属します。

バックアップを行うことができるよう、リカバリ・セットの表領域はオフラインの状態であるため、オンラインに戻します。この最後の手順は、TSPITRの完了直後にリカバリした表領域をバックアップするという、オラクル社の推奨事項およびベスト・プラクティスに基づいています。

TSPITRの制限、特殊事例および制約

TSPITRでは解決できないデータベースの問題もあります。次に、TSPITRを実行できない場合を示します。

  • アーカイブREDOログ・ファイルがないか、またはデータベースをNOARCHIVELOGモードで実行している場合。

  • TSPITRを使用して、名前が変更された表領域を変更前の時点にリカバリするには、表領域の変更前の名前を使用してリカバリ操作を実行する必要があります。

    この場合、TSPITRが完了すると、ターゲット・データベースには同じ表領域のコピーが2つ含まれます。新しい名前を持つ元の表領域と変更前の名前を持つTSPITRの表領域です。この状態が目的のものでない場合は、変更後の名前を持つ新しい表領域を削除できます。

  • 表領域tbs1の表の制約が表領域tbs2に含まれている場合、tbs2をリカバリせずにtbs1をリカバリすることはできません。

  • 表およびその索引が別の表領域に格納されている場合、TSPITRを実行する前に索引を削除する必要があります。

  • TSPITRを使用して、現行のデフォルト表領域をリカバリすることはできません。

  • TSPITRでは、次のオブジェクトを含む表領域はリカバリできません。

    • 基礎となるオブジェクト(マテリアライズド・ビューなど)またはコンテナ・オブジェクト(パーティション表など)を持つオブジェクト。ただし、基礎となるすべてのオブジェクトまたはコンテナ・オブジェクトがリカバリ・セットに含まれる場合を除きます。さらに、パーティション表のパーティションが別に表領域に保存されている場合は、TSPITRを実行する前に表を削除するか、TSPITRを実行する前にパーティションをすべて同じ表領域に移動する必要があります。

    • UNDOセグメントまたはロールバック・セグメント

    • 複数の受信者を持つOracle8互換アドバンスト・キュー

    • ユーザーSYSが所有するオブジェクト。このタイプのオブジェクトの例としては、PL/SQL、Javaクラス、コールアウト・プログラム、ビュー、シノニム、ユーザー、権限、ディメンション、ディレクトリおよび順序があります。

TSPITRの制約

TSPITRが完了した後、RMANは、リカバリ・セットのデータファイルを目標時点までリカバリします。次の特殊事例に注意してください。

  • TSPITRでは、リカバリしたオブジェクトに関する問合せオプティマイザの統計情報はリカバリされません。TSPITRが完了した後で新しい統計情報を収集する必要があります。

  • 表領域に対してTSPITRを実行し、時刻tに表領域をオンラインにすると、時刻tより前に作成された表領域のバックアップは、現行の制御ファイルでのリカバリには使用できません。現行の制御ファイルを使用して、データベースを時刻t以前の時点までリカバリすることはできません。

  • リカバリ・セットの1つ以上のデータファイルがOracle Managed File(OMF)名を持ち、ターゲット・データベースの互換性がバージョン10.1以下に設定されている場合、RMANはデータファイルを再利用できません。この制限は、データファイルにSET NEWNAMEコマンドが指定されていない場合も当てはまります。リカバリ・セットのデータファイルに対して新しいOMF名が作成されます。このアクションによって、データファイルの領域要件が一時的に倍になります。これは、ターゲットの表領域および元のデータファイルが削除されるまで、DB_CREATE_FILE_DESTにデータファイルのコピーが2つ(元のデータファイルおよびTSPITRによって使用されるデータファイル)存在するためです。

RMANは、トランスポータブル表領域機能を使用して、TSPITRを実行します。したがって、トランスポータブル表領域についてのすべての制限事項は、TSPITRにも当てはまります。


関連項目:

トランスポータブル表領域の制限事項の詳細は、『Oracle Database管理者ガイド』を参照してください。

リカバリ・カタログを使用しない場合の特別な考慮事項

次に注意してください。

  • RMANでのUNDOの履歴レコードは制御ファイルに含まれないため、ロールバック・セグメントまたはUNDOセグメントを含む現行の表領域セットは、リカバリの実行時に存在したセットと同じであるとみなされます。その時点以降に表領域セットが変更された場合、現行のロールバック・セグメントまたはUNDOセグメントは、リカバリの目標時点に存在したセグメントと同じになります。その時点以降にUNDOセグメントが変更された場合は、UNDO TABLESPACEを使用して、表領域がリカバリされた時点のUNDOセグメントを含む正しい表領域セットを表示できます。

  • 必要なバックアップの制御ファイル・レコードがOracle Databaseで再利用されている場合は、TSPITRで時間を過度に戻すと失敗することがあります。(データベースの計画時に、CONTROL_FILE_RECORD_KEEP_TIME初期化パラメータを十分に大きい値に設定して、TSPITRに必要な制御ファイル・レコードが確実に保持されるようにします。)

  • リカバリ・カタログを使用しないときにTSPITRを再実行するには、最初に、TSPITRで使用される表領域をターゲット・データベースから削除する必要があります。

TSPITRの計画および準備

この項では、「TSPITRの制限、特殊事例および制約」を参照済であると想定しています。TSPITRの準備では、次の手順を実行する必要があります。

手順1: TSPITRでの正しい目標時点の選択

TSPITRでの正しい目標時点またはSCNを選択することは、非常に重要です。「TSPITRの制限、特殊事例および制約」で説明されているように、TSPITRの実行後に表領域をオンラインにすると、それより前の時点のバックアップは使用できなくなります。

リカバリ・カタログを使用している場合は、表領域の履歴情報がカタログに格納されているため、TSPITR操作を異なる目標時点まで繰り返し実行できます。ただし、RMANで制御ファイルのみが使用される場合は、制御ファイルに表領域の履歴が存在しないため、表領域を削除した後でのみ繰返しTSPITRを実行できます。この場合、RMANは現行の表領域のセットのみを認識します。TSPITRが実行された表領域の作成時刻は、オンラインになった時点になります。

TSPITRの目標時点を指定するためにデータの過去の状態を調べるには、フラッシュバック問合せ、トランザクション問合せおよびフラッシュバック・バージョン問合せを使用して、データベースに不要な変更が発生した時点を検索します。


関連項目:

フラッシュバック問合せ、フラッシュバック・トランザクション問合せおよびフラッシュバック・バージョン問合せの詳細は、『Oracle Databaseアドバンスト・アプリケーション開発者ガイド』を参照してください。

手順2: リカバリ・セットの決定

最初、リカバリ・セットには、リカバリする表領域のデータファイルが含まれています。ただし、必要な表領域内のオブジェクトが他の表領域内のオブジェクトと関係(制約など)を持つ場合、TSPITRを実行する前にこれらの関係を処理する必要があります。このような関係に対応するには、次のいずれかの方法を選択します。

  • 関連するオブジェクトを含む表領域をリカバリ・セットに追加する。

  • 関係を削除する。

  • TSPITRの実行中、関係を一時解消する。

プライマリ・データベースの依存性の確認および解決

RMANのTSPITRでは、表領域が自己完結型であり、SYSが所有するオブジェクトが表領域内に存在しないことが必要です。DBMS_TTS.TRANSPORT_SET_CHECKプロシージャを使用して、表領域の外部のオブジェクトの場所を特定し、リカバリ・セットの境界にまたがるオブジェクト間の関係を確認できます。TRANSPORT_SET_VIOLATIONSビューが行を戻した場合は、この手順で前述した選択肢に従って、問題を調査して解決する必要があります。


注意:

リカバリ・セットの1つ以上の表領域が削除されていた場合は、RMANのTSPITRで、プロシージャDBMS_TTS.TRANSPORT_SET_CHECKを実行できません。この場合、補助インスタンスのデータ・ポンプ・エクスポートが発生するときにDBMS_TTS.TRANSPORT_SET_CHECKが実行されます。RMANのTSPITRと同様に、エクスポート実行時に自己完結型でない表領域が検出されると、エクスポートは失敗します。

TSPITRの完了後に一時解消または削除した関係を再作成できるように、この手順で実行するすべての処理を記録します。TRANSPORT_SET_VIOLATIONSビューがリカバリ・セットの表領域に対して空の場合にのみ、TSPITRを続行します。

例21-1の問合せでは、表領域toolsおよびusersで構成された最初のリカバリ・セットでのDBMS_TTS.TRANSPORT_SET_CHECKプロシージャの使用方法を示します。依存性を管理するために、トランスポータブル表領域の違反表を問い合せます。すべての依存性が管理されている場合、この問合せは行を戻しません。

例21-1 表領域のサブセットに対するDBMS_TTS.TRANSPORT_SET_CHECKの問合せ

BEGIN
   DBMS_TTS.TRANSPORT_SET_CHECK('USERS,TOOLS', TRUE,TRUE);
END;
/
SELECT * FROM  TRANSPORT_SET_VIOLATIONS;

関連項目:

DBMS_TTS.TRANSPORT_SET_CHECKプロシージャおよび対応するビューの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。

手順3: TSPITRの実行後に消失するオブジェクトの確認および保存

表領域に対してRMANのTSPITRを実行すると、リカバリの目標時点より後に作成されたオブジェクトは消失します。このようなオブジェクトを確認した場合は、TSPITRの実行前にデータ・ポンプ・エクスポート・ユーティリティを使用してそれらをエクスポートし、後でデータ・ポンプ・インポートを使用して再インポートすることで、それらのオブジェクトを保存できます。

TSPITRを実行すると消失するオブジェクトを確認するには、プライマリ・データベースでTS_PITR_OBJECTS_TO_BE_DROPPEDビューを問い合せます。表21-2に、このビューの内容を示します。

表21-2 TS_PITR_OBJECTS_TO_BE_DROPPEDビュー

列名 意味

OWNER

削除されるオブジェクトの所有者

NAME

TSPITRの実行によって消失するオブジェクトの名前

CREATION_TIME

オブジェクトの作成タイムスタンプ

TABLESPACE_NAME

オブジェクトを含む表領域の名前


CREATION_TIMEがTSPITRの目標時点より後であるオブジェクトのビューをフィルタ処理します。たとえば、usersおよびtoolsで構成されるリカバリ・セットを使用し、リカバリの目標時点が2007年11月2日午前7:03:11の場合は、例21-2に示す文を発行します。

例21-2 TS_PITR_OBJECTS_TO_BE_DROPPEDの問合せ

SELECT OWNER, NAME, TABLESPACE_NAME, 
       TO_CHAR(CREATION_TIME, 'YYYY-MM-DD:HH24:MI:SS') 
       FROM TS_PITR_OBJECTS_TO_BE_DROPPED 
WHERE TABLESPACE_NAME IN ('USERS','TOOLS') 
AND CREATION_TIME > TO_DATE('02-NOV-07:07:03:11','YY-MON-DD:HH24:MI:SS')
ORDER BY TABLESPACE_NAME, CREATION_TIME;

TO_CHARおよびTO_DATEファンクションを使用すると、国によって異なる日付書式を使用した場合の問題を回避できます。ユーザーは、ユーザー自身の作業では現地の日付書式を使用できます。

また、表領域のSCNがある場合には、変換ファンクションを使用して、そのSCNに関連付けられているタイムスタンプおよび削除されるオブジェクトを決定できます。たとえば、表領域usersおよびtoolsをリカバリするSCNが1645870である場合、削除されるオブジェクトを確認するには、例21-3に示す文を使用します。

例21-3 SCNおよびTS_PITR_OBJECTS_TO_BE_DROPPEDの使用

SELECT OWNER, NAME, TABLESPACE_NAME,
       TO_CHAR(CREATION_TIME,'YYYY-MM-DD:HH24:MI:SS')
       FROM TS_PITR_OBJECTS_TO_BE_DROPPED
WHERE TABLESPACE_NAME IN ('USERS','TOOLS')
AND CREATION_TIME > TO_DATE(TO_CHAR(SCN_TO_TIMESTAMP(1645870),
'MM/DD/YYYY HH24:MI:SS'),
'MM/DD/YYYY HH24:MI:SS')
ORDER BY TABLESPACE_NAME, CREATION_TIME;

関連項目:

TS_PITR_OBJECTS_TO_BE_DROPPEDビューの詳細は、『Oracle Databaseリファレンス』を参照してください。

完全に自動化されたRMANのTSPITRの実行

デフォルトのモードで、RMANのTSPITRは、ターゲット・データベースでの構成にできるかぎり基づきます。TSPITRの実行中、リカバリ・セットのデータファイルはターゲット・データベースの現行の場所に書き込まれます(OMFファイルの詳細は、「TSPITRの制約」を参照)。バックアップからファイルをリストアする場合は、ターゲット・データベースのチャネル構成と同じ構成が補助インスタンスで使用されます。ただし、補助セットのデータファイルおよび補助インスタンスの他のファイルは、補助の宛先に格納されます。

RMANで補助セットのデータファイルに対して使用する場所を指定するには、AUXILIARY DESTINATIONパラメータを使用します。補助の宛先は、補助セットのデータファイルを格納するための領域が十分にあるディスク上の場所にする必要があります。他の方法を使用して一部またはすべての補助セットのデータファイル名を変更した場合でも、AUXILIARY DESTINATIONパラメータを指定すると、名前が指定されていない補助セットのデータファイルにデフォルトの場所が提供されます。補助セットの一部のデータファイルの名前を省略した場合でも、TSPITRは正常に実行されます。

完全に自動化されたRMANのTSPITRを実行するには、TSPITRを実行するユーザーが、オペレーティング・システム認証を使用してSYSDBAとして接続できる必要があります。

完全に自動化されたRMANのTSPITRを実行する手順

  1. 「TSPITRの制限、特殊事例および制約」の情報を確認します。

  2. 「TSPITRの計画および準備」のタスクを実行します。

  3. ターゲット・データベースでRMANセッションを開始し、必要に応じてリカバリ・カタログに接続します。


    注意:

    自動化されたTSPITRでRMANクライアントを起動する場合は、補助インスタンスに接続しないでください。RMANは、RECOVER TABLESPACEを実行するときに補助インスタンスに接続していると、「独自の補助インスタンスを使用したRMANのTSPITRの実行」で説明されているように、ユーザー独自の補助インスタンスを管理しようとしていると判断し、接続している補助インスタンスをTSPITRに使用します。

  4. TSPITRに必要なすべてのチャネルをターゲット・インスタンスで構成します。

    補助インスタンスでは、TSPITRの実行時に、ターゲット・インスタンスと同じチャネル構成が使用されます。

  5. UNTIL句およびAUXILIARY DESTINATIONパラメータを指定して、RECOVER TABLESPACEコマンドを実行します。

    例21-4では、usersおよびtools表領域をログ順序番号1299まで戻し、補助セット・ファイルを/disk1/auxdestディレクトリに格納します。

    例21-4 2つの表領域に対するTSPITRの実行

    RECOVER TABLESPACE users, tools 
      UNTIL LOGSEQ 1300 THREAD 1
      AUXILIARY DESTINATION '/disk1/auxdest';
    

    この次の手順は、RECOVERコマンドの結果によって異なります。

    • TSPITRの実行中にエラーが発生しなかった場合は、手順6に進みます。

      表領域は、RMANによってオフラインにされ、バックアップからリストアされて補助インスタンスで目標時点までリカバリされた後、ターゲット・データベースに再インポートされます。表領域はオフラインのままです。補助セットのすべてのデータファイルおよび補助インスタンスの他のファイルは、補助の宛先から削除されます。

    • TSPITRの実行中にエラーが発生した場合は、「RMANのTSPITRのトラブルシューティング」に進みます。

  6. TSPITRが正常に完了した場合は、リカバリした表領域をオンラインにする前に、その表領域をバックアップします。

    たとえば、次のコマンドを入力します。

    BACKUP TABLESPACE users, tools;
    

    表領域に対してTSPITRを実行し、TSPITRが正常に完了した場合、表領域の以前のバックアップは使用できなくなります。バックアップを作成せずにリカバリした表領域を使用すると、これらの表領域の使用可能なバックアップが存在しない状態でデータベースを実行することになります。

  7. 表領域をオンラインに戻します。

    たとえば、次のコマンドを入力します。

    RMAN> SQL "ALTER TABLESPACE users, tools ONLINE";
    

    これで、リカバリした表領域を使用できます。

RMAN管理の補助インスタンスを使用したRMANのTSPITRに対するデフォルトの変更

RMANのTSPITRでは、多くの操作で「完全に自動化されたRMANのTSPITRの実行」の手順に従う必要がありますが、次のタスクはカスタマイズできます。

SET NEWNAMEを使用したTSPITRのリカバリ・セットのデータファイル名の変更

リカバリ・セットのデータファイルは、元の場所にリストアおよびリカバリしない方がよい場合があります。SET NEWNAMEコマンドを使用すると、新しい格納場所を指定できます。リカバリ・セットに新しい格納場所を指定する場合は、RMANによって表領域の元のデータファイルが削除されません。

リカバリ・セットの新しいファイル名を指定するには、RUNブロックを作成し、そのブロック内でSET NEWNAMEコマンドを使用します。複数のファイル名が相互に競合しない名前、または現行のデータファイル名と競合しない名前を割り当ててください。例21-5に、基本的な方法を示します。

例21-5 リカバリ・セットのファイル名の変更

RUN
{
   .
   .
   .
   SET NEWNAME FOR DATAFILE 'ORACLE_HOME/oradata/trgt/users01.dbf'
     TO '/newfs/users01.dbf';
   ...other SET NEWNAME commands...
   RECOVER TABLESPACE users, tools UNTIL SEQUENCE 1300 THREAD 1;
}

この例では、RMANは次のように動作します。

  • TSPITRの実行中に、指定した各データファイルを新しい場所にリストアします。

  • 指定した場所にイメージ・コピーが存在し、そのチェックポイントが指定した時点よりも過去の場合には、イメージ・コピーを使用します。この条件が満たされない場合、イメージ・コピーはRMANによって上書きされます。

  • 新しくリカバリしたデータファイルをターゲット制御ファイルに組み込みます。

RMANは、リカバリを実際に実行するまで、SET NEWNAMEで設定された名前とターゲット・データベースの現行のデータファイル名の間の競合を検出しません。RMANが競合を検出すると、TSPITRは失敗し、RMANはエラーをレポートします。有効なデータファイルは上書きされません。

TSPITRの補助セットのデータファイル名の指定

通常は元の場所に格納されるリカバリ・セットのデータファイルとは異なり、補助セットのデータファイルは、ターゲット・データベース内の対応する元のファイルを上書きできません。元の場所とは異なる補助セット・ファイルの格納場所を指定しない場合、TSPITRは失敗します。RMANが元のデータベース内の対応するファイルの上書きを試行し、そのファイルが使用中であることを検出した場合、障害が発生します。

補助セットのデータファイルの格納場所には、TSPITRの補助の宛先を指定する方法が最も簡単です。 ただし、RMANでは、補助セットのデータファイルの場所を制御するための代替方法がサポートされています。表21-3に、それらの方法を優先順位に従って示します。

表21-3 ファイル名を指定する場合の優先順位

順位 方法 参照先

1

SET NEWNAME

「SET NEWNAMEを使用した補助セットのデータファイル名の指定」


2

CONFIGURE AUXNAME

「補助セットのイメージ・コピーでのSET NEWNAMEおよびCONFIGURE AUXNAMEの使用」


3

DB_FILE_NAME_CONVERT

「DB_FILE_NAME_CONVERTを使用した補助セットのデータファイル名の指定」。ターゲット・データベースで補助セットに対してOMF名を使用する場合、DB_FILE_NAME_CONVERTは使用できません。「TSPITRのOMF補助セット・ファイルの名前変更時の考慮事項」を参照してください。

4

RECOVER TABLESPACEAUXILIARY DESTINATION引数を指定(RMAN管理の補助インスタンスを使用する場合)



2つの設定が同時に適用された場合、優先順位の高い設定が優先順位の低い設定より優先されます。たとえば、補助セットの一部のデータファイルの補助名がCONFIGURE AUXNAMEで構成されているときにターゲット・データベースでRECOVER TABLESPACE... AUXILIARY DESTINATIONを実行した場合などです。

前述のいずれかの方法を使用して特定のファイルの格納場所を指定する場合でも、RMAN管理の補助インスタンスを使用する場合には、RECOVER TABLESPACEAUXILIARY DESTINATION引数を指定することをお薦めします。これによって、補助セットのデータファイル名を変更し忘れた場合でも、TSPITRが正常に実行されます。名前を変更していないファイルは、補助の宛先に格納されます。


注意:

『Oracle Databaseバックアップおよびリカバリ・リファレンス』で説明するように、SHOW AUXNAMEコマンドを実行することによって、現行のCONFIGURE AUXNAME設定を表示できます。

TSPITRのOMF補助セット・ファイルの名前変更時の考慮事項

補助セットのデータファイルではターゲットでOracle Managed Files(OMF)を使用でき、自動ストレージ管理(ASM)または非ASMストレージを使用できます。DB_FILE_NAME_CONVERT初期化パラメータが設定されており、OMFファイルがASMストレージまたは非ASMストレージに存在する場合、TSPITRでは異なる方法で名前の変換を実行します。

ASMストレージの使用

ASMストレージを使用するOracle Managed Files(OMF)の場合は、ディスク・グループ名のみが変換されます(+DISK1から+DISK2など)。

補助インスタンスにDB_FILE_NAME_CONVERTおよびLOG_FILE_NAME_CONVERT初期化パラメータを使用して、ディスク・グループの変換を指定できます。RMANは、ASMディスク・グループ名を変換するパターンを使用し、変換されたディスク・グループの有効なOMFファイル名を生成します。次に、コマンドの例を示します。

LOG_FILE_NAME_CONVERT='+onlinelogs','+tmpasm'

DB_FILE_NAME_CONVERTおよびLOG_FILE_NAME_CONVERTパラメータがディスク・グループ名以外の部分文字列を変更する場合は、変換は無視されて、その結果のディスク・グループ名が使用されます。次に、例を示します。

DB_FILE_NAME_CONVERT='+DATAFILE/prod','+DATAFILE/tspitr'

前述のコマンドの結果は無効なASM OMFファイル名となり、変更は無視されます。かわりに、ディスク・グループ名が+DATAFILEである場所にファイルが作成され、次のメッセージが表示されます。

WARNING: DB_FILE_NAME_CONVERT resulted in invalid ASM names; names changed to disk group only 

補助セットのデータファイルがASMディスク・グループに格納される場合には、SET NEWNAMEコマンドを使用して、個々のファイルを補助インスタンスからアクセスできる固有のディスク・グループにリダイレクトできます(また、データベースではディスク・グループ内でファイル名を生成できます)。例21-6に、その方法を示します。

例21-6 ASMファイルのリダイレクト

RUN
{
  SET NEWNAME FOR DATAFILE 1 TO "+DISK2";
  SET NEWNAME FOR DATAFILE 2 TO "+DISK3";
  RECOVER TABLESPACE users, tools 
    UNTIL LOGSEQ 1300 THREAD 1
    AUXILIARY DESTINATION '/disk1/auxdest';
}
非ASMストレージの使用

初期化パラメータDB_FILE_NAME_CONVERTおよびLOG_FILE_NAME_CONVERTは無効なOMFファイル名を生成するため、補助インスタンスのOMF(非ASM)ファイル名の変更には使用できません。ASMストレージを使用しない新しいOMFファイル名の生成を制御する必要がある場合は、次に示すいずれかの代替方法を使用して名前を変更する必要があります。名前を指定するための様々な方法を、推奨される順に示します。

  1. 補助の宛先を使用します(「完全に自動化されたRMANのTSPITRの実行」を参照)。

  2. 補助インスタンスにOMF初期化パラメータを1つ以上使用して、新規OMFファイルの格納場所を指定します。これにより、必要なOMFファイルをすべて管理できるようになります。

    • 補助セットのデータファイルに対しては、DB_CREATE_FILE_DESTを使用します。

    • オンライン・ログがDB_CREATE_FILE_DESTに作成されない場合には、補助インスタンスのオンラインREDOログに対して、DB_CREATE_ONLINE_LOG_DEST_nDB_CREATE_FILE_DESTを使用します。

SET NEWNAMEを使用した補助セットのデータファイル名の指定

補助セットのデータファイルに新しい名前を指定するには、RECOVER TABLESPACEコマンドをRUNブロックに含め、SET NEWNAMEコマンドをRUNブロック内で使用してファイル名を変更します。例21-7に、基本的な方法を示します。

例21-7 TSPITRでの補助セットのOracle Managed Files(OMF)の名前の変更

RUN
{
  SET NEWNAME FOR DATAFILE '?/oradata/prod/system01.dbf'
    TO '/disk1/auxdest/system01.dbf';
  SET NEWNAME FOR DATAFILE '?/oradata/prod/sysaux01.dbf'
    TO '/disk1/auxdest/sysaux01.dbf';
  SET NEWNAME FOR DATAFILE '?/oradata/prod/undotbs01.dbf'
    TO '/disk1/auxdest/undotbs01.dbf';
  RECOVER TABLESPACE users, tools 
    UNTIL LOGSEQ 1300 THREAD 1
    AUXILIARY DESTINATION '/disk1/auxdest';
}

この結果は、RECOVER TABLESPACEの実行時に/disk1/auxdest/system01.dbfが存在するかどうかによって異なります。?/oradata/system01.dbfが指定した場所に存在し、TSPITRのUNTILの時点より前のSCNで作成されている場合、DATAFILECOPYが使用されるためリストア操作は必要ありません。詳細は、「補助セットのイメージ・コピーでのSET NEWNAMEおよびCONFIGURE AUXNAMEの使用」を参照してください。それ以外の場合、RMANは、デフォルトの場所ではなくNEWNAMEで指定した場所に補助セットのデータファイルをリストアします。補助セットのデータファイルが格納される場所を制御する場合は、TSPITRの実行前にSET NEWNAMEで指定した場所にファイルが格納されていないことを確認します。

DB_FILE_NAME_CONVERTを使用した補助セットのデータファイル名の指定

補助セットのすべてのデータファイルには補助の宛先を使用せず、すべてのデータファイルには個々に名前も指定しない場合を想定します。この場合、補助インスタンスで使用される初期化パラメータ・ファイルに、DB_FILE_NAME_CONVERT初期化パラメータを含めることができます。この方法は、次の場合にのみ使用できます。

次のいずれかの状況が該当します。

補助インスタンス内のDB_FILE_NAME_CONVERT初期化パラメータによって、ターゲット・データベース・インスタンス内の対応するファイルの元の名前から補助インスタンスのファイルの名前を導出する方法が指定されます。このパラメータは、文字列のペアのリストで構成されます。ペアの1つ目の文字列を含むファイル名の場合、補助インスタンスの一致するファイル名は、ペアの2つ目の文字列を元のファイル名に置き換えることによって生成されます。

たとえば、ターゲット・インスタンスに次のファイルが含まれているとします。

  • SYSTEM表領域の?/oradata/trgt/system01.dbf

  • SYSAUX表領域の?/oradata/trgt/sysaux01.dbf

  • undotbs表領域の?/oradata/trgt/undotbs01.dbf

補助インスタンス内の対応するファイルを/bigtmp内に配置する場合は、次の行を補助インスタンスのパラメータ・ファイルに追加します。

DB_FILE_NAME_CONVERT=('?/oradata/trgt', '/bigtmp')

対応する補助インスタンス・ファイルの新しいファイル名は、/bigtmp/trgt/system01.dbf/bigtmp/trgt/sysaux01.dbfおよび/bigtmp/trgt/undotbs01.dbfです。

最も重要な点は、補助インスタンスのパラメータ・ファイルにDB_FILE_NAME_CONVERTを含める必要があることです。補助インスタンスを手動で作成した場合は、その補助インスタンスのパラメータ・ファイルにDB_FILE_NAME_CONVERTを追加します。

SET NEWNAMEまたはCONFIGURE AUXNAMEコマンドを使用して、補助セットの個々のデータファイル名を変更することもできます。また、DB_FILE_NAME_CONVERTで指定したパターンと一致しないファイルの名前は変更されません。RMAN管理の補助インスタンスを使用する場合、RECOVER TABLESPACEコマンドのAUXILIARY DESTINATIONパラメータを使用して、補助セットのすべてのデータファイルが格納場所に転送されていることを確認できます。使用した名前の変更方法によって補助インスタンスの新しいファイル名が提供されない場合、TSPITRは失敗します。

TSPITRの実行中の一時ファイルの名前の変更

一時ファイルは、データベースの補助セットの一部とみなされます。補助インスタンスのインスタンス化時に、RMANは、ターゲット・データベースの一時表領域を再作成し、補助データファイル名の通常の規則を使用して名前を生成します。

一時ファイルの名前を変更するには、次のいずれかを使用できます。

  • SET NEWNAME FOR TEMPFILEコマンド

  • 補助インスタンスのDB_FILE_NAME_CONVERT初期化パラメータ。前述の例を参照してください。一時ファイルがASM Oracle Managed Filesの名前でない場合、このパラメータを使用する方法は使用できません。「TSPITRのOMF補助セット・ファイルの名前変更時の考慮事項」を参照してください。

  • RECOVERコマンドのAUXILIARY DESTINATION句(RMAN管理の補助インスタンスを使用する場合)

イメージ・コピーを使用したRMANのTSPITRの高速化

リカバリ・セットおよび補助セットのデータファイルの既存のイメージ・コピーをRMANが使用するようにリダイレクトすることによって、TSPITRのパフォーマンスを向上させることができます。この場合、RMANはバックアップからデータファイルをリストアする必要がありません。次の方法を使用して、データファイルのイメージ・コピーの存在をRMANに認識させることができます。

  • 補助セットのデータファイルのイメージ・コピーを指定してCONFIGURE AUXNAMEコマンドを使用します

  • リカバリ・セットのデータファイルまたは補助セットのデータファイルのイメージ・コピーを指定してSET NEWNAMEコマンドを使用します

通常、指定した場所で適切なイメージ・コピーが使用可能な場合、RMANはそのイメージ・コピーを使用してTSPITRを実行し、データファイル・コピーは、ターゲット制御ファイルのカタログから削除されます。

リカバリ・セットのイメージ・コピーでのSET NEWNAMEの使用

TSPITRの実行中、RMANは、NEWNAMEで指定した場所でデータファイルを検索します。RMANは、目標時点までリカバリ可能な古いデータファイル・チェックポイントSCNを持つデータファイルのイメージ・コピー・バックアップが存在するかどうかを確認します。使用可能なイメージ・コピーが検出されると、RMANは、そのイメージ・コピーをTSPITRで使用します。それ以外の場合、RMANは、NEWNAMEで指定した場所にデータファイルをリストアします。NEWNAMEで指定した場所のすべてのファイルが上書きされます。TSPITRが完了すると、指定したNEWNAMEがターゲット・データベースのデータファイルの名前になります。例21-8に、この方法を示します。

例21-8 SET NEWNAMEの使用

RUN
{
SET NEWNAME FOR DATAFILE 'ORACLE_HOME/oradata/trgt/users01.dbf' 
  TO '/newfs/users1.dbf';
...other RMAN commands, if any...
RECOVER TABLESPACE users, tools UNTIL SEQUENCE 1300 THREAD 1;
}

補助セットのイメージ・コピーでのSET NEWNAMEおよびCONFIGURE AUXNAMEの使用

CONFIGURE AUXNAMEコマンドを使用すると、補助セットのデータファイルのイメージ・コピーの永続的な代替格納場所を設定できます。一方、SET NEWNAMEコマンドを使用すると、RUNコマンド実行中の代替格納場所を設定できます。

SET NEWNAMEまたはCONFIGURE AUXNAMEを使用して、補助セットのデータファイルの新しい格納場所を指定するとします。また、TSPITRで使用可能なSCNを持つイメージ・コピーがその場所に存在するとします。この場合、RMANはイメージ・コピーを使用します。ただし、使用可能なイメージ・コピーがその場所に存在しない場合、RMANは、使用可能なコピーをバックアップからリストアします。(イメージ・コピーは存在するが、SCNがTSPITRの目標時点より後の場合は、リストアしたファイルによってデータファイルが上書きされます。)

すべての補助セット・ファイルと同様に、TSPITRが実行されるとファイルは削除されます。そのファイルが、TSPITRの実行前に作成されたイメージ・コピーであるか、TSPITRの実行中にRMANによってバックアップからリストアされたかに関係なく、このように動作します。

CONFIGURE AUXNAMEは、主にリストア時間を削減してTSPITRを高速化するために使用されます。TSPITRを実行する可能性がある場合は、補助セットのデータファイルのイメージ・コピー・セットをバックアップ・ルーチンで保持し、そのデータファイルのイメージ・コピーをTSPITRを実行する可能性がある最も早い目標時点まで定期的に更新できます。推奨される実行手順のモデルは、次のとおりです。

  1. この計画の作成時に、ファイルに対してAUXNAMEを1回構成します。

  2. BACKUP AS COPY DATAFILE n FORMAT auxnameを定期的に実行して、更新されたイメージ・コピーを保持します。パフォーマンスを向上させるために、増分更新バックアップ方法を使用して、データファイルの全体バックアップを実行せずにイメージ・コピーを最新に保ちます。

  3. TSPITRを実行する必要がある場合は、イメージ・コピーの最新の更新より後の目標時点を指定します。

CONFIGURE AUXNAMEおよびイメージ・コピーを使用したTSPITRの実行の例

TSPITRで使用するデータベース全体のイメージ・コピーを保存するための十分なディスク領域があるとします。TSPITRを実行する必要がある場合の準備として、次の手順を実行します。

  • 次の形式のコマンドを使用して、補助セット内の各データファイルのAUXNAMEを構成します。

    CONFIGURE AUXNAME FOR DATAFILE n TO auxname_n;
    
  • 次の形式のコマンドを使用して、毎週日曜日に補助セットのイメージ・コピーを作成します。

                    BACKUP AS COPY DATAFILE n FORMAT auxname_n
    

    すべてのイメージ・コピーがディスクの同じ場所に格納され、元のデータファイルに類似した名前が付けられている場合は、すべてのデータファイルのバックアップが個々に実行されないようにできます。かわりに、BACKUPコマンドのFORMATまたはDB_FILE_NAME_CONVERTオプションを指定して、BACKUP AS COPY DATABASEを使用できます。たとえば、構成した補助名が場所maindiskauxdiskに変換したものである場合は、次のコマンドを使用します。

    BACKUP AS COPY 
      DATABASE 
      DB_FILE_NAME_CONVERT (maindisk, auxdisk);
    

    注意:

    通常、Oracle Managed Filesの名前は簡単な置換を使用して変換できないため、DB_FILE_NAME_CONVERTを使用して、OMFに格納されたイメージ・コピーの名前を生成することはできません。

これらの手順の後、バックアップから補助セットをリストアせずにTSPITRの準備が完了します。たとえば、2007年11月15日19:00:00に誤ったバッチ・ジョブが開始され、これによって表領域partsの表が不正に更新された場合、次のコマンドを使用して、表領域partsでTSPITRを実行します。

RECOVER TABLESPACE parts UNTIL TIME 'November 15 2007, 19:00:00';

AUXNAMEの場所を構成すると、TSPITRの目標時点より前のSCN以降のデータファイルのコピーを参照するため、補助セットはバックアップからリストアされません。かわりに、データファイルのコピーはリカバリに使用され、リストアのオーバーヘッドが減少します。

また、リカバリ・セットがリストアされないようにすることもできます。表領域のイメージ・コピーを頻繁に作成し、SET NEWNAMEを使用してこれらのコピーの場所を指定する必要があります。この方法を使用すると、TSPITRが正常に完了した後にリカバリ・セットはリストアされず、表領域の場所が変更されます。

TSPITRにおける自動補助インスタンスの初期化パラメータのカスタマイズ

自動補助インスタンスでは、表21-4に示すデフォルトの初期化パラメータのセットが使用されます。また、デフォルトのパラメータを補完する追加の初期化パラメータがオペレーティング・システム依存の場所で検索されます。たとえば、UNIXの場合、この場所は?/rdbms/admin/params_auxinst.oraです。TSPITRの実行時、RMANでは、常に、RMAN自動補助インスタンスの追加のパラメータが検索されます。ファイルが検出されない場合でも、RMANでエラーは発生しません。かわりに、RMANでは、RMAN管理の自動補助インスタンスに対して表21-4のデフォルト・パラメータを使用します。

表21-4 RMAN管理の補助インスタンスに対するデフォルトの初期化パラメータ

初期化パラメータ

DB_NAME

ソース・データベースのDB_NAMEと同じです

COMPATIBLE

ターゲット・データベースのCOMPATIBLE設定と同じです

DB_UNIQUE_NAME

DB_NAMEの値に基づいてRMANで自動生成された一意の値。

DB_BLOCK_SIZE

ターゲット・データベースのDB_BLOCK_SIZEと同じです

DB_CREATE_FILE_DEST

補助の宛先(RMAN管理の補助インスタンスの使用時に、AUXILIARY DESTINATION引数が設定されている場合のみ)。RMANは、この場所の補助セット・ファイルに対してOracle Managed Filesを作成します。

LOG_ARCHIVE_DEST_1

補助の宛先(RMAN管理の補助インスタンスの使用時に、AUXILIARY DESTINATION句が設定されている場合のみ)。リカバリに必要なアーカイブ・ログがこの場所にリストアされます。

SGA_TARGET

280M

DB_FILES

ターゲット・データベースのDB_FILESと同じです。

PROCESSES

50


通常、特に、RMAN管理の補助インスタンスの使用時にRECOVER TABLESPACEコマンドに対してAUXILIARY DESTINATION句を指定する場合には、これらの初期化パラメータの値を変更または追加する必要はありません。表21-4の初期化パラメータの1つを不適切な値で上書きすると、補助インスタンスで問題が発生し、TSPITRが失敗する場合があります。ただし、これらの基本パラメータ以外に、その他のパラメータも必要に応じて追加できます。たとえば、DB_FILE_NAME_CONVERTを使用して補助セットおよびリカバリ・セットのデータファイルの名前を指定できます。

自動補助インスタンスのパラメータを変更または指定するには、次のいずれかの手順に従います。

  • オペレーティング・システム固有のデフォルトの補助パラメータのファイル名に、初期化パラメータを設定します。たとえば、UNIXの場合、ファイル名は?/rdbms/admin/params_auxinst.oraです。

  • 次の手順を実行します。

    1. ファイルに初期化パラメータを設定します。

    2. TSPITRを実行する前に、SET AUXILIARY INSTANCE PARAMETER FILEコマンドを使用して、そのファイルの場所を指定します。

いずれの方法を選択した場合も、指定したパラメータはデフォルトよりも優先され、AUXILIARY DESTINATION句の値が変更されます。

TSPITRにおける補助インスタンスの制御ファイルの格納場所の指定

初期化パラメータ・ファイルを使用すると、補助インスタンスの制御ファイルに対して独自の格納場所を指定できます。CONTROL_FILES初期化パラメータを設定して、制御ファイルの格納場所を指定します。

制御ファイルの格納場所を明示的に指定しない場合、AUXILIARY DESTINATION句を使用すると、RMANは、そのファイルを補助の宛先に格納します。AUXILIARY DESTINATION句を使用しない場合、補助インスタンスの制御ファイルは、オペレーティング・システム固有の場所に格納されます。

格納場所にかかわらず、補助インスタンスの制御ファイルは、TSPITR操作が実行された後に削除されます。制御ファイルはサイズが比較的小さいため、RMANで補助制御ファイルの作成時に問題が発生することはほとんどありません。ただし、制御ファイルを作成するための十分な領域がない場合、TSPITRは失敗します。

TSPITRにおける補助インスタンスのアーカイブ・ログの指定

補助インスタンスで補助セットおよびリカバリ・セットをリストアした後、それらのセットに対してリカバリを実行するには、RMANでアーカイブ・ログをリストアする必要がある場合があります。補助の宛先が使用されている場合、アーカイブ・ログはその場所にリストアされます。補助の宛先および他の初期化パラメータがない場合、アーカイブ・ログはオペレーティング・システム固有の場所にリストアされます。詳細は、ご使用のオペレーティング・システム固有のドキュメントを参照してください。アーカイブ・ログがリストアされる代替の場所を指定するには、LOG_ARCHIVE_DEST_1初期化パラメータを使用できます。

TSPITRにおける補助インスタンスのオンライン・ログの格納場所の指定

補助インスタンスのパラメータ・ファイルでLOG_FILE_NAME_CONVERT初期化パラメータを指定して、ターゲットのオンラインREDOログの名前が正常に変換できる場合は、このパラメータによってオンラインREDOログの格納場所が決定されます。OMFデータファイルに適用される制限と同じ制限が、OMFオンラインREDOログに適用されます。詳細は、「TSPITRのOMF補助セット・ファイルの名前変更時の考慮事項」を参照してください。RMANによって補助インスタンスが管理され、補助の宛先が指定される場合は、補助の宛先にオンラインREDOログが作成されます。

また、DB_CREATE_FILE_DESTを使用するか、DB_CREATE_FILE_DESTおよびDB_CREATE_ONLINE_LOG_1を使用して、補助インスタンスREDOログを作成する場所を指定できます。後者の方法を選択する場合は、DB_CREATE_ONLINE_LOG_1DB_CREATE_FILE_DESTとともに使用する必要があります。

次のいずれかを使用してオンラインREDOログの格納場所を指定しないと、TSPITRでオンラインREDOログは作成されません。

  • LOG_FILE_NAME_CONVERT

  • DB_CREATE_FILE_DEST

  • DB_CREATE_FILE_DESTおよびDB_CREATE_ONLINE_LOG_1

  • AUXILIARY DESTINATION

独自の補助インスタンスを使用したRMANのTSPITRの実行

RMANで補助インスタンスのすべての手順を管理することをお薦めしますが、ユーザー独自の補助インスタンスを作成および管理することもできます。このモードを選択した場合、TSPITRで使用する補助インスタンスの設定、起動、停止およびクリーンアップは、ユーザーが行う必要があります。

ユーザー独自のインスタンスを作成する理由の1つとして、TSPITRで使用されるチャネルを制御できることがあげられます。自動補助インスタンスでは、ターゲット・データベースの構成済チャネルが、補助インスタンスで構成されてリストア操作中に使用されるチャネルの基本チャネルとして使用されます。ターゲット・データベースの設定を変更するために、CONFIGUREコマンドを使用せずに異なるチャネルを設定する必要がある場合があります。この場合、独自の補助インスタンスを使用できます。RECOVERを起動する前に補助インスタンスに接続すると、RUNブロックではALLOCATE AUXILIARY CHANNELコマンドを使用して、特定のチャネルの割当てを行うことができます。

RMANのTSPITRに使用する独自の補助インスタンスの準備

補助インスタンスとしての使用に適したOracleインスタンスを作成するには、次のすべての手順を実行する必要があります。

手順1: 補助インスタンス用のOracleパスワード・ファイルの作成

Oracleパスワード・ファイルを作成およびメンテナンスする方法については、『Oracle Database管理者ガイド』を参照してください。

手順2: 補助インスタンス用の初期化パラメータ・ファイルの作成

テキスト・エディタを使用して、ターゲット・データベース・ホストで補助インスタンスの初期化パラメータ・ファイルを作成します。この例では、パラメータ・ファイルが/tmp/initAux.oraに格納されていると想定します。表21-5に示すパラメータを設定します。


注意:

TSPITRの場合、ターゲット・データベースおよび補助データベースは同一ホスト上にある必要があります。

表21-5 ユーザー管理の補助インスタンスの初期化パラメータ

パラメータ 必須かどうか

DB_NAME

必須

ターゲット・データベースと同じ名前

DB_UNIQUE_NAME

必須

同じOracleホーム内のいずれのデータベースとも異なる値。簡略化するために、_dbnameを指定します。たとえば、ターゲット・データベース名がtrgtの場合は、_trgtを指定します。

REMOTE_LOGIN_PASSWORDFILE

必須

EXCLUSIVE(パスワード・ファイルを使用して補助インスタンスに接続する場合)。それ以外の場合は、NONEに設定します。

COMPATIBLE

必須

ターゲット・データベースのパラメータと同じ値

DB_BLOCK_SIZE

必須

補助インスタンスと同じ値(この初期化パラメータがターゲット・データベースで設定されている場合)。

LOG_FILE_NAME_CONVERT

任意

補助データベースのオンラインREDOログのファイル名を生成するパターン。ターゲット・データベースのオンラインREDOログ名に基づきます。V$LOGFILE.MEMBERを問い合せてターゲット・インスタンスのオンラインREDOログのファイル名を取得し、変換パターンがビューに表示されたファイル名の書式と一致することを確認します。

注意: 末尾にスラッシュ(\または/)を指定するパターンがサポートされていないプラットフォームもあります。

参照: OMFファイル名を使用したLOG_FILE_NAME_CONVERTに対して設定可能な値の制限については、「TSPITRにおける補助インスタンスのオンライン・ログの格納場所の指定」を参照してください。また、「TSPITRのOMF補助セット・ファイルの名前変更時の考慮事項」を参照してください。

DB_FILE_NAME_CONVERT

任意

補助データベースのデータファイルのファイル名を変換するパターン。このパラメータを使用すると、SET NEWNAMEまたはCONFIGURE AUXNAMEで名前を付けなかったファイルのファイル名を生成できます。 V$DATAFILE.NAMEを問い合せてデータファイルのファイル名を取得し、変換パターンがビューに表示されたファイル名の書式と一致することを確認します。

注意: 末尾にスラッシュ(\または/)を指定するパターンがサポートされていないプラットフォームもあります。

参照: 「DB_FILE_NAME_CONVERTを使用した補助セットのデータファイル名の指定」および「TSPITRのOMF補助セット・ファイルの名前変更時の考慮事項」を参照してください。

DB_CREATE_FILE_DEST

任意

すべての補助セット・ファイルの場所を指定するために使用します。

LOG_ARCHIVE_DEST_n

任意

リカバリに必要なアーカイブ・ログの作成場所を指定するために使用します。

DB_CREATE_ONLINE_LOG_n

任意

オンラインREDOログの作成場所を別に指定するためにDB_CREATE_FILE_DESTとともに使用します。

CONTROL_FILES

任意

ターゲット・インスタンス(または他の既存のファイル)の制御ファイル名と競合しないファイル名。

SGA_TARGET

任意(推奨)

280M

STREAMS_POOL_SIZE

任意

必須

SGA_TARGETが設定されている場合

SGA_TARGETが設定されていない場合


必要に応じて、補助インスタンスが使用するメモリー量を指定するパラメータなど、その他のパラメータを設定します。

次に、TSPITRの補助インスタンスで設定可能な初期化パラメータの例を示します。

DB_NAME=trgt
DB_UNIQUE_NAME=_trgt
CONTROL_FILES=/tmp/control01.ctl
DB_FILE_NAME_CONVERT=('/oracle/oradata/trgt/','/tmp/')
LOG_FILE_NAME_CONVERT=('/oracle/oradata/trgt/redo','/tmp/redo')
REMOTE_LOGIN_PASSWORDFILE=exclusive
COMPATIBLE =11.0.0
DB_BLOCK_SIZE=8192

注意:

これらの初期化パラメータを設定した後、ターゲット・データベースの本番ファイルの初期化設定を上書きしていないことを確認してください。

手順3: Oracle Netから補助インスタンスへの接続性の確認

補助インスタンスには、有効なネット・サービス名が必要です。先に進む前に、SQL*Plusを使用して補助インスタンスにSYSDBAで接続できることを確認します。


関連項目:

Oracle Netの詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。

独自の補助インスタンスを使用したTSPITRに使用するRMANコマンドの準備

独自の補助インスタンスを実行すると、TSPITRに必要な一連のコマンドが長くなる場合があります。この状況は、バックアップからのリストアに複雑なチャネル構成を割り当てたり、DB_CREATE_FILE_DESTを使用せずに補助セット・ファイルのファイル名を指定した場合に発生する可能性があります。

TSPITRに使用する一連のコマンドは、RMANのコマンド・ファイルに格納できます。コマンド・ファイルにエラーがないかを慎重に確認します。このコマンド・ファイルをRMANに読み込むには、@コマンド(またはRMANの起動時にCMDFILEコマンドライン引数)を使用します。

次の例では、/tmp/tspitr.rmanというコマンド・ファイルを実行します。

@/tmp/tspitr.rman;

独自の補助インスタンスを使用したTSPITRに使用するチャネルの計画

独自の補助インスタンスを実行すると、デフォルトでターゲット・インスタンスの自動チャネル構成が使用されます。独自のチャネルに異なる構成を割り当てる場合(チャネル数やチャネル・パラメータを変更する場合)は、RUNブロックにALLOCATE AUXILIARY CHANNELコマンドおよびTSPITR用のRECOVER TABLESPACEコマンドを含めることができます。必要に応じてこれらのコマンドの使用を計画し、TSPITRに使用する一連のコマンドに追加します。


関連項目:

TSPITRスクリプトにチャネル割当てを含める方法については、「独自の補助インスタンスを使用したTSPITRの実行例」を参照してください。

独自の補助インスタンスのデータファイル名の計画: SET NEWNAME

SET NEWNAMEコマンドを使用して、補助セット・ファイルの既存のイメージ・コピーを参照してTSPITRのパフォーマンスを向上させるか、またはTSPITRの実行後にリカバリ・セット・ファイルに新しい名前を割り当てることができます。必要に応じてこれらのコマンドの使用を計画し、TSPITRで実行する一連のコマンドに追加します。詳細は、「SET NEWNAMEを使用したTSPITRのリカバリ・セットのデータファイル名の変更」を参照してください。

独自の補助インスタンスを使用したTSPITRの実行

準備およびTSPITRコマンドの計画が完了すると、TSPITRを実行できます。次の手順を実行する必要があります。

手順1: NOMOUNTモードでの補助インスタンスの起動

RMANのTSPITRを開始する前に、SQL*Plusを起動してSYSOPER権限で補助インスタンスに接続します。

補助インスタンスをNOMOUNTモードで起動し、必要に応じてパラメータ・ファイルを指定します。たとえば、次のSQL*Plusコマンドを入力します。

SQL> STARTUP NOMOUNT PFILE='/tmp/initAux.ora'

PFILEを指定する場合は、PFILEのパスに、SQL*Plusを実行するホスト上のクライアント側のパスを指定することに注意してください。

補助インスタンスに制御ファイルがないため、このインスタンスはNOMOUNTモードでのみ起動できます。制御ファイルを作成したり、TSPITR用の補助インスタンスをマウントまたはオープンしないでください。

手順2: ターゲット・インスタンスおよび補助インスタンスへのRMANクライアントの接続

RMANを起動し、ターゲット・データベースおよび手動で作成した補助インスタンスに接続します。

$rman target dba/dbapwd AUXILIARY aux/auxpwd@aux

手順3: RECOVER TABLESPACEコマンドの実行

最も簡単な方法は、RMANプロンプトでRECOVER TABLESPACE ... UNTILコマンドを実行する方法です。

RECOVER TABLESPACE ts1, ts2... UNTIL TIME 'time';

ALLOCATE AUXILIARY CHANNELコマンドまたはSET NEWNAMEコマンドを使用する場合は、RUNコマンドでRECOVER TABLESPACEコマンドの前にこれらのコマンドを指定します。次に、この方法の例を示します。

RUN
{
   ALLOCATE AUXILIARY CHANNEL c1 DEVICE TYPE DISK;
   ALLOCATE AUXILIARY CHANNEL c2 DEVICE TYPE sbt;
  # and so on...
   RECOVER TABLESPACE ts1, ts2 UNTIL TIME 'time';
}

独自の補助インスタンスを使用したTSPITRの実行例

この項では、RECOVER TABLESPACE... UNTIL操作の実行例を示します。この実行例では、RMANのTSPITRの次の機能について説明します。

  • 独自の補助インスタンスの管理

  • ディスクおよびSBTデバイスからのバックアップのリストアに対するチャネルの構成

  • SET NEWNAMEを使用した補助セットのデータファイルのリカバリ可能なイメージ・コピーの使用

  • SET NEWNAMEを使用したリカバリ・セットのデータファイルの新しい名前の指定

TSPITRを独自の補助インスタンスとともに使用する手順

  1. 「RMANのTSPITRに使用する独自の補助インスタンスの準備」で説明するように、補助インスタンスを準備します。補助インスタンスのパスワードをパスワード・ファイルに指定し、補助インスタンス・パラメータ・ファイル/bigtmp/init_tspitr_prod.oraを次のように設定します。

    DB_NAME=PROD
    DB_UNIQUE_NAME=tspitr_PROD
    CONTROL_FILES=/bigtmp/tspitr_cntrl.dbf
    DB_CREATE_FILE_DEST=/bigtmp
    COMPATIBLE=11.0.0
    BLOCK_SIZE=8192
    REMOTE_LOGIN_PASSWORD=exclusive
    
  2. 補助インスタンスのサービス名pitprodを作成し、接続性を確認します。

  3. SQL*Plusを使用して、SYSOPER権限で補助インスタンスに接続します。インスタンスをNOMOUNTモードで起動します。

    SQL> STARTUP NOMOUNT PFILE=/bigtmp/init_tspitr_prod.ora
    
  4. RMANを起動し、ターゲット・データベース・インスタンスおよび補助データベース・インスタンスに接続します。

    rman target / auxiliary sys/syspwd@pitprod 
    
  5. 次のコマンドをRUNブロック内で入力し、TSPITRを設定および実行します。

    RUN 
    {
    # Specify NEWNAME for recovery set data files
      SET NEWNAME FOR TABLESPACE clients
                            TO '?/oradata/prod/rec/%b';
    
    # Specify NEWNAMES for some auxiliary set 
    # data files that have a valid image copy to avoid restores:
      SET NEWNAME FOR DATAFILE '?/oradata/prod/system01.dbf'
                            TO '/backups/prod/system01_monday_noon.dbf';
      SET NEWNAME FOR DATAFILE '?/oradata/prod/system02.dbf'
                            TO '/backups/prod/system02_monday_noon.dbf';
      SET NEWNAME FOR DATAFILE '?/oradata/prod/sysaux01.dbf'
                            TO '/backups/prod/sysaux01_monday_noon.dbf';
      SET NEWNAME FOR DATAFILE '?/oradata/prod/undo01.dbf'
                            TO '/backups/prod/undo01_monday_noon.dbf';
    
    # Specify the types of channels to use
      ALLOCATE AUXILIARY CHANNEL c1 DEVICE TYPE DISK;
      ALLOCATE AUXILIARY CHANNEL t1 DEVICE TYPE sbt;
    
    # Recover the clients tablespace to 24 hours ago:
      RECOVER TABLESPACE clients UNTIL TIME 'sysdate-1';
    }
    

コマンド・ファイルにこの一連のコマンドを格納し、コマンド・ファイルを実行することを検討してください。

TSPITR操作が正常に実行されると、結果は次のようになります。

  • リカバリ・セットのデータファイルが、SET NEWNAMEで指定した名前およびTSPITRの目標時点の内容で、ターゲット・データベースの制御ファイルに登録されます。

  • RMANによって、補助インスタンスの制御ファイル、オンライン・ログ、補助セットのデータファイルなどの補助ファイルが削除されます。

  • 補助インスタンスが停止します。

TSPITR操作に失敗すると、補助セット・ファイルが削除され、補助インスタンスが停止します。リカバリ・セット・ファイルは指定された場所に残り、TSPITRの実行の失敗から未解決の状態となります。

RMANのTSPITRのトラブルシューティング

様々な問題によって、RMANのTSPITRが失敗する可能性があります。この項では、確認および修正が可能な場合について説明します。

  • ファイル名の競合

  • 表領域のセットおよびUNDOセグメントに対するTSPITRの目標時点の不一致または不正

  • RMANを使用せずに作成した補助インスタンスの管理に関する問題

ファイル名の競合のトラブルシューティング

ターゲット・データベース内の既存のファイル、SET NEWNAMEまたはCONFIGURE AUXNAMEコマンドで割り当てられたファイル名と、DB_FILE_NAME_CONVERTパラメータの影響で生成されたファイル名の間で、名前の競合が発生する場合があります。

SET NEWNAMECONFIGURE AUXNAMEおよびDB_FILE_NAME_CONVERTを使用したため、補助セットまたはリカバリ・セット内の複数のファイルに同じ名前が指定されたとします。この場合、RMANは、TSPITRの実行中にエラーをレポートします。この問題を解決するには、これらのパラメータに異なる値を使用します。

UNDOセグメントを含む表領域の識別のトラブルシューティング

TSPITR中は、RMANではTSPITRターゲット時刻にUNDOセグメントがあったのはどの表領域かという情報が必要です。通常、この情報は、リカバリ・カタログを使用している場合はそのリカバリ・カタログにあります。

リカバリ・カタログが存在していない場合、またはリカバリ・カタログで情報が検出されない場合、RMANは、目標時点でUNDOセグメントが含まれていた表領域のセットが、現在UNDOセグメントが含まれている表領域のセットと同じであるとみなします。この仮定が正しくない場合、TSPITRは失敗してエラーが表示されます。この場合は、UNDO TABLESPACE句を使用して、目標時点でのUNDOセグメントを表領域のリストに含めます。

TSPITRの失敗後の手動による補助インスタンスの再起動のトラブルシューティング

独自の補助インスタンスを管理しているときにTSPITRが失敗した場合は、エラーを解決してから、次の方法に従ってTSPITRを再実行してください。

  1. TSPITRが正常に実行されなかった原因を特定して修正します。

  2. 補助インスタンスをNOMOUNTで起動します。

  3. TSPITRを再実行します。