21 RMANの表領域のPoint-in-Timeリカバリ(TSPITR)の実行
この章では、RMANの表領域のPoint-in-Timeリカバリを実行する方法について説明します。この章の構成は、次のとおりです。
21.1 RMANのTSPITRの概要
RMANの表領域のPoint-in-Timeリカバリ(TSPITR)を効果的に使用するには、解決可能な問題の種類、コンポーネント、TSPITRを実行中のRMANの機能、および実行時や実行方法に関する様々な制約および制限について理解することが有用です。この項では、RMANのTSPITRの実行に関する基本的な概念、準備およびモードについて説明します。
CDBおよびPDBに対してTSPITRを実行するには、SYSDBA
またはSYSBACKUP
権限を持つユーザーとしてルートに接続する必要があります。1つ以上のPDBのTSPITRを実行するには、ルートのバックアップおよびPDBが含まれるCDBのCDBシードのバックアップがあることが必要です。
21.1.1 RMANのTSPITRの目的
Recovery Manager (RMAN)のTSPITRを使用すると、データベースの1つ以上の表領域をデータベースの残りの表領域およびオブジェクトには影響を及ぼさずに、過去の時点まで迅速にリカバリできます。
RMANのTSPITRは、次の場合に最も有効です。
-
1つの物理データベースの個別の表領域に複数の論理データベースが存在するときに、ある論理データベースを物理データベースの残りの部分とは異なる時点までリカバリする場合。たとえば、
orders
およびpersonnel
表領域に論理データベースを保持している場合などです。不正なバッチ・ジョブまたはデータ操作言語(DML)文を実行すると、1つの表領域にのみ存在するデータが破損します。 -
表の構造を変更するデータ定義言語(DDL)操作を実行した後に消失したデータをリカバリする場合。フラッシュバック表を使用して、表の切捨て操作などで構造を変更した時点より前に表を巻き戻すことはできません。
-
PURGE
オプションを使用して表を削除した後、その表をリカバリする場合。 -
表の論理的な破損からリカバリする場合。
-
削除された表領域をリカバリする場合。実際に、リカバリ・カタログを使用しない場合でも、RMANでは削除された表領域に対してTSPITRを実行できます。
フラッシュバック・データベースを使用してデータを巻き戻すこともできますが、サブセットのみでなくデータベース全体を巻き戻す必要があります。また、TSPITRとは異なり、フラッシュバック・データベース機能ではフラッシュバック・ログを保持するオーバーヘッドが伴います。データベースのフラッシュバックが可能な期間は、TSPITRの期間より限られています。TSPITRの期間は、最も古いリカバリ可能なバックアップまでの期間となります。
21.1.2 RMANのTSPITRの基本的な概念
RMANのTSPITRの概念(使用する用語やモードなど)を理解します。
この項では、次の項目について説明します。
21.1.2.1 RMANのTSPITRの共通の用語
この項では、RMANのTSPITRで使用される共通のエンティティの一部を定義します。
表21-1 RMANのTSPITRのエンティティ
名前 | 説明 |
---|---|
ターゲット・インスタンス |
目標時点までリカバリする表領域が含まれます。 |
目標時点 |
TSPITRが完了した後の表領域のPoint-in-TimeまたはSCN |
補助データベース |
リカバリ・プロセスで使用され、リカバリ作業を実行するデータベース。補助データベースには、データベースに関連付けられる他のファイルが含まれます。完全なリストについては、補助セットを参照してください。 |
補助の宛先 |
RMANが補助セット・ファイルを一時的に格納するために使用する、オプションのディスクの場所。補助の宛先は、RMAN管理の補助データベースを使用する場合にのみ使用されます。ユーザー管理の補助データベースとともに補助の宛先を指定すると、エラーが発生します。 この章で補助の宛先について言及したすべての箇所では、RMAN管理の補助データベースを使用することを想定しています。 |
リカバリ・セット |
リカバリする表領域のデータファイル。 |
補助セット |
リカバリ・セットには含まれていないTSPITRに必要なデータファイル。通常、補助セットには次のものが含まれます。
補助セットには、パラメータ・ファイル、パスワード・ファイルまたは関連するネットワーク・ファイルは含まれません。 |
21.1.2.2 RMANのTSPITRのモード
RMANのTSPITRを実行するには、いくつかのモードがあります。様々な操作モード間の違いは、実行環境に応じて必要とされる自動化とカスタマイズの割合に対応しています。
RMANのRECOVER TABLESPACE
コマンドを使用して、RMANのTSPITRを起動します。ユーティリティは、次の3つの方法で実行できます。
-
完全自動化(デフォルト)
このモードでは、補助データベースを含むTSPITRプロセス全体がRMANによって管理されます。リカバリ・セットの表領域、補助の宛先および目標時点を指定し、RMANでその他すべてのTSPITRに関する手順を管理します。
TSPITRの実行後のリカバリ・セット・ファイルの場所、TSPITRを実行中の補助セット・ファイル、チャネル設定およびチャネル・パラメータまたは補助データベースのその他の詳細を特に制御する必要がないかぎり、このデフォルトのモードをお薦めします。
-
ユーザー設定を使用する自動化されたRMAN管理の補助データベース
RMAN管理の補助データベースおよび補助の宛先を使用している場合でも、RMANのTSPITRのデフォルト値の一部を変更できます。デフォルトのモードを少し変更したこのモードを使用すると、RMANのTSITRに備えられた組込みの管理機能の一部を利用し、次の項目を指定できます。
-
補助セットまたはリカバリ・セット・ファイルの場所
-
初期化パラメータ
-
-
非自動化TSPITRおよびユーザー管理の補助データベース
RMANのTSPITRのこのモードでは、補助データベースのすべての手順、およびTSPITRプロセスの一部の手順をユーザーが設定して管理する必要があります。たとえば、ユーザー管理の補助データベースに対して異なる数のチャネルを割り当てたり、チャネル・パラメータを変更する必要があるときなどは、このモードが適切である場合があります。
21.1.2.3 RMAN管理の補助データベースを使用した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の完了直後にリカバリした表領域をバックアップするという、オラクル社の推奨事項およびベスト・プラクティスに基づいています。
21.2 TSPITRの制限、特殊事例および制約
特定の制限および制限のため、TSPITRでは解決できないデータベースの問題もあります。
次に、TSPITRを実行できない場合を示します。
-
アーカイブREDOログ・ファイルがないか、またはデータベースを
NOARCHIVELOG
モードで実行している場合。 -
TSPITRを使用して、名前が変更された表領域を変更前の時点にリカバリするには、表領域の変更前の名前を使用してリカバリ操作を実行する必要があります。
この場合、TSPITRが完了すると、ターゲット・データベースには同じ表領域のコピーが2つ含まれます。新しい名前を持つ元の表領域と変更前の名前を持つTSPITRの表領域です。この状態が目的のものでない場合は、変更後の名前を持つ新しい表領域を削除できます。
-
表領域
tbs1
の表の制約が表領域tbs2
に含まれている場合、tbs2
をリカバリせずにtbs1
をリカバリすることはできません。 -
表およびその索引が別の表領域に格納されている場合、TSPITRを実行する前に索引を削除する必要があります。
-
TSPITRを使用して、現行のデフォルト表領域をリカバリすることはできません。
-
TSPITRでは、次のオブジェクトを含む表領域はリカバリできません。
-
基礎となるオブジェクト(マテリアライズド・ビューなど)またはコンテナ・オブジェクト(パーティション表など)を持つオブジェクト。ただし、基礎となるすべてのオブジェクトまたはコンテナ・オブジェクトがリカバリ・セットに含まれる場合を除きます。さらに、パーティション表のパーティションが別に表領域に保存されている場合は、TSPITRを実行する前に表を削除するか、TSPITRを実行する前にパーティションをすべて同じ表領域に移動する必要があります。
-
UNDOセグメントまたはロールバック・セグメント
-
複数の受信者を持つOracle8互換アドバンスト・キュー
-
ユーザー
SYS
が所有するオブジェクト。このタイプのオブジェクトの例としては、PL/SQL、Javaクラス、コールアウト・プログラム、ビュー、シノニム、ユーザー、権限、ディメンション、ディレクトリおよび順序があります。
-
21.2.1 TSPITRの制約
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管理者ガイドを参照してください。
21.2.2 リカバリ・カタログを使用しない場合の特別な考慮事項について
TSPITRの実行中にリカバリ・カタログを使用しない場合、特定の予防措置に注意してください。
次のような予防措置があります。
-
RMANでのUNDOの履歴レコードは制御ファイルに含まれないため、ロールバック・セグメントまたはUNDOセグメントを含む現行の表領域セットは、リカバリの実行時に存在したセットと同じであるとみなされます。その時点以降に表領域セットが変更された場合、現行のロールバック・セグメントまたはUNDOセグメントは、リカバリの目標時点に存在したセグメントと同じになります。その時点以降にUNDOセグメントが変更された場合は、
UNDO TABLESPACE
を使用して、表領域がリカバリされた時点のUNDOセグメントを含む正しい表領域セットを表示できます。 -
必要なバックアップの制御ファイル・レコードがOracle Databaseで再利用されている場合は、TSPITRで時間を過度に戻すと失敗することがあります。(データベースの計画時に、
CONTROL_FILE_RECORD_KEEP_TIME
初期化パラメータを十分に大きい値に設定して、TSPITRに必要な制御ファイル・レコードが確実に保持されるようにします。) -
リカバリ・カタログを使用しないときにTSPITRを再実行するには、最初に、TSPITRで使用される表領域をターゲット・データベースから削除する必要があります。
21.3 TSPITRの計画および準備
TSPITRの実行を準備する場合は、特定のステップを完了しておく必要があります。
TSPITRを準備するには:
- 「TSPITRの制限、特殊事例および制約」に示されている考慮事項を読んで理解します。
- TSPITRでの正しい目標時点の選択の説明に従って、表領域をリカバリする必要がある目標時点を選択します。
- リカバリ・セットの決定の説明に従って、リカバリ・セットを決定します。
- TSPITRの実行後に消失するオブジェクトの確認および保存の説明に従って、TSPITR操作が完了した後に消失するオブジェクトを識別および保存します。
21.3.1 TSPITRでの正しい目標時点の選択
TSPITRでの正しい目標時点またはSCNを選択することは、非常に重要です。TSPITRの実行後に表領域をオンラインにすると、それより前の時点のバックアップは使用できなくなることに注意してください。
リカバリ・カタログを使用している場合は、表領域の履歴情報がカタログに格納されているため、TSPITR操作を異なる目標時点まで繰り返し実行できます。ただし、RMANで制御ファイルのみが使用される場合は、制御ファイルに表領域の履歴が存在しないため、表領域を削除した後でのみ繰返しTSPITRを実行できます。この場合、RMANは現行の表領域のセットのみを認識します。TSPITRが実行された表領域の作成時刻は、オンラインになった時点になります。
TSPITRの目標時点を識別するには、データの過去の状態を調査し、次の方法のいずれかを使用して不要な変更が発生した時点を検索します。
-
フラッシュバック問合せ
-
トランザクション問合せ
-
フラッシュバック・バージョン問合せ
関連項目:
-
フラッシュバック問合せ、フラッシュバック・トランザクション問合せおよびフラッシュバック・バージョン問合せの詳細は、『Oracle Database開発ガイド』を参照してください
21.3.2 リカバリ・セットの決定
最初、リカバリ・セットには、リカバリする表領域のデータファイルが含まれています。ただし、必要な表領域内のオブジェクトが他の表領域内のオブジェクトと関係(制約など)を持つ場合、TSPITRを実行する前にこれらの関係を処理する必要があります
このような関係に対応するには、次のいずれかの方法を選択します。
-
関連するオブジェクトを含む表領域をリカバリ・セットに追加する。
-
関係を削除する。
-
TSPITRの実行中、関係を一時解消する。
関連項目:
他の表領域への関係の解決の詳細は、プライマリ・データベースの依存性の確認および解決を参照してください。
21.3.2.1 プライマリ・データベースの依存性の確認および解決
RMANのTSPITRでは、リカバリされる表領域が自己完結型であり、SYS
が所有するオブジェクトが表領域内に存在しないことが必要です。
依存性を確認および解決するには:
-
DBMS_TTS.TRANSPORT_SET_CHECK
プロシージャを使用して、表領域の外部のオブジェクトの場所を特定し、リカバリ・セットの境界にまたがるオブジェクト間の関係を確認します。TRANSPORT_SET_VIOLATIONS
ビューが行を戻した場合は、リカバリ・セットの決定で説明した選択肢に従って、問題を調査して解決する必要があります。 -
TSPITRの完了後に一時解消または削除した関係を再作成できるように、このステップで実行するすべての処理を記録します。
TRANSPORT_SET_VIOLATIONS
ビューがリカバリ・セットの表領域に対して空の場合にのみ、TSPITRを続行します。
ノート:
リカバリ・セットの1つ以上の表領域が削除されていた場合は、RMANのTSPITRで、プロシージャDBMS_TTS.TRANSPORT_SET_CHECK
を実行できません。この場合、補助データベースのデータ・ポンプ・エクスポートが発生するときにDBMS_TTS.TRANSPORT_SET_CHECK
が実行されます。RMANのTSPITRと同様に、エクスポート実行時に自己完結型でない表領域が検出されると、エクスポートは失敗します。
例21-1 表領域のサブセットに対するDBMS_TTS.TRANSPORT_SET_CHECKの問合せ
この例では、表領域tools
およびusers
で構成された最初のリカバリ・セットでの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パッケージおよびタイプ・リファレンスを参照してください
21.3.3 TSPITRの実行後に消失するオブジェクトの確認および保存
表領域に対してRMANのTSPITRを実行すると、リカバリの目標時点より後に作成されたオブジェクトは消失します。このようなオブジェクトを確認した場合は、TSPITRの実行前にデータ・ポンプ・エクスポート・ユーティリティを使用してそれらをエクスポートし、後でデータ・ポンプ・インポートを使用して再インポートすることで、それらのオブジェクトを保存できます。
TSPITRを実行すると消失するオブジェクトを確認するには、プライマリ・データベースでTS_PITR_OBJECTS_TO_BE_DROPPED
ビューを問い合せます。CREATION_TIME
がTSPITRの目標時点より後であるオブジェクトのビューをフィルタ処理します。次の表に、ビューの内容を示します。
表21-2 TS_PITR_OBJECTS_TO_BE_DROPPEDビュー
列名 | 意味 |
---|---|
|
削除されるオブジェクトの所有者 |
|
TSPITRの実行によって消失するオブジェクトの名前 |
|
オブジェクトの作成タイムスタンプ |
|
オブジェクトを含む表領域の名前 |
例21-2 TS_PITR_OBJECTS_TO_BE_DROPPEDの問合せ
この例では、users
とtools
で構成されるリカバリ・セットを使用し、リカバリの目標時点が2017年11月2日午前7:03:11の場合、TSPITRの実行時に保持する必要があるオブジェクトを示します。
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-17:07:03:11','YY-MON-DD:HH24:MI:SS') ORDER BY TABLESPACE_NAME, CREATION_TIME;
TO_CHAR
およびTO_DATE
ファンクションを使用すると、国によって異なる日付書式を使用した場合の問題を回避できます。ユーザーは、ユーザー自身の作業では現地の日付書式を使用できます。
例21-3 SCNおよびTS_PITR_OBJECTS_TO_BE_DROPPEDの使用
表領域USERS
およびTOOLS
をリカバリするSCNが1645870である場合、この例では削除されるオブジェクトを確認します。変換関数を使用して、SCNに関連付けられているタイムスタンプおよび削除されるオブジェクトを確認します。
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リファレンスを参照してください
21.4 完全に自動化されたRMANのTSPITRの実行
デフォルトのモードで、RMANのTSPITRは、ターゲット・データベースでの構成にできるかぎり基づきます。
TSPITRの実行中、リカバリ・セットのデータファイルはターゲット・データベースの現行の場所に書き込まれます(OMFファイルの詳細は、「TSPITRの制約」を参照)。バックアップからファイルをリストアする場合は、ターゲット・データベースのチャネル構成と同じ構成が補助データベースで使用されます。ただし、補助セットのデータファイルおよび補助データベースの他のファイルは、補助の宛先に格納されます。
RMANで補助セットのデータファイルに対して使用する場所を指定するには、AUXILIARY DESTINATION
パラメータを使用します。補助の宛先は、補助セットのデータファイルを格納するための領域が十分にあるディスク上の場所にする必要があります。他の方法を使用して一部またはすべての補助セットのデータファイル名を変更した場合でも、AUXILIARY DESTINATION
パラメータを指定すると、名前が指定されていない補助セットのデータファイルにデフォルトの場所が提供されます。補助セットの一部のデータファイルに名前を指定しなかった場合でも、TSPITRは正常に実行されます。
完全に自動化されたRMANのTSPITRを実行するには、TSPITRを実行するユーザーが、オペレーティング・システム認証を使用してSYSBACKUP
またはSYSDBA
システム権限で接続できる必要があります。
完全に自動化されたRMANのTSPITRを実行するには:
21.5 RMAN管理の補助データベースを使用したRMANのTSPITRに対するデフォルトの変更
RMANのTSPITRでは、多くの操作で完全に自動化されたRMANのTSPITRの実行の手順に従う必要がありますが、一部のタスクはカスタマイズできます。
次のようなものがあります:
-
TSPITRの実行後に、リカバリした表領域を構成するデータファイルが元の場所に格納されないように、リカバリ・セットのデータファイルを名前変更または再配置するタスク。これは、表領域が格納されていたディスクを使用できない場合などに行う必要があります。
-
補助セットの一部またはすべてのデータファイルの格納場所を、補助の宛先以外の場所に指定するタスク。このオプションは、すべての補助セット・ファイルを格納するための十分な領域がある場所がディスク上に存在しない場合に選択します。
-
ファイル名をOracle Managed Files形式に変更するタスク。
-
TSPITRの実行中にデータファイルをリストアする必要がないように、補助セットのデータファイルのイメージ・コピー・バックアップを事前に設定するタスク。
-
RMAN管理の補助データベースの初期化パラメータをカスタマイズするタスク。
21.5.1 SET NEWNAMEを使用したTSPITRのリカバリ・セットのデータファイル名の変更
リカバリ・セットのデータファイルは、元の場所にリストアおよびリカバリしない方がよい場合があります。SET NEWNAME
コマンドを使用すると、新しい格納場所を指定できます。リカバリ・セットに新しい格納場所を指定する場合は、RMANによって表領域の元のデータファイルが削除されません。
リカバリ・セットの新しいファイル名を指定するには、RUN
ブロックを作成し、そのブロック内でSET NEWNAME
コマンドを使用します。複数のファイル名が相互に競合しない名前、または現行のデータファイル名と競合しない名前を割り当ててください。
例21-4 リカバリ・セットのファイル名の変更
この例では、リカバリ・セットのデータファイルの新しい名前を指定します。この例では、RMANは次のように動作します。
-
TSPITRの実行中に、指定した各データファイルを新しい場所にリストアします。
-
指定した場所にイメージ・コピーが存在し、そのチェックポイントが指定した時点よりも過去の場合には、イメージ・コピーを使用します。この条件が満たされない場合、イメージ・コピーはRMANによって上書きされます。
-
新しくリカバリしたデータファイルをターゲット制御ファイルに組み込みます。
RMANは、リカバリを実際に実行するまで、SET NEWNAME
で設定された名前とターゲット・データベースの現行のデータファイル名の間の競合を検出しません。RMANが競合を検出すると、TSPITRは失敗し、RMANはエラーをレポートします。有効なデータファイルは上書きされません。
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; }
21.5.2 TSPITRの補助セットのデータファイル名の指定
通常は元の場所に格納されるリカバリ・セットのデータファイルとは異なり、補助セットのデータファイルは、ターゲット・データベース内の対応する元のファイルを上書きできません。元の場所とは異なる補助セット・ファイルの格納場所を指定しない場合、TSPITRは失敗します。RMANが元のデータベース内の対応するファイルの上書きを試行し、そのファイルが使用中であることを検出した場合、障害が発生します。
補助セットのデータファイルの格納場所には、TSPITRの補助の宛先を指定する方法が最も簡単です。 ただし、RMANでは、補助セットのデータファイルの場所を制御するための代替方法がサポートされています。表21-3に、それらの方法を優先順位に従って示します。
表21-3 ファイル名を指定する場合の優先順位
順序 | 方法 | 項目 |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
「TSPITRの実行中の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
設定を表示できます。
21.5.2.1 TSPITRのOMF補助セット・ファイルの名前変更時の考慮事項
補助セットのデータファイルではターゲットでOracle Managed Files(OMF)を使用でき、自動ストレージ管理(ASM)または非ASMストレージを使用できます。DB_FILE_NAME_CONVERT
初期化パラメータが設定されており、OMFファイルがASMストレージまたは非ASMストレージに存在する場合、TSPITRでは異なる方法で名前の変換を実行します。
21.5.2.1.1 ASMストレージの使用
補助データベースにDB_FILE_NAME_CONVERT
およびLOG_FILE_NAME_CONVERT
初期化パラメータを使用して、ディスク・グループの変換を指定できます。RMANは、ASMディスク・グループ名を変換するパターンを使用し、変換されたディスク・グループの有効なOMFファイル名を生成します。
ASMストレージを使用するOracle Managed Files(OMF)の場合は、ディスク・グループ名のみが変換されます(+DISK1から+DISK2など)。
次のコマンドは、ログ・ファイルの変換を指定します。
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-5 ASMファイルのリダイレクト
この例では、SET NEWNAME
コマンドを使用して個々のファイルを特定のディスク・グループにリダイレクトする方法を示します。
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'; }
21.5.2.2 TSPITRの実行中のSET NEWNAMEを使用した補助セットのデータファイル名の指定
補助セットのデータファイルに新しい名前を指定するには、RECOVER TABLESPACE
コマンドをRUN
ブロックに含め、SET NEWNAME
コマンドをRUN
ブロック内で使用してファイル名を変更します。
例21-6 TSPITRでの補助セットのOracle Managed Files(OMF)の名前の変更
この例は、SET NEWNAMEを使用してファイルの名前を変更する基本的な方法を示しています。この結果は、RECOVER TABLESPACE
の実行時に/disk1/auxdest/system01.dbf
が存在するかどうかによって異なります。?/oradata/system01.dbf
が指定した場所に存在し、TSPITRのUNTIL
の時点より前のSCNで作成されている場合、DATAFILECOPY
が使用されるためリストア操作は必要ありません。それ以外の場合、RMANは、デフォルトの場所ではなくNEWNAME
で指定した場所に補助セットのデータファイルをリストアします。補助セットのデータファイルが格納される場所を制御する場合は、TSPITRの実行前にSET NEWNAME
で指定した場所にファイルが格納されていないことを確認します。
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'; }
21.5.2.3 TSPITRの実行中のDB_FILE_NAME_CONVERTを使用した補助セットのデータファイル名の指定
補助セットのすべてのデータファイルに1つの補助の宛先を使用せず、かつ、各ファイルを個別に指定しない場合は、補助データベースで使用される初期化パラメータ・ファイルに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は失敗します。
21.5.2.3.1 TSPITRの実行中の一時ファイルの名前の変更
一時ファイルは、データベースの補助セットの一部とみなされます。補助データベースのインスタンス化時に、RMANは、ターゲット・データベースの一時表領域を再作成し、補助データファイル名の通常の規則を使用して名前を生成します。
一時ファイルの名前を変更するには、次のいずれかを使用できます。
-
SET NEWNAME FOR TEMPFILE
コマンド -
補助データベースの
DB_FILE_NAME_CONVERT
初期化パラメータ。一時ファイルがASM Oracle Managed Filesの名前でない場合、このパラメータを使用する方法は使用できません。 -
RECOVER
コマンドのAUXILIARY DESTINATION
句(RMAN管理の補助データベースを使用する場合)
21.5.3 イメージ・コピーを使用したRMANのTSPITRの高速化
リカバリ・セットおよび補助セットのデータファイルの既存のイメージ・コピーをRMANが使用するようにリダイレクトすることによって、TSPITRのパフォーマンスを向上させることができます。この場合、RMANはバックアップからデータファイルをリストアする必要がありません。
通常、指定した場所で適切なイメージ・コピーが使用可能な場合、RMANはそのイメージ・コピーを使用してTSPITRを実行し、データファイル・コピーは、ターゲット制御ファイルのカタログから削除されます。
次の方法を使用して、データファイルのイメージ・コピーの存在をRMANに認識させることができます。
-
補助セットのデータファイルのイメージ・コピーを指定して
CONFIGURE AUXNAME
コマンドを使用します -
リカバリ・セットのデータファイルまたは補助セットのデータファイルのイメージ・コピーを指定して
SET NEWNAME
コマンドを使用します
21.5.3.1 リカバリ・セットのイメージ・コピーでのSET NEWNAMEの使用
SET NEWNAME
コマンドを使用すると、イメージ・コピーを使用してTSPITRを実行するときにイメージ・コピーの場所を指定できます。
TSPITRの実行中、RMANは、NEWNAME
で指定した場所でデータファイルを検索します。RMANは、目標時点までリカバリ可能な古いデータファイル・チェックポイントSCNを持つデータファイルのイメージ・コピー・バックアップが存在するかどうかを確認します。使用可能なイメージ・コピーが検出されると、RMANは、そのイメージ・コピーをTSPITRで使用します。それ以外の場合、RMANは、NEWNAME
で指定した場所にデータファイルをリストアします。NEWNAME
で指定した場所のすべてのファイルが上書きされます。TSPITRの完了後に、指定したNEWNAME
がターゲット・データベースのデータファイルの名前になります。
例21-7 SET NEWNAMEの使用
この例では、リカバリ・セット・ファイルのイメージ・コピーを使用してTSPITRを実行します。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; }
21.5.3.2 補助セットのイメージ・コピーでの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を実行する可能性がある最も早い目標時点まで定期的に更新できます。推奨される実行手順のモデルは、次のとおりです。
- この計画の作成時に、ファイルに対して
AUXNAME
を1回構成します。 BACKUP AS COPY DATAFILE n FORMAT auxname
を定期的に実行して、更新されたイメージ・コピーを保持します。パフォーマンスを向上させるために、増分更新バックアップ方法を使用して、データファイルの全体バックアップを実行せずにイメージ・コピーを最新に保ちます。- TSPITRを実行する必要がある場合は、イメージ・コピーの最新の更新より後の目標時点を指定します。
21.5.3.3 CONFIGURE AUXNAMEおよびイメージ・コピーを使用したTSPITRの実行の例
この手順では、イメージ・コピーを使用してTSPITRを実行するときにCONFIGURE AUXNAME
を使用します。
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の準備が完了します。たとえば、2013年11月15日19:00:00に誤ったバッチ・ジョブが開始され、これによって表領域parts
の表が不正に更新された場合、次のコマンドを使用して、表領域parts
でTSPITRを実行します。
RECOVER TABLESPACE parts UNTIL TIME 'November 15 2013, 19:00:00';
AUXNAME
の場所を構成すると、TSPITRの目標時点より前のSCN以降のデータファイルのコピーを参照するため、補助セットはバックアップからリストアされません。かわりに、データファイルのコピーはリカバリに使用され、リストアのオーバーヘッドが減少します。
また、リカバリ・セットがリストアされないようにすることもできます。表領域のイメージ・コピーを頻繁に作成し、SET NEWNAME
を使用してこれらのコピーの場所を指定する必要があります。この方法を使用すると、TSPITRが正常に完了した後にリカバリ・セットはリストアされず、表領域の場所が変更されます。
21.5.4 TSPITRにおける自動補助データベースの初期化パラメータのカスタマイズ
自動補助データベースでは、デフォルトの初期化パラメータのセットが使用されます。必要に応じて他のパラメータを追加できます。
自動補助データベースでは、デフォルトのパラメータを補完する追加の初期化パラメータがオペレーティング・システム依存の場所で検索されます。たとえば、UNIXの場合、この場所は?/rdbms/admin/params_auxinst.ora
です。TSPITRの実行時、RMANでは、常に、RMAN自動補助データベースの追加のパラメータが検索されます。ファイルが検出されない場合でも、RMANでエラーは発生しません。かわりに、RMANでは、RMAN管理の自動補助データベースに対して次の表に示すデフォルト・パラメータを使用します。
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
句の値が変更されます。
この項では、次の項目について説明します。
21.5.4.1 TSPITRにおける補助データベースの制御ファイルの格納場所の指定
初期化パラメータ・ファイルを使用する場合、CONTROL_FILES
初期化パラメータを使用して補助データベースの制御ファイルに対して独自の格納場所を指定できます
制御ファイルの格納場所を明示的に指定しない場合、AUXILIARY DESTINATION
句を使用すると、RMANは、そのファイルを補助格納場所に格納します。AUXILIARY DESTINATION
句を使用しない場合、補助データベースの制御ファイルは、オペレーティング・システム固有の場所に格納されます。
格納場所にかかわらず、補助データベースの制御ファイルは、TSPITR操作の最後に削除されます。制御ファイルはサイズが比較的小さいため、補助制御ファイルの作成時に問題が発生することはほとんどありません。ただし、制御ファイルを作成するための十分な領域がない場合、TSPITRは失敗します。
21.5.4.2 TSPITRにおける補助データベースのアーカイブ・ログの指定
補助データベースで補助セットおよびリカバリ・セットをリストアした後、それらのセットに対してリカバリを実行するには、RMANでアーカイブ・ログをリストアする必要がある場合があります。補助の宛先が使用されている場合、アーカイブ・ログはその場所にリストアされます。
補助の宛先および他の初期化パラメータがない場合、アーカイブ・ログはオペレーティング・システム固有の場所にリストアされます。詳細は、ご使用のオペレーティング・システム固有のドキュメントを参照してください。アーカイブ・ログがリストアされる代替の場所を指定するには、LOG_ARCHIVE_DEST_1
初期化パラメータを使用できます。
21.5.4.3 TSPITRにおける補助データベースのオンライン・ログの格納場所の指定
補助データベースのパラメータ・ファイルでLOG_FILE_NAME_CONVERT
初期化パラメータを指定して、ターゲットのオンラインREDOログの名前が正常に変換される場合は、このパラメータによってオンラインREDOログの格納場所が決定されます。
TSPITRのOMF補助セット・ファイルの名前変更時の考慮事項で説明されているように、OMFデータ・ファイルに適用される制限事項は、OMFオンラインREDOログに適用されます。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
21.6 独自の補助データベースを使用したRMANのTSPITRの実行
RMANで補助データベースのすべての手順を管理することをお薦めしますが、ユーザー独自の補助データベースを作成および管理する必要がある場合もあります。このモードを選択した場合、TSPITRで使用する補助データベースの設定、起動、停止およびクリーンアップは、ユーザーが行う必要があります。
ユーザー独自のインスタンスを作成する理由の1つとして、TSPITRで使用されるチャネルを制御できることがあげられます。自動補助データベースでは、ターゲット・データベースの構成済チャネルが、補助データベースで構成され、リストア操作中に使用されるチャネルの基準として使用されます。ターゲット・データベースの設定を変更するために、CONFIGURE
コマンドを使用せずに異なるチャネルを設定する必要がある場合があります。この場合、独自の補助データベースを使用できます。RECOVER
を起動する前に補助データベースに接続すると、RUNブロックではALLOCATE AUXILIARY CHANNEL
コマンドを使用して、特定のチャネルの割当てを行うことができます。
この項では、次の項目について説明します。
21.6.1 RMANのTSPITRに使用する独自の補助データベースの準備
補助データベースとしての使用に適したOracleインスタンスを作成するには、一連のステップを実行する必要があります。
次のステップがあります。
21.6.1.1 ステップ1: 補助データベース用のOracleパスワード・ファイルの作成
補助データベースのパスワード・ファイルを作成するには、複数の方法があります。
関連項目:
Oracleパスワード・ファイルの作成および保守方法を学習するには、Oracle Database管理者ガイドを参照してください。
21.6.1.2 ステップ2: 補助データベース用の初期化パラメータ・ファイルの作成
テキスト・エディタを使用して、ターゲット・データベース・ホストで補助データベースの初期化パラメータ・ファイルを作成します。
ノート:
TSPITRの場合、ターゲット・データベースおよび補助データベースは同一ホスト上にある必要があります。
この例では、パラメータ・ファイルが/tmp/initAux.ora
に格納されていると想定します。次の表に示すパラメータを設定します。
表21-5 ユーザー管理の補助データベースの初期化パラメータ
初期化パラメータ | 必須かどうか | 値 |
---|---|---|
|
必須 |
ターゲット・データベースと同じ名前 |
|
必須 |
同じOracleホーム内のいずれのデータベースとも異なる値。簡略化するために、 |
|
必須 |
|
|
必須 |
ターゲット・データベースのパラメータと同じ値 |
|
必須 |
この初期化パラメータがターゲット・データベースで設定されている場合、補助インスタンスと同じ値に設定する必要があります。 |
|
任意 |
補助データベースのオンラインREDOログのファイル名を生成するパターン。ターゲット・データベースのオンラインREDOログ名に基づきます。 ノート: 末尾にスラッシュ( 参照: OMFファイル名を使用した |
|
任意 |
補助データベースのデータファイルのファイル名を変換するパターン。このパラメータを使用すると、 ノート: 末尾にスラッシュ( 参照: 「TSPITRの実行中のDB_FILE_NAME_CONVERTを使用した補助セットのデータファイル名の指定」および「TSPITRのOMF補助セット・ファイルの名前変更時の考慮事項」を参照してください。 |
|
任意 |
すべての補助セット・ファイルの場所を識別します。 |
|
任意 |
リカバリに必要なアーカイブ・ログの作成場所を識別します。 |
|
任意 |
|
|
任意 |
ターゲット・インスタンス(または他の既存のファイル)の制御ファイル名と競合しないファイル名。 |
|
任意(推奨) |
|
|
任意 必須 |
|
必要に応じて、補助データベースが使用するメモリー量を指定するパラメータなど、その他のパラメータを設定します。
次に、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
ノート:
これらの初期化パラメータを設定した後、ターゲット・データベースの本番ファイルの初期化設定を上書きしていないことを確認してください。
21.6.1.3 ステップ3: Oracle Netから補助データベースへの接続性の確認
補助データベースには、有効なネット・サービス名が必要です。先に進む前に、SQL*Plusを使用して補助データベースにSYSBACKUP
またはSYSDBA
で接続できることを確認します。
関連項目:
Oracle Netの詳細は、Oracle Database管理者ガイドを参照してください
21.6.2 独自の補助データベースを使用したTSPITRに使用するRMANコマンドの準備
独自の補助インスタンスを使用してTSPITRを実行する場合は、特定のガイドラインに注意してください。
独自の補助データベースを実行すると、TSPITRに必要な一連のコマンドが長くなる場合があります。この状況は、バックアップからのリストアに複雑なチャネル構成を割り当てたり、DB_CREATE_FILE_DEST
を使用せずに補助セット・ファイルのファイル名を指定した場合に発生する可能性があります。
TSPITRに使用する一連のコマンドは、RMANのコマンド・ファイルに格納できます。コマンド・ファイルにエラーがないかを慎重に確認します。このコマンド・ファイルをRMANに読み込むには、@
コマンド(またはRMANの起動時にCMDFILE
コマンドライン引数)を使用します。
次の例では、/tmp/tspitr.rman
というコマンド・ファイルを実行します。
@/tmp/tspitr.rman;
関連項目:
21.6.2.1 独自の補助データベースを使用したTSPITRに使用するチャネルの計画
TSPITR用の独自の補助データベースを使用する場合のチャネルのデフォルト動作は、上書きできます。
独自の補助データベースを実行すると、デフォルトでターゲット・データベースの自動チャネル構成が使用されます。独自のチャネルに異なる構成を割り当てる場合(チャネル数やチャネル・パラメータを変更する場合)は、RUN
ブロックにALLOCATE AUXILIARY CHANNEL
コマンドおよびTSPITR用のRECOVER TABLESPACE
コマンドを含めることができます。必要に応じてこれらのコマンドの使用を計画し、TSPITRで実行する一連のコマンドに追加します。
関連項目:
TSPITRスクリプトにチャネル割当てを含める方法を学習するには、「独自の補助データベースを使用したTSPITRの実行例」を参照してください。
21.6.3 独自の補助データベースを使用したTSPITRの実行
前提条件を完了し、この項のステップに従って、独自の補助データベースを使用してTSPITRを実行します。
このタスクを実行するための前提条件は次のとおりです。
独自の補助インスタンスを使用してTSPITRを実行するには、次のステップを実行します。
21.6.3.1 ステップ1: NOMOUNTモードでの補助データベースの起動
RMANのTSPITRを開始する前に、補助データベースを起動する必要があります。補助データベースに制御ファイルがまだないため、このインスタンスはNOMOUNT
モードでのみ起動できます。
制御ファイルを作成したり、TSPITR用の補助データベースをマウントまたはオープンしないでください。
補助データベースを起動するには:
-
SQL*Plusを起動し、
SYSOPER
権限を使用して補助データベースに接続します。 -
補助データベースを
NOMOUNT
モードで起動し、必要に応じてパラメータ・ファイルを指定します。たとえば、次のSQL*Plusコマンドを入力します。
SQL> STARTUP NOMOUNT PFILE='/tmp/initAux.ora'
PFILE
を指定する場合は、PFILE
のパスに、SQL*Plusを実行するホスト上のクライアント側のパスを指定することに注意してください。
21.6.3.2 ステップ2: ターゲット・データベースおよび補助データベースへのRMANクライアントの接続
RMANを起動し、ターゲット・データベースおよび手動で作成した補助データベースに接続します。
21.6.3.3 ステップ3: RECOVER TABLESPACEコマンドの実行
独自の補助インスタンスを使用してTSPITRを実行するには、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';
}
21.6.4 独自の補助データベースを使用したTSPITRの実行例
この手順では、RECOVER TABLESPACE... UNTIL
コマンドを使用してTSPITRを実行します。
この実行例では、RMANのTSPITRの次の機能について説明します。
-
独自の補助データベースの管理
-
ディスクおよびSBTデバイスからのバックアップのリストアに対するチャネルの構成
-
SET NEWNAME
を使用した補助セットのデータファイルのリカバリ可能なイメージ・コピーの使用 -
SET NEWNAME
を使用したリカバリ・セットのデータファイルの新しい名前の指定
TSPITRを独自の補助データベースとともに使用するには:
コマンド・ファイルにこの一連のコマンドを格納し、コマンド・ファイルを実行することを検討してください。
TSPITR操作が正常に実行されると、結果は次のようになります。
-
リカバリ・セットのデータファイルが、
SET NEWNAME
で指定した名前およびTSPITRの目標時点の内容で、ターゲット・データベースの制御ファイルに登録されます。 -
RMANによって、補助データベースの制御ファイル、オンライン・ログ、補助セットのデータファイルなどの補助ファイルが削除されます。
-
補助データベースが停止します。
TSPITR操作に失敗すると、補助セットのファイルが削除され、補助データベースが停止します。リカバリ・セット・ファイルは指定された場所に残り、TSPITRの実行の失敗から未解決の状態となります。
21.7 RMANのTSPITRのトラブルシューティング
様々な問題によって、RMANのTSPITRが失敗する可能性があります。問題を特定して修正する必要があります。
確認および修正できるものの一部を次に示します。
-
ファイル名の競合
-
表領域のセットおよびUNDOセグメントに対するTSPITRの目標時点の不一致または不正
-
RMANを使用せずに作成した補助データベースの管理に関する問題
21.7.1 TSPITRの実行中のファイル名の競合のトラブルシューティング
ターゲット・データベース内の既存のファイル、SET NEWNAME
またはCONFIGURE AUXNAME
コマンドで割り当てられたファイル名と、DB_FILE_NAME_CONVERT
パラメータの影響で生成されたファイル名の間で、名前の競合が発生する場合があります。
SET NEWNAME
、CONFIGURE AUXNAME
およびDB_FILE_NAME_CONVERT
を使用したため、補助セットまたはリカバリ・セット内の複数のファイルに同じ名前が指定されたとします。この場合、RMANは、TSPITRの実行中にエラーをレポートします。この問題を解決するには、これらのパラメータに異なる値を使用します。
21.7.2 TSPITRの実行中のUNDOセグメントを含む表領域の識別のトラブルシューティング
TSPITR中は、RMANではTSPITRターゲット時刻にUNDOセグメントがあったのはどの表領域かという情報が必要です。通常、この情報は、リカバリ・カタログを使用している場合はそのリカバリ・カタログにあります。
リカバリ・カタログが存在していない場合、またはリカバリ・カタログで情報が検出されない場合、RMANは、目標時点でUNDOセグメントが含まれていた表領域のセットが、現在UNDOセグメントが含まれている表領域のセットと同じであるとみなします。この仮定が正しくない場合、TSPITRは失敗してエラーが表示されます。この場合は、UNDO TABLESPACE
句を使用して、目標時点でのUNDOセグメントを表領域のリストに含めます。