この章では、RMANの表領域のPoint-in-Timeリカバリを実行する方法について説明します。この章の内容は、次のとおりです。
RMANのTSPITRの実行
RMANの表領域のPoint-in-Timeリカバリ(TSPITR)を効果的に使用するには、解決可能な問題の種類、コンポーネント、TSPITRを実行中のRMANの機能、および実行時や実行方法に関する様々な制約および制限について理解することが有用です。この項では、RMANのTSPITRの実行に関する基本的な概念、準備およびモードについて説明します。
Recovery Manager (RMAN)のTSPITRを使用すると、データベースの1つ以上の表領域をデータベースの残りの表領域およびオブジェクトには影響を及ぼさずに、過去の時点まで迅速にリカバリできます。
1つの物理データベースの個別の表領域に複数の論理データベースが存在するときに、ある論理データベースを物理データベースの残りの部分とは異なる時点までリカバリする場合。たとえば、orders
およびpersonnel
表領域に論理データベースを保持している場合などです。不正なバッチ・ジョブまたはデータ操作言語(DML)文を実行すると、1つの表領域にのみ存在するデータが破損します。
表の構造を変更するデータ定義言語(DDL)操作を実行した後に消失したデータをリカバリする場合。フラッシュバック表を使用して、表の切捨て操作などで構造を変更した時点より前に表を巻き戻すことはできません。
PURGE
オプションを使用して表を削除した後、その表をリカバリする場合。
表の論理的な破損からリカバリする場合。
削除された表領域をリカバリする場合。実際に、リカバリ・カタログを使用しない場合でも、RMANでは削除された表領域に対してTSPITRを実行できます。
フラッシュバック・データベースを使用してデータを巻き戻すこともできますが、サブセットのみでなくデータベース全体を巻き戻す必要があります。また、TSPITRとは異なり、フラッシュバック・データベース機能ではフラッシュバック・ログを保持するオーバーヘッドが伴います。データベースのフラッシュバックが可能な期間は、TSPITRの期間より限られています。TSPITRの期間は、最も古いリカバリ可能なバックアップまでの期間となります。
次の各項では、RMANのTSPITRの基本事項について説明します。
表21-1に、RMANのTSPITRで使用される共通のエンティティの一部を定義します。
表21-1 RMANのTSPITRのエンティティ
名前 | 説明 |
---|---|
ターゲット・インスタンス |
目標時点までリカバリする表領域が含まれます。 |
目標時点 |
TSPITRが完了した後の表領域のPoint-in-TimeまたはSCN |
補助インスタンス |
リカバリ・プロセスで使用され、リカバリ作業を実行するデータベース・インスタンス。補助インスタンスには、データベース・インスタンスに関連付けられる他のファイルが含まれます。完全なリストについては、補助セットを参照してください。 |
補助の宛先 |
RMANが補助セット・ファイルを一時的に格納するために使用する、オプションのディスクの場所。補助の宛先は、RMAN管理の補助インスタンスを使用する場合にのみ使用されます。ユーザー管理の補助インスタンスとともに補助の宛先を指定すると、エラーが発生します。 この章で補助の宛先について言及したすべての箇所で、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のTSPITR(デフォルト)を実行できます。これらの高水準の処理ステップの多くは、RMANのTSPITRの自動化モードの場合にも共通します。
RMANのTSPITRによって、次の処理が自動的に実行されます。
リカバリ・セットの表領域が削除されていない場合は、リカバリ・セットの表領域に対してDBMS_TTS.TRANSPORT_SET_CHECK
を実行し、次にビューTRANSPORT_SET_VIOLATIONS
が空であることを確認して、リカバリ・セットの表領域が自己完結型であるかどうかを確認します。問合せが行を戻す場合、RMANはTSPITRの処理を停止します。TSPITRを続行するには、表領域の格納違反をすべて解決する必要があります。例21-1に、RMANのTSPITRを起動する前に行う問合せの設定方法および実行方法を示します。
ユーザー管理の補助インスタンスへの接続が指定されているかどうかを確認します。接続が指定されている場合、RMANのTSPITRはその接続を使用します。そうでない場合、RMANのTSPITRは補助インスタンスを作成して起動し、その補助インスタンスに接続します。
リカバリ・セットの表領域が削除されていない場合は、ターゲット・データベース内のリカバリする表領域をオフラインにします。
目標時点より前の時点のバックアップの制御ファイルを、補助インスタンスにリストアします。
リカバリ・セットおよび補助セットのデータファイルを、補助インスタンスにリストアします。
次のいずれかの場所で、ファイルがリストアされます。
ファイルごとに指定した場所
ファイルの元の場所(リカバリ・セット・データファイルの場合)
補助の宛先(RECOVER TABLESPACE
のAUXILIARY DESTINATION
引数およびRMAN管理の補助インスタンスを使用する場合)
補助インスタンスにリストアしたデータファイルを、指定した時点までリカバリします。
RESETLOGS
オプションを使用して補助データベースをオープンします。
補助インスタンスのリカバリ・セットの表領域を読取り専用に設定します。
トランスポータブル表領域のダンプ・ファイルを作成するためのデータ・ポンプ・ユーティリティを使用して、補助インスタンスからリカバリ・セットの表領域をエクスポートします。
補助インスタンスを停止します。
リカバリ・セットの表領域をターゲットから削除します。
データ・ポンプ・ユーティリティは、トランスポータブル表領域のダンプ・ファイルを読み取り、リカバリ・セットの表領域をターゲットに組み込みます。
ターゲット・データベースに組み込まれた表領域を読取り/書込みに設定し、それらの表領域をすぐにオフラインにします。
すべての補助セット・ファイルを削除します。
この時点でRMANの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が完了した後、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での正しい目標時点またはSCNを選択することは、非常に重要です。「TSPITRの制限、特殊事例および制約」で説明されているように、TSPITRの実行後に表領域をオンラインにすると、それより前の時点のバックアップは使用できなくなります。
リカバリ・カタログを使用している場合は、表領域の履歴情報がカタログに格納されているため、TSPITR操作を異なる目標時点まで繰り返し実行できます。ただし、RMANで制御ファイルのみが使用される場合は、制御ファイルに表領域の履歴が存在しないため、表領域を削除した後でのみ繰返しTSPITRを実行できます。この場合、RMANは現行の表領域のセットのみを認識します。TSPITRが実行された表領域の作成時刻は、オンラインになった時点になります。
TSPITRの目標時点を指定するためにデータの過去の状態を調べるには、フラッシュバック問合せ、トランザクション問合せおよびフラッシュバック・バージョン問合せを使用して、データベースに不要な変更が発生した時点を検索します。
関連項目: フラッシュバック問合せ、フラッシュバック・トランザクション問合せおよびフラッシュバック・バージョン問合せの詳細は、『Oracle Databaseアドバンスト・アプリケーション開発者ガイド』を参照してください。 |
最初、リカバリ・セットには、リカバリする表領域のデータファイルが含まれています。ただし、必要な表領域内のオブジェクトが他の表領域内のオブジェクトと関係(制約など)を持つ場合、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パッケージおよびタイプ・リファレンス』 を参照してください。 |
表領域に対してRMANのTSPITRを実行すると、リカバリの目標時点より後に作成されたオブジェクトは消失します。このようなオブジェクトを確認した場合は、TSPITRの実行前にデータ・ポンプ・エクスポート・ユーティリティを使用してそれらをエクスポートし、後でデータ・ポンプ・インポートを使用して再インポートすることで、それらのオブジェクトを保存できます。
TSPITRを実行すると消失するオブジェクトを確認するには、プライマリ・データベースでTS_PITR_OBJECTS_TO_BE_DROPPED
ビューを問い合せます。表21-2に、このビューの内容を示します。
表21-2 TS_PITR_OBJECTS_TO_BE_DROPPEDビュー
列名 | 意味 |
---|---|
|
削除されるオブジェクトの所有者 |
|
TSPITRの実行によって消失するオブジェクトの名前 |
|
オブジェクトの作成タイムスタンプ |
|
オブジェクトを含む表領域の名前 |
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は、ターゲット・データベースでの構成にできるかぎり基づきます。TSPITRの実行中、リカバリ・セットのデータファイルはターゲット・データベースの現行の場所に書き込まれます(OMFファイルの詳細は、「TSPITRの制約」を参照)。バックアップからファイルをリストアする場合は、ターゲット・データベースのチャネル構成と同じ構成が補助インスタンスで使用されます。ただし、補助セットのデータファイルおよび補助インスタンスの他のファイルは、補助の宛先に格納されます。
RMANで補助セットのデータファイルに対して使用する場所を指定するには、AUXILIARY DESTINATION
パラメータを使用します。補助の宛先は、補助セットのデータファイルを格納するための領域が十分にあるディスク上の場所にする必要があります。他の方法を使用して一部またはすべての補助セットのデータファイル名を変更した場合でも、AUXILIARY DESTINATION
パラメータを指定すると、名前が指定されていない補助セットのデータファイルにデフォルトの場所が提供されます。補助セットの一部のデータファイルの名前を省略した場合でも、TSPITRは正常に実行されます。
完全に自動化されたRMANのTSPITRを実行するには、TSPITRを実行するユーザーが、オペレーティング・システム認証を使用してSYSDBA
として接続できる必要があります。
完全に自動化されたRMANのTSPITRを実行する手順
「TSPITRの制限、特殊事例および制約」の情報を確認します。
「TSPITRの計画および準備」のタスクを実行します。
ターゲット・データベースでRMANセッションを開始し、必要に応じてリカバリ・カタログに接続します。
注意: 自動化されたTSPITRでRMANクライアントを起動する場合は、補助インスタンスに接続しないでください。RMANは、RECOVER TABLESPACE を実行するときに補助インスタンスに接続していると、「独自の補助インスタンスを使用したRMANのTSPITRの実行」で説明されているように、ユーザー独自の補助インスタンスを管理しようとしていると判断し、接続している補助インスタンスをTSPITRに使用します。 |
TSPITRに必要なすべてのチャネルをターゲット・インスタンスで構成します。
補助インスタンスでは、TSPITRの実行時に、ターゲット・インスタンスと同じチャネル構成が使用されます。
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のトラブルシューティング」に進みます。
TSPITRが正常に完了した場合は、リカバリした表領域をオンラインにする前に、その表領域をバックアップします。
たとえば、次のコマンドを入力します。
BACKUP TABLESPACE users, tools;
表領域に対してTSPITRを実行し、TSPITRが正常に完了した場合、表領域の以前のバックアップは使用できなくなります。バックアップを作成せずにリカバリした表領域を使用すると、これらの表領域の使用可能なバックアップが存在しない状態でデータベースを実行することになります。
表領域をオンラインに戻します。
たとえば、次のコマンドを入力します。
RMAN> SQL "ALTER TABLESPACE users, tools ONLINE";
これで、リカバリした表領域を使用できます。
RMANのTSPITRでは、多くの操作で「完全に自動化されたRMANのTSPITRの実行」の手順に従う必要がありますが、次のタスクはカスタマイズできます。
TSPITRの実行後に、リカバリした表領域を構成するデータファイルが元の場所に格納されないように、リカバリ・セットのデータファイルを名前変更または再配置するタスク。これは、表領域が格納されていたディスクを使用できない場合などに行う必要があります。
このタスクについては、「SET NEWNAMEを使用したTSPITRのリカバリ・セットのデータファイル名の変更」を参照してください。
補助セットの一部またはすべてのデータファイルの格納場所を、補助の宛先以外の場所に指定するタスク。このオプションは、すべての補助セット・ファイルを格納するための十分な領域がある場所がディスク上に存在しない場合に選択します。
このタスクについては、「TSPITRの補助セットのデータファイル名の指定」を参照してください。
ファイル名をOracle Managed Files形式に変更するタスク。
このタスクについては、「TSPITRのOMF補助セット・ファイルの名前変更時の考慮事項」を参照してください。
TSPITRの実行中にデータファイルをリストアする必要がないように、補助セットのデータファイルのイメージ・コピー・バックアップを事前に設定するタスク。
このタスクについては、「イメージ・コピーを使用したRMANのTSPITRの高速化」を参照してください。
RMAN管理の補助インスタンスの初期化パラメータをカスタマイズするタスク。
このタスクについては、「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は失敗します。RMANが元のデータベース内の対応するファイルの上書きを試行し、そのファイルが使用中であることを検出した場合、障害が発生します。
補助セットのデータファイルの格納場所には、TSPITRの補助の宛先を指定する方法が最も簡単です。 ただし、RMANでは、補助セットのデータファイルの場所を制御するための代替方法がサポートされています。表21-3に、それらの方法を優先順位に従って示します。
表21-3 ファイル名を指定する場合の優先順位
順位 | 方法 | 参照先 |
---|---|---|
1 |
|
「SET NEWNAMEを使用した補助セットのデータファイル名の指定」 |
2 |
|
「補助セットのイメージ・コピーでのSET NEWNAMEおよびCONFIGURE AUXNAMEの使用」 |
3 |
|
「DB_FILE_NAME_CONVERTを使用した補助セットのデータファイル名の指定」。ターゲット・データベースで補助セットに対してOMF名を使用する場合、 |
4 |
|
2つの設定が同時に適用された場合、優先順位の高い設定が優先順位の低い設定より優先されます。たとえば、補助セットの一部のデータファイルの補助名がCONFIGURE AUXNAME
で構成されているときにターゲット・データベースでRECOVER TABLESPACE... AUXILIARY DESTINATION
を実行した場合などです。
前述のいずれかの方法を使用して特定のファイルの格納場所を指定する場合でも、RMAN管理の補助インスタンスを使用する場合には、RECOVER TABLESPACE
にAUXILIARY DESTINATION
引数を指定することをお薦めします。これによって、補助セットのデータファイル名を変更し忘れた場合でも、TSPITRが正常に実行されます。名前を変更していないファイルは、補助の宛先に格納されます。
注意: 『Oracle Databaseバックアップおよびリカバリ・リファレンス』 で説明するように、SHOW AUXNAME コマンドを実行することによって、現行のCONFIGURE AUXNAME設定を表示できます。 |
補助セットのデータファイルではターゲットでOracle Managed Files(OMF)を使用でき、自動ストレージ管理(ASM)または非ASMストレージを使用できます。DB_FILE_NAME_CONVERT
初期化パラメータが設定されており、OMFファイルがASMストレージまたは非ASMストレージに存在する場合、TSPITRでは異なる方法で名前の変換を実行します。
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に、その方法を示します。
初期化パラメータDB_FILE_NAME_CONVERT
およびLOG_FILE_NAME_CONVERT
は無効なOMFファイル名を生成するため、補助インスタンスのOMF(非ASM)ファイル名の変更には使用できません。ASMストレージを使用しない新しいOMFファイル名の生成を制御する必要がある場合は、次に示すいずれかの代替方法を使用して名前を変更する必要があります。名前を指定するための様々な方法を、推奨される順に示します。
補助の宛先を使用します(「完全に自動化されたRMANのTSPITRの実行」を参照)。
補助インスタンスにOMF初期化パラメータを1つ以上使用して、新規OMFファイルの格納場所を指定します。これにより、必要なOMFファイルをすべて管理できるようになります。
補助セットのデータファイルに対しては、DB_CREATE_FILE_DEST
を使用します。
オンライン・ログがDB_CREATE_FILE_DEST
に作成されない場合には、補助インスタンスのオンラインREDOログに対して、DB_CREATE_ONLINE_LOG_DEST_
nと
DB_CREATE_FILE_DEST
を使用します。
補助セットのデータファイルに新しい名前を指定するには、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
初期化パラメータを含めることができます。この方法は、次の場合にのみ使用できます。
次のいずれかの状況が該当します。
「TSPITRにおける自動補助インスタンスの初期化パラメータのカスタマイズ」で説明するように、自動管理補助インスタンスに対して独自の初期化パラメータ・ファイルを作成する場合
「独自の補助インスタンスを使用したRMANのTSPITRの実行」で説明するように、独自の補助インスタンスを作成する場合
補助インスタンス内の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は失敗します。
一時ファイルは、データベースの補助セットの一部とみなされます。補助インスタンスのインスタンス化時に、RMANは、ターゲット・データベースの一時表領域を再作成し、補助データファイル名の通常の規則を使用して名前を生成します。
一時ファイルの名前を変更するには、次のいずれかを使用できます。
SET
NEWNAME
FOR
TEMPFILE
コマンド
補助インスタンスのDB_FILE_NAME_CONVERT
初期化パラメータ。前述の例を参照してください。一時ファイルがASM Oracle Managed Filesの名前でない場合、このパラメータを使用する方法は使用できません。「TSPITRのOMF補助セット・ファイルの名前変更時の考慮事項」を参照してください。
RECOVER
コマンドのAUXILIARY DESTINATION
句(RMAN管理の補助インスタンスを使用する場合)
リカバリ・セットおよび補助セットのデータファイルの既存のイメージ・コピーをRMANが使用するようにリダイレクトすることによって、TSPITRのパフォーマンスを向上させることができます。この場合、RMANはバックアップからデータファイルをリストアする必要がありません。次の方法を使用して、データファイルのイメージ・コピーの存在をRMANに認識させることができます。
補助セットのデータファイルのイメージ・コピーを指定してCONFIGURE AUXNAME
コマンドを使用します
リカバリ・セットのデータファイルまたは補助セットのデータファイルのイメージ・コピーを指定してSET NEWNAME
コマンドを使用します
通常、指定した場所で適切なイメージ・コピーが使用可能な場合、RMANはそのイメージ・コピーを使用してTSPITRを実行し、データファイル・コピーは、ターゲット制御ファイルのカタログから削除されます。
TSPITRの実行中、RMANは、NEWNAME
で指定した場所でデータファイルを検索します。RMANは、目標時点までリカバリ可能な古いデータファイル・チェックポイントSCNを持つデータファイルのイメージ・コピー・バックアップが存在するかどうかを確認します。使用可能なイメージ・コピーが検出されると、RMANは、そのイメージ・コピーをTSPITRで使用します。それ以外の場合、RMANは、NEWNAME
で指定した場所にデータファイルをリストアします。NEWNAME
で指定した場所のすべてのファイルが上書きされます。TSPITRが完了すると、指定したNEWNAME
がターゲット・データベースのデータファイルの名前になります。例21-8に、この方法を示します。
CONFIGURE AUXNAME
コマンドを使用すると、補助セットのデータファイルのイメージ・コピーの永続的な代替格納場所を設定できます。一方、SET NEWNAME
コマンドを使用すると、RUN
コマンド実行中の代替格納場所を設定できます。
SET NEWNAME
またはCONFIGURE AUXNAME
を使用して、補助セットのデータファイルの新しい格納場所を指定するとします。また、TSPITRで使用可能なSCNを持つイメージ・コピーがその場所に存在するとします。この場合、RMANはイメージ・コピーを使用します。ただし、使用可能なイメージ・コピーがその場所に存在しない場合、RMANは、使用可能なコピーをバックアップからリストアします。(イメージ・コピーは存在するが、SCNがTSPITRの目標時点より後の場合は、リストアしたファイルによってデータファイルが上書きされます。)
すべての補助セット・ファイルと同様に、TSPITRが実行されるとファイルは削除されます。そのファイルが、TSPITRの実行前に作成されたイメージ・コピーであるか、TSPITRの実行中にRMANによってバックアップからリストアされたかに関係なく、このように動作します。
CONFIGURE AUXNAME
は、主にリストア時間を削減してTSPITRを高速化するために使用されます。TSPITRを実行する可能性がある場合は、補助セットのデータファイルのイメージ・コピー・セットをバックアップ・ルーチンで保持し、そのデータファイルのイメージ・コピーをTSPITRを実行する可能性がある最も早い目標時点まで定期的に更新できます。推奨される実行手順のモデルは、次のとおりです。
この計画の作成時に、ファイルに対してAUXNAME
を1回構成します。
BACKUP AS COPY DATAFILE
n
FORMAT
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
を使用できます。たとえば、構成した補助名が場所maindisk
をauxdisk
に変換したものである場合は、次のコマンドを使用します。
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が正常に完了した後にリカバリ・セットはリストアされず、表領域の場所が変更されます。
自動補助インスタンスでは、表21-4に示すデフォルトの初期化パラメータのセットが使用されます。また、デフォルトのパラメータを補完する追加の初期化パラメータがオペレーティング・システム依存の場所で検索されます。たとえば、UNIXの場合、この場所は?/rdbms/admin/params_auxinst.ora
です。TSPITRの実行時、RMANでは、常に、RMAN自動補助インスタンスの追加のパラメータが検索されます。ファイルが検出されない場合でも、RMANでエラーは発生しません。かわりに、RMANでは、RMAN管理の自動補助インスタンスに対して表21-4のデフォルト・パラメータを使用します。
表21-4 RMAN管理の補助インスタンスに対するデフォルトの初期化パラメータ
初期化パラメータ | 値 |
---|---|
|
ソース・データベースの |
|
ターゲット・データベースの |
|
|
|
ターゲット・データベースの |
|
補助の宛先(RMAN管理の補助インスタンスの使用時に、 |
|
補助の宛先(RMAN管理の補助インスタンスの使用時に、 |
|
|
|
ターゲット・データベースの |
|
|
通常、特に、RMAN管理の補助インスタンスの使用時にRECOVER TABLESPACE
コマンドに対してAUXILIARY DESTINATION
句を指定する場合には、これらの初期化パラメータの値を変更または追加する必要はありません。表21-4の初期化パラメータの1つを不適切な値で上書きすると、補助インスタンスで問題が発生し、TSPITRが失敗する場合があります。ただし、これらの基本パラメータ以外に、その他のパラメータも必要に応じて追加できます。たとえば、DB_FILE_NAME_CONVERT
を使用して補助セットおよびリカバリ・セットのデータファイルの名前を指定できます。
自動補助インスタンスのパラメータを変更または指定するには、次のいずれかの手順に従います。
オペレーティング・システム固有のデフォルトの補助パラメータのファイル名に、初期化パラメータを設定します。たとえば、UNIXの場合、ファイル名は?/rdbms/admin/params_auxinst.ora
です。
次の手順を実行します。
ファイルに初期化パラメータを設定します。
TSPITRを実行する前に、SET AUXILIARY INSTANCE PARAMETER FILE
コマンドを使用して、そのファイルの場所を指定します。
いずれの方法を選択した場合も、指定したパラメータはデフォルトよりも優先され、AUXILIARY DESTINATION
句の値が変更されます。
初期化パラメータ・ファイルを使用すると、補助インスタンスの制御ファイルに対して独自の格納場所を指定できます。CONTROL_FILES
初期化パラメータを設定して、制御ファイルの格納場所を指定します。
制御ファイルの格納場所を明示的に指定しない場合、AUXILIARY DESTINATION
句を使用すると、RMANは、そのファイルを補助の宛先に格納します。AUXILIARY DESTINATION
句を使用しない場合、補助インスタンスの制御ファイルは、オペレーティング・システム固有の場所に格納されます。
格納場所にかかわらず、補助インスタンスの制御ファイルは、TSPITR操作が実行された後に削除されます。制御ファイルはサイズが比較的小さいため、RMANで補助制御ファイルの作成時に問題が発生することはほとんどありません。ただし、制御ファイルを作成するための十分な領域がない場合、TSPITRは失敗します。
補助インスタンスで補助セットおよびリカバリ・セットをリストアした後、それらのセットに対してリカバリを実行するには、RMANでアーカイブ・ログをリストアする必要がある場合があります。補助の宛先が使用されている場合、アーカイブ・ログはその場所にリストアされます。補助の宛先および他の初期化パラメータがない場合、アーカイブ・ログはオペレーティング・システム固有の場所にリストアされます。詳細は、ご使用のオペレーティング・システム固有のドキュメントを参照してください。アーカイブ・ログがリストアされる代替の場所を指定するには、LOG_ARCHIVE_DEST_1
初期化パラメータを使用できます。
補助インスタンスのパラメータ・ファイルで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_1
をDB_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で使用する補助インスタンスの設定、起動、停止およびクリーンアップは、ユーザーが行う必要があります。
ユーザー独自のインスタンスを作成する理由の1つとして、TSPITRで使用されるチャネルを制御できることがあげられます。自動補助インスタンスでは、ターゲット・データベースの構成済チャネルが、補助インスタンスで構成されてリストア操作中に使用されるチャネルの基本チャネルとして使用されます。ターゲット・データベースの設定を変更するために、CONFIGURE
コマンドを使用せずに異なるチャネルを設定する必要がある場合があります。この場合、独自の補助インスタンスを使用できます。RECOVER
を起動する前に補助インスタンスに接続すると、RUNブロックではALLOCATE AUXILIARY CHANNEL
コマンドを使用して、特定のチャネルの割当てを行うことができます。
補助インスタンスとしての使用に適したOracleインスタンスを作成するには、次のすべての手順を実行する必要があります。
Oracleパスワード・ファイルを作成およびメンテナンスする方法については、『Oracle Database管理者ガイド』を参照してください。
テキスト・エディタを使用して、ターゲット・データベース・ホストで補助インスタンスの初期化パラメータ・ファイルを作成します。この例では、パラメータ・ファイルが/tmp/initAux.ora
に格納されていると想定します。表21-5に示すパラメータを設定します。
注意: TSPITRの場合、ターゲット・データベースおよび補助データベースは同一ホスト上にある必要があります。 |
表21-5 ユーザー管理の補助インスタンスの初期化パラメータ
パラメータ | 必須かどうか | 値 |
---|---|---|
必須 |
ターゲット・データベースと同じ名前 |
|
必須 |
同じOracleホーム内のいずれのデータベースとも異なる値。簡略化するために、 |
|
|
必須 |
|
|
必須 |
ターゲット・データベースのパラメータと同じ値 |
|
必須 |
補助インスタンスと同じ値(この初期化パラメータがターゲット・データベースで設定されている場合)。 |
任意 |
補助データベースのオンラインREDOログのファイル名を生成するパターン。ターゲット・データベースのオンラインREDOログ名に基づきます。 注意: 末尾にスラッシュ( 参照: OMFファイル名を使用したLOG_FILE_NAME_CONVERTに対して設定可能な値の制限については、 |
|
任意 |
補助データベースのデータファイルのファイル名を変換するパターン。このパラメータを使用すると、 注意: 末尾にスラッシュ( 参照: 「DB_FILE_NAME_CONVERTを使用した補助セットのデータファイル名の指定」および「TSPITRのOMF補助セット・ファイルの名前変更時の考慮事項」を参照してください。 |
|
|
任意 |
すべての補助セット・ファイルの場所を指定するために使用します。 |
|
任意 |
リカバリに必要なアーカイブ・ログの作成場所を指定するために使用します。 |
|
任意 |
オンラインREDOログの作成場所を別に指定するために |
任意 |
ターゲット・インスタンス(または他の既存のファイル)の制御ファイル名と競合しないファイル名。 |
|
|
任意(推奨) |
|
|
任意 必須 |
|
必要に応じて、補助インスタンスが使用するメモリー量を指定するパラメータなど、その他のパラメータを設定します。
次に、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
注意: これらの初期化パラメータを設定した後、ターゲット・データベースの本番ファイルの初期化設定を上書きしていないことを確認してください。 |
補助インスタンスには、有効なネット・サービス名が必要です。先に進む前に、SQL*Plusを使用して補助インスタンスにSYSDBA
で接続できることを確認します。
関連項目: Oracle Netの詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。 |
独自の補助インスタンスを実行すると、TSPITRに必要な一連のコマンドが長くなる場合があります。この状況は、バックアップからのリストアに複雑なチャネル構成を割り当てたり、DB_CREATE_FILE_DEST
を使用せずに補助セット・ファイルのファイル名を指定した場合に発生する可能性があります。
TSPITRに使用する一連のコマンドは、RMANのコマンド・ファイルに格納できます。コマンド・ファイルにエラーがないかを慎重に確認します。このコマンド・ファイルをRMANに読み込むには、@
コマンド(またはRMANの起動時にCMDFILE
コマンドライン引数)を使用します。
次の例では、/tmp/tspitr.rman
というコマンド・ファイルを実行します。
@/tmp/tspitr.rman;
独自の補助インスタンスを実行すると、デフォルトでターゲット・インスタンスの自動チャネル構成が使用されます。独自のチャネルに異なる構成を割り当てる場合(チャネル数やチャネル・パラメータを変更する場合)は、RUN
ブロックにALLOCATE AUXILIARY CHANNEL
コマンドおよびTSPITR用のRECOVER TABLESPACE
コマンドを含めることができます。必要に応じてこれらのコマンドの使用を計画し、TSPITRに使用する一連のコマンドに追加します。
SET NEWNAME
コマンドを使用して、補助セット・ファイルの既存のイメージ・コピーを参照してTSPITRのパフォーマンスを向上させるか、またはTSPITRの実行後にリカバリ・セット・ファイルに新しい名前を割り当てることができます。必要に応じてこれらのコマンドの使用を計画し、TSPITRで実行する一連のコマンドに追加します。詳細は、「SET NEWNAMEを使用したTSPITRのリカバリ・セットのデータファイル名の変更」を参照してください。
準備およびTSPITRコマンドの計画が完了すると、TSPITRを実行できます。次の手順を実行する必要があります。
RMANのTSPITRを開始する前に、SQL*Plusを起動してSYSOPER
権限で補助インスタンスに接続します。
補助インスタンスをNOMOUNT
モードで起動し、必要に応じてパラメータ・ファイルを指定します。たとえば、次のSQL*Plusコマンドを入力します。
SQL> STARTUP NOMOUNT PFILE='/tmp/initAux.ora'
PFILE
を指定する場合は、PFILE
のパスに、SQL*Plusを実行するホスト上のクライアント側のパスを指定することに注意してください。
補助インスタンスに制御ファイルがないため、このインスタンスはNOMOUNT
モードでのみ起動できます。制御ファイルを作成したり、TSPITR用の補助インスタンスをマウントまたはオープンしないでください。
RMANを起動し、ターゲット・データベースおよび手動で作成した補助インスタンスに接続します。
$rman target dba/dbapwd AUXILIARY aux/auxpwd@aux
最も簡単な方法は、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';
}
この項では、RECOVER TABLESPACE... UNTIL
操作の実行例を示します。この実行例では、RMANのTSPITRの次の機能について説明します。
独自の補助インスタンスの管理
ディスクおよびSBTデバイスからのバックアップのリストアに対するチャネルの構成
SET NEWNAME
を使用した補助セットのデータファイルのリカバリ可能なイメージ・コピーの使用
SET NEWNAME
を使用したリカバリ・セットのデータファイルの新しい名前の指定
TSPITRを独自の補助インスタンスとともに使用する手順
「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
補助インスタンスのサービス名pitprod
を作成し、接続性を確認します。
SQL*Plusを使用して、SYSOPER
権限で補助インスタンスに接続します。インスタンスをNOMOUNT
モードで起動します。
SQL> STARTUP NOMOUNT PFILE=/bigtmp/init_tspitr_prod.ora
RMANを起動し、ターゲット・データベース・インスタンスおよび補助データベース・インスタンスに接続します。
rman target / auxiliary sys/syspwd@pitprod
次のコマンドを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が失敗する可能性があります。この項では、確認および修正が可能な場合について説明します。
ファイル名の競合
表領域のセットおよびUNDOセグメントに対するTSPITRの目標時点の不一致または不正
RMANを使用せずに作成した補助インスタンスの管理に関する問題
ターゲット・データベース内の既存のファイル、SET NEWNAME
またはCONFIGURE AUXNAME
コマンドで割り当てられたファイル名と、DB_FILE_NAME_CONVERT
パラメータの影響で生成されたファイル名の間で、名前の競合が発生する場合があります。
SET NEWNAME
、CONFIGURE AUXNAME
およびDB_FILE_NAME_CONVERT
を使用したため、補助セットまたはリカバリ・セット内の複数のファイルに同じ名前が指定されたとします。この場合、RMANは、TSPITRの実行中にエラーをレポートします。この問題を解決するには、これらのパラメータに異なる値を使用します。
TSPITR中は、RMANではTSPITRターゲット時刻にUNDOセグメントがあったのはどの表領域かという情報が必要です。通常、この情報は、リカバリ・カタログを使用している場合はそのリカバリ・カタログにあります。
リカバリ・カタログが存在していない場合、またはリカバリ・カタログで情報が検出されない場合、RMANは、目標時点でUNDOセグメントが含まれていた表領域のセットが、現在UNDOセグメントが含まれている表領域のセットと同じであるとみなします。この仮定が正しくない場合、TSPITRは失敗してエラーが表示されます。この場合は、UNDO
TABLESPACE
句を使用して、目標時点でのUNDOセグメントを表領域のリストに含めます。