ヘッダーをスキップ
Oracle® Databaseプラットフォーム・ガイド
11gリリース2(11.2) for Microsoft Windows
B58885-08
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

8 VSSを使用したデータベースのバックアップおよびリカバリの実行

この章では、ボリューム・シャドウ・コピー・サービス(VSS)・アプリケーションを使用してOracle Databaseをバックアップおよびリカバリする方法について説明します。この章の項目は次のとおりです。

VSSを使用したデータベースのバックアップおよびリカバリの概要

この項では、コンポーネント・ベースのシャドウ・コピーを使用したバックアップおよびリカバリの基本概念と関連タスクについて説明します。この項の項目は次のとおりです。

VSSを使用したデータベースのバックアップおよびリカバリの目的

VSSのWindows固有のインタフェースを使用すると、データをバックアップするリクエスタ、ディスク上のデータを更新するライター、およびストレージを管理するプロバイダをそれぞれ調整できます。Oracle Databaseは、VSS対応アプリケーションと統合されたライターとして機能します。

Windows上でVSS対応ソフトウェアとストレージ・システムを使用して、Oracle Databaseをバックアップおよびリストアできます。主な利点は、VSS対応アプリケーションを使用して、データベース全体のオンライン・バックアップを作成できることです。

この章の有効範囲

この章は、VSSアプリケーションと、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』に記載されているOracle Databaseのパックアップとリカバリの基本原則と技法の両方に対する知識があることを前提としています。この章では、バックアップとリカバリに関する基礎的な説明は割愛し、VSSインフラストラクチャでデータベースのバックアップとリカバリを実行する方法についてのみ説明します。

VSSを使用したデータベースのバックアップおよびリカバリの基本概念

VSSは、アプリケーションによるシャドウ・コピーの作成を可能にするWindowsサーバー・プラットフォーム上のインフラストラクチャです。シャドウ・コピーは、明確に定義された時点においてボリュームまたはコンポーネントに保持されているデータの一貫性のあるスナップショットです。シャドウ・コピー・セットは、同時に取得されたすべてのシャドウ・コピーの集合です。VSSでは、永続的なグローバル一意識別子(GUID)によって各シャドウ・コピーおよびシャドウ・コピー・セットを識別します。

VSSにより、VSSアプリケーション用に次のインフラストラクチャが提供されます。

  • シャドウ・コピーの作成および使用時におけるリクエスタ、プロバイダおよびライターのアクティビティの調整

  • デフォルトのシステム・プロバイダの提供

  • プロバイダの実行に必要な低レベルのドライバ機能の実装

VSSリクエスタは、VSSサービスにシャドウ・コピーの作成をリクエストするアプリケーションです。通常、VSSリクエスタはバックアップ・アプリケーションです。リクエスタは、ライターと通信してシステム・データを収集し、ライターにデータのバックアップ準備を行うよう通知します。

VSSプロバイダはストレージ・ボリュームを管理し、必要に応じてシャドウ・コピーを作成します。プロバイダは、リクエスタの要求に応じて、シャドウ・コピーが必要になっていることをアプリケーションに通知するCOMイベントを生成し、必要がなくなるまで、そのコピーの作成と維持を行います。プロバイダは、シャドウ・コピーのライフ・サイクルの間に、バックアップのためにタイプの異なる2種類のコピーを効率的にサポートします。1つは動的に更新されるディスクで、もう1つは内容的に変わらない固定的なコピーです。

VSSライターは、データをディスクに書き込み、VSSプロバイダおよびリクエスタと連携動作するアプリケーションまたはサービスです。バックアップ中は、ライターにより、データがシャドウ・コピー用として適切な状態にあることが保証されます。

Oracle VSSライターは、Oracle Databaseインスタンスと他のVSSコンポーネントを調整するWindowsサービスです。SYSDBA権限を持つユーザー・アカウントにより起動されるライター・サービスは、データベース・インスタンスとは独立して実行されます。サード・パーティのリクエスタを使用して、VSSインフラストラクチャ内でバックアップおよびリカバリを実行する必要があります。

後続の項で説明するとおり、Oracle VSSライターでは、ボリューム・ベースとコンポーネント・ベースのシャドウ・コピーがサポートされます。これらのシャドウ・コピーは、バックアップおよびリカバリ計画で使用するか、元のデータベースのコピーを作成するために使用できます。複製データベースは、テスト用に、またはスタンバイ・データベースとして使用できます。

コンポーネント・ベースのシャドウ・コピー

Oracle VSSライターでは、データベース・ファイルのセットであるコンポーネント・ベースのシャドウ・コピーがサポートされます。VSSライターを使用したOracle Databaseのバックアップに推奨される方法は、コンポーネントのシャドウ・コピーを作成することです。バックアップ中に、Oracle VSSライターは、スナップショットの作成時に生成されたREDOをメタデータ・ドキュメントに保存します。リストア操作中に、ライターは、メタデータ・ドキュメントからREDOを自動的に抽出し、それをスナップショットからリストアされたファイルに適用します。

ボリューム・ベースのシャドウ・コピー

Oracle VSSライターでは、ドライブまたはボリューム全体のスナップショットであるボリューム・ベースのシャドウ・コピーがサポートされます。Oracle Databaseにより、シャドウ・コピーを作成するのに適した状態で管理されたファイルが用意されます。たとえば、データファイルはホット・バックアップ・モードで配置され、新規スナップショットの制御ファイルはARCHIVELOGモードでデータベースに作成されます。Oracle VSSライターでは、現行の制御ファイルやオンラインREDOログなどのファイルはシャドウ・コピーから除外されます。また、ライターでは、スナップショットを取得できない場合、エラーが戻されます。たとえば、NOARCHIVELOGモードのデータベースが読取り/書込みモードでオープンされている場合、ライターにより、スナップショットを取得できないというエラーが戻されます。


注意:

自動ストレージ管理ファイルおよびRAWファイルは、Oracle VSSスナップショットではサポートされていません。

Oracle VSSライターのオプション

Oracle VSSライターでは、ログ、コピー、全体、差分および増分バックアップがサポートされています。VSSライターは、増分および差分バックアップに対してタイムスタンプのメカニズムを使用し、SetBackupStamp() APIを使用してタイムスタンプをバックアップ・ドキュメントに格納します。このバックアップ・スタンプは、増分または差分バックアップ時に、AddDifferencedFilesByLastModifyTime() APIを使用した最後の全体または増分バックアップ以降に変更されたファイルを指定するためにOracle VSSライターで使用します。

Oracle VSSライターはバックアップとリストアのメタデータも保存します。リストア操作の際には、これらのメタデータが使用可能になっていなければなりません。そうなっていれば、VSSライターがリストア後の操作を効率よく実施できるようになります。フル・バックアップまたはコピー・バックアップの場合は、リストア対象のファイルの整合性が取れるように、リストアのメタデータに重要なREDO情報が保存されます。したがって、リストア操作の際には必ずOracle VSSライターをコールして、リカバリ操作を実行するようにしてください。

VSSを使用したバックアップおよびリカバリの基本手順

Oracle VSSライターは、データベースの一部として自動的にインストールされます。ライターを手動でインストールまたはアンインストールする場合は、「Oracle VSSライター・サービスのインストールとアンインストール」を参照してください。

最も一般的なバックアップ・シナリオでは、使用しているVSS対応アプリケーションでOracle Databaseコンポーネントを選択してからシャドウ・コピーを作成します。シャドウ・コピーは、データベース・ファイル、制御ファイルおよびサーバー・パラメータ・ファイルを含みます。データベースがARCHIVELOGモードである場合は、データベースを開くか閉じるときにシャドウ・コピーを作成できます。それ以外のモードでは、閉じるときのみにシャドウ・コピーを作成できます。

一般的なリカバリ・シナリオでは、使用しているVSS対応アプリケーションでOracle Databaseコンポーネントを選択してリストアします。その後、データベースを読取り専用モードまたはRESETLOGSオプション付きでオープンできます。Oracle VSSライターでは、ポイント・イン・タイム・リカバリを実行するアプリケーションもサポートされます。

データベース・ファイルのサブセットをリストアするには、個々のコンポーネントを選択してリストアします。Oracle VSSライターは、リストア後のフェーズに自動的に適切なアクションを実行して、リストア操作の最後にファイルを使用できるように(オンラインに移行できるように)します。たとえば、リストア用のデータファイル・コンポーネントを選択すると、ライターにより、RMANを使用してそのデータファイルが自動的にリカバリされます。


関連項目:


Oracle VSSライター・サービスのインストールとアンインストール

Oracle VSSライターは、Oracle Databaseインスタンスとは独立して実行されます。データベースの観点からすると、VSSライターは単なるOCIクライアントです。

Oracle VSSライターには、ライター・サービスをインストールおよびアンインストールするためのコマンドライン・オプションがあります。インストール時に、サービスを起動するためのWindowsアカウントを指定できます。ライターでは、データベース・インスタンスに接続する際にオペレーティング・システム認証が使用されます。したがって、Windowsユーザーは、ライター・サービスにより管理されるOracle DatabaseインスタンスにSYSDBAとしてログインできる必要があります。

Oracle VSSライターのコマンドライン構文は、次のとおりです。

oravssw {/q [/start | /stop | /status]}
oravssw SID [/tl trace_level] [/tf trace_file]
oravssw SID [/i] [/d]

注意:

ユーザーIDとパスワードは、「サービス」スナップインを使用して変更できます。

表8-1では、Oracle VSSライターのオプションについて説明します。

表8-1 Oracle VSSライターのオプション

オプション 説明

SID

サービスの接続先となるOracleインスタンスのSID

/i

指定したSID用のサービスをインストールします。

/q

Oracle VSSライター・サービスを問い合せます。ただし、/start/statusまたは/stopなどのオプションと組み合せて使用しない場合、単にOracle VSSライター・サービスのリストが表示されます。

/status

すべてのOracleライター・サービスの現在のステータスを表示します。/qオプションと組み合せてのみ使用できます。

/start

すべてのOracle VSSライター・サービスを起動します。/qオプションと組み合せてのみ使用できます。

/stop

すべてのOracle VSSライター・サービスを停止します。/qオプションと組み合せてのみ使用できます。

/tl

指定したSIDに対応するOracle VSSライターのトレース・レベルを指定します。

/tf

指定したSIDに対応するOracle VSSライターのトレース・ファイル名を指定します。

/d

指定したSID用のサービスをアンインストールします。


例8-1では、prod1インスタンスに接続するサービスをインストールします。

例8-1 Oracle VSSライターのインストール

oravssw prod1 /i 

注意:

  • Oracle VSSライターの操作時のエラーは、すべてWindowsシステム・イベント・ロギングAPIを通じてレポートされます。これらのエラーは、Windowsのイベント ビューアを使用して確認できます。

  • Oracle Database 10gリリース2(10.2.0.3)でOracle VSSスナップショットをサポートするのは、Oracle VSSライター11gが10.2.0.3データベースを管理するように構成されている場合のみです。Oracle VSSライターをインストールして9iおよび10gで使用する詳細は、My Oracle Support(旧称Oracle MetaLink)https://support.oracle.com Note 580558.1を参照してください。


データベースのバックアップ

データベースのバックアップ方法は、データベースのアーカイブ・モードと、コンポーネント・ベースまたはボリューム・ベースのどちらのバックアップを作成するかによって異なります。VSSライターを使用してOracle Databaseをバックアップする場合、コンポーネント・モードで取得したシャドウ・コピーを使用することをお薦めします。Oracle VSSライターは、データベース・ファイルのセットを含むコンポーネントを定義します。その後、Oracle VSSライターは、スナップショットの作成時にホット・バックアップ・モードで生成されたREDOをバックアップのライター・メタデータ・ドキュメントに保存します。

Oracle VSSライターによって定義されるコンポーネント階層を図8-1に示します。

図8-1 Oracle VSSライターのコンポーネント階層

図8-1の説明が続きます
「図8-1 Oracle VSSライターのコンポーネント階層」の説明

「コンポーネント・ベースのバックアップについて」では、コンポーネント・ベースのバックアップの作成時に選択できるコンポーネントについて説明します。

コンポーネント・ベースのバックアップについて

表8-2に、Oracle VSSライターでサポートされるコンポーネントを示します。コンポーネントの名前は、OnIdentify VSSメッセージによって戻される値です。「バックアップに選択可能か」列は、そのコンポーネントをVSSシャドウ・コピーに選択できるかどうかを示しています。

表8-2 Oracle VSSライターによりバックアップされるコンポーネント

コンポーネント 説明 バックアップに選択可能か

Oracle Database

データベース・ファイル、制御ファイルおよびサーバー・パラメータ・ファイルを含みます。

はい

制御ファイル

ARCHIVELOGモードで稼働しているデータベースの制御ファイルのスナップショットの場所を含みます。または、すべてのデータベース・ファイルが一貫性のあるSCNにリカバリされる場合、現行の制御ファイルの場所を含みます。

注意: 制御ファイル・コンポーネントに含まれるファイルにより、現行の制御ファイルまたはスナップショット制御ファイルのどちらが除外されるかが決定されます。たとえば、データベースが読取り専用モードでオープンされている場合、スナップショット制御ファイルの場所は、スナップショットから除外されます。

いいえ

サーバー・パラメータ・ファイル

サーバー・パラメータ・ファイルの場所を含みます(インスタンスがサーバー・パラメータ・ファイルを使用している場合)。

いいえ

すべての表領域

スナップショットにすべての表領域を含みます。

いいえ

tablespace_names

表領域を個別に選択します。

いいえ

データファイル番号=n

データファイルを個別に選択します。メタデータには、RESETLOGS情報、表領域番号、表領域名およびDBIDが含まれます。

いいえ

ArchiveLogDest_n

高速リカバリ領域以外のローカルのアーカイブ先を個別に選択します。

はい

高速リカバリ領域

VSSスナップショットに高速リカバリ領域内のすべてのバックアップ・ファイルおよびアーカイブ・ログを含みます。

高速リカバリ領域からVSSによりバックアップされたファイルは、領域制限のために削除される可能性があります。

はい

アーカイブ・ログ

高速リカバリ領域内のログ

いいえ

バックアップ・ファイル

高速リカバリ領域からのバックアップ

いいえ


バックアップ時にOracle VSSライターによって公開される、Oracle DatabaseArchiveLogDest_nおよびFast Recovery Areaのみ選択できます。表8-2のコンポーネントの可用性は、データベースの状態に応じて変化します。たとえば、データベースがNOARCHIVELOGモードの場合、Archived Logsコンポーネントは戻されません。同様に、インスタンスがサーバー・パラメータ・ファイルを使用して起動されない場合、Server Parameter Fileコンポーネントは戻されません。


注意:

バックアップに選択可能であると示されていないコンポーネントは、バックアップに選択可能であると示されているコンポーネントに暗黙的に含まれます。

バックアップまたはリストアでOracle Databaseコンポーネントを選択すると、他のすべてのコンポーネントは暗黙的にバックアップまたはリストアで選択されます。これは、選択されたコンポーネントの一部であるすべてのファイルが、バックアップまたはリストアの候補であることを意味します。

ArchiveLogDest_nおよびFast Recovery Areaコンポーネントは、ログ・ファイルまたは増分ファイルのみを含むように定義されます。これは、リクエスタが、増分または差分バックアップのログの作成時にのみ、これらのコンポーネントのファイルをバックアップすることを意味します。同様に、リクエスタは、増分または差分バックアップのログからのリストア時にのみ、これらのコンポーネントのファイルをリストアします。

ArchiveLogDest_nおよびFast Recovery Area以外のすべてのコンポーネント内のファイルは、データベース・ファイルを定義します。これは、リクエスタが、全体またはコピー・バックアップの作成時にのみ、これらのコンポーネントのファイルをバックアップすることを意味します。同様に、リクエスタは、全体またはコピー・バックアップからのリストア時にのみ、これらのコンポーネントのファイルをリストアします。

ARCHIVELOGモードのデータベースのバックアップ

この項の手順では、データベースが読取り/書込みモードでオープンしていると仮定します。「NOARCHIVELOGモードのデータベースのバックアップ」の手順を使用して、完結した一貫性のあるバックアップを作成することもできます。

ARCHIVELOGデータベースのコンポーネント・ベースのバックアップの作成

この項では、データベース全体をバックアップする方法について説明します。バックアップできるのは、Oracle DatabaseArchiveLogDest_nおよびFast Recovery Areaのみです(表8-2「Oracle VSSライターによりバックアップされるコンポーネント」を参照)。

データベース全体をバックアップするには、次のようにします。

  1. ターゲット・データベースでSQL*Plusセッションを開始し、データベースがREAD WRITEモードでオープンしていることを確認します。

  2. サード・パーティのVSSリクエスタを使用して、Oracle Databaseコンポーネントを選択します。

  3. データベースのスナップショットを作成します。

    Oracle VSSライターのスナップショットには、サーバー・パラメータ・ファイル、制御ファイルおよびデータファイルが含まれます。オンラインREDOログは、スナップショットに含まれません。

ARCHIVELOGデータベースのボリューム・ベースのバックアップの作成

読取り/書込みモードでオープンしているOracle Databaseのボリューム・ベースのシャドウ・コピーを作成するには、アーカイブREDOログが、Oracleのデータファイル、制御ファイル、サーバー・パラメータ・ファイルおよびオンラインREDOログを含むボリュームとは異なるボリュームに物理的に存在している必要があります。

ボリューム単位でデータベースおよびアーカイブREDOログをバックアップするには、次のようにします。

  1. ターゲット・データベースでSQL*Plusセッションを開始し、データベースがREAD WRITEモードでオープンしていることを確認します。

  2. サード・パーティのVSSリクエスタを使用して、データファイル、制御ファイルおよびサーバー・パラメータ・ファイルが物理的に存在しているボリュームを選択します。

  3. データベース・ファイルのスナップショットを作成します。

    Oracle VSSライターのスナップショットには、サーバー・パラメータ・ファイル、制御ファイルおよびデータファイルが含まれます。オンラインREDOログは、スナップショットに含まれません。サーバー・パラメータ・ファイルは個別にリストアできますが、制御ファイルとデータファイルは常に一緒にリストアする必要があります。

  4. サード・パーティのVSSリクエスタを使用して、すべてのアーカイブREDOログ(または高速リカバリ領域)が物理的に存在しているボリュームを選択します。

  5. アーカイブREDOログのスナップショットを作成します。

NOARCHIVELOGモードのデータベースのバックアップ

NOARCHIVELOGモードで稼働しているOracle Databaseの場合、VSSスナップショットを作成する際にデータベースが一貫性のある状態である必要があります。データベースが読取り/書込みモードでオープンしているときに作成されるバックアップは、サポートされません。

NOARCHIVELOGデータベースのコンポーネント・ベースのバックアップの作成

NOARCHIVELOGモードのOracle Databaseでは、タイプがフル、デフォルトまたはコピーの場合、サポートされるコンポーネント・ベースのVSSスナップショットは、Oracle Databaseのみです。

コンポーネント単位でデータベースをバックアップするには、次のようにします。

  1. ターゲット・データベースでSQL*Plusセッションを開始し、データベースを一貫性のある状態にします。たとえば、次のコマンドを入力します。

    SHUTDOWN
    STARTUP MOUNT
    
  2. サード・パーティのVSSリクエスタを使用して、Oracle Databaseコンポーネントを選択します。

  3. ボリューム・ベースのVSSスナップショットを作成します。

    Oracle VSSライターのスナップショットには、サーバー・パラメータ・ファイル、制御ファイルおよびデータファイルが含まれます。オンラインREDOログは、スナップショットに含まれません。

NOARCHIVELOGデータベースのボリューム・ベースのバックアップの作成

ボリューム単位でデータベースをバックアップするには、次のようにします。

  1. ターゲット・データベースでSQL*Plusセッションを開始し、データベースを一貫性のある状態にします。たとえば、次のコマンドを入力します。

    SHUTDOWN
    STARTUP MOUNT
    
  2. サード・パーティのVSSリクエスタを使用して、データファイル、制御ファイルおよびサーバー・パラメータ・ファイルが物理的に存在しているボリュームを選択します。

  3. ボリューム・ベースのVSSスナップショットを作成します。

    Oracle VSSライターのスナップショットには、サーバー・パラメータ・ファイル、制御ファイルおよびデータファイルが含まれます。オンラインREDOログは、スナップショットに含まれません。サーバー・パラメータ・ファイルは個別にリストアできますが、制御ファイルとデータファイルは常に一緒にリストアする必要があります。

データベースのリストアおよびリカバリ

この項では、VSSスナップショットをリストアおよびリカバリする方法について説明します。その手順は、バックアップの場合と同様に、データベースのアーカイブ・モードと、リストアするスナップショットのタイプによって異なります。この項の項目は次のとおりです。

ARCHIVELOGモードのデータベースのリストアおよびリカバリ

リストアおよびリカバリ操作では、表8-3「リストア操作で使用可能なコンポーネント」にリストされたコンポーネントを選択できます。この表は、Oracle VSSライターがリストア前のフェーズ中にコンポーネントに対して実行する確認作業と、リストアの完了後に実行するアクションを示しています。

表8-3 リストア操作で使用可能なコンポーネント

コンポーネント リストア前のフェーズ リストア後のフェーズ 参照先

サーバー・パラメータ・ファイル

データベース・インスタンスが起動していないことを確認します。起動している場合、ライターによりリストア前の障害エラーが戻されます。

データベースがNOMOUNTで起動していることを確認します。サーバー・パラメータ・ファイルがOracleホームのデフォルトの場所にリストアされる場合、インスタンスは自動的にNOMOUNTで起動します。それ以外の場合は、ORA_SID_PFILEを、サーバー・パラメータ・ファイルの場所を示すテキスト・ベースの初期化パラメータ・ファイルの場所に設定する必要があります。

「サーバー・パラメータ・ファイルのリストア」


制御ファイル

インスタンスがNOMOUNTで起動しているか、起動していないかを確認します。インスタンスが起動していない場合、ライターにより、ORA_SID_PFILEインスタンス・パラメータ・ファイルを使用してインスタンスが起動されるか、デフォルトの場所にある初期化パラメータ・ファイルまたはサーバー・パラメータ・ファイルが使用されます。

インスタンスによって示された現在のすべての制御ファイルの場所に制御ファイルをレプリケートした後に、制御ファイルをマウントします。

「すべての制御ファイルが失われた状態からのリカバリ」


表領域またはデータファイル・コンポーネント

データベースがマウントされていること、または指定されたデータファイルまたは表領域がオフラインであることを確認します。

これらの表領域またはデータファイルの完全リカバリを実行します。リクエスタ・アプリケーションは、デフォルトのリカバリ動作を上書きできます。

「表領域またはデータファイルのリカバリ」


すべての表領域

データベースがマウントされていることを確認します。

バックアップのライター・メタデータ・ドキュメントからREDOを抽出し、リストアされたすべてのデータファイルを対象に、スナップショットの作成時点までの不完全リカバリを実行します。リクエスタ・アプリケーションは、デフォルトのリカバリ動作を上書きできます。

「すべての表領域のリカバリ」


Oracle Database

インスタンスが起動していないことを確認します。

データベース・インスタンスを起動して制御ファイルをマウントし、リカバリを実行します。サーバー・パラメータ・ファイル、制御ファイル、およびすべての表領域のリストア後の動作に関する説明を参照してください。

「障害時リカバリの実行」および「NOARCHIVELOGデータベースのコンポーネント・ベースのバックアップのリストア」

アーカイブREDOログまたは高速リカバリ領域

なし。

このコンポーネントのデフォルト・リカバリは実行されません。ただし、リクエスタ・アプリケーションでは必要なRMANコマンドを実行できます。



サーバー・パラメータ・ファイルのリストア

この項では、サーバー・パラメータ・ファイルをリストアする方法について説明します。

サーバー・パラメータ・ファイルをリストアするには、次のようにします。

  1. VSSスナップショットからServer Parameter Fileというコンポーネントを選択します。

  2. サーバー・パラメータ・ファイルをリストアします。

    Oracle VSSライターは、サーバー・パラメータ・ファイルを最初にコピーした元の場所にリストアします。このファイルは、別の新しい場所にリストアすることもできます。

すべての制御ファイルが失われた状態からのリカバリ

この項では、すべての多重制御ファイルが失われた状態からリカバリする方法について説明します。

すべての制御ファイルが失われた状態からリカバリするには、次のようにします。

  1. データベースがNOMOUNT状態にあるか、データベースをOracle VSSライターによってNOMOUNT状態で起動できることを確認します。

  2. VSSスナップショットからControl Fileというコンポーネントを選択します。

  3. 失われた制御ファイルを含むコンポーネントをリストアします。

    Oracle VSSライターは、リストアされた制御ファイルを使用してデータベースを自動的にマウントします。制御ファイルのリカバリのみが必要な場合、VSSリクエスタ・アプリケーションは、Oracleライターに完全リカバリを実行するよう指示します。

  4. 必要に応じて他のデータベース・コンポーネントをリストアおよびリカバリします。

  5. RESETLOGSオプション付きでデータベースをオープンします。

表領域またはデータファイルのリカバリ

この項では、1つ以上の表領域またはデータファイルが失われた状態からリカバリする方法について説明します。この手順では、データファイルの一部が失われたものと仮定します。

損失した表領域またはデータファイルをすべてリカバリするには、次のようにします。

  1. データベースがマウントされているか、オープンしていることを確認します。データベースがオープンしている場合、リカバリを必要とするデータファイルまたは表領域をALTER DATABASE ... OFFLINE文を使用してオフラインに移行します。

  2. データファイルまたは表領域のリカバリにアーカイブREDOログが必要な場合、そのアーカイブREDOログをリストアします。

  3. 失われたデータファイルを含む、または失われた表領域のすべてのデータファイルを含むVSSスナップショットからコンポーネントを選択します。

  4. 失われたデータファイルを含むコンポーネントをリストアします。

    Oracle VSSライターは、リストアされたデータファイルを自動的にリカバリします。一部のアーカイブ・ログが失われている場合、ログをリストアしてSQL*PlusまたはRMANでデータファイルをリカバリできます。

  5. オフラインのデータファイルまたは表領域をオンラインに戻します。

すべての表領域のリカバリ

この項では、すべての表領域が失われた状態からリカバリする方法について説明します。

すべてのデータファイルをリカバリするには、次のようにします。

  1. データベースがマウントされていることを確認します。

  2. データファイルまたは表領域のリカバリにアーカイブREDOログが必要な場合、そのアーカイブREDOログをリストアします。

  3. VSSスナップショットからAll Tablespacesというコンポーネントを選択します。

  4. 表領域をリストアします。

    Oracle VSSライターは、リストアされたデータファイルを自動的にリカバリします。一部のアーカイブ・ログが失われている場合、ログをリストアしてSQL*PlusまたはRMANでデータファイルをリカバリできます。

  5. データベースをオープンします。

障害時リカバリの実行

この項では、サーバー・パラメータ・ファイル、制御ファイル、およびすべてのデータファイルが失われた状態からリカバリする方法について説明します。

障害時リカバリを実行するには、次のようにします。

  1. インスタンスが起動していないことを確認します。

  2. データファイルまたは表領域のリカバリにアーカイブREDOログが必要な場合、そのアーカイブREDOログをリストアします。

  3. VSSスナップショットからOracle Databaseというコンポーネントを選択します。

  4. データベースをリストアします。

    Oracle VSSライターは、自動的にインスタンスを起動してデータベースをマウントし、リストアされたデータファイルをリカバリします。一部のアーカイブ・ログが失われている場合、ログをリストアしてSQL*PlusまたはRMANでデータファイルをリカバリできます。

  5. RESETLOGSオプション付きでデータベースをオープンします。

NOARCHIVELOGモードのデータベースのリストア

NOARCHIVELOGモードで稼働しているOracle Databaseの場合、アーカイブREDOログは生成されないため、メディア・リカバリは実行できません。データベース・ファイルは、追加のリカバリが要求されない一貫性のある状態で存在している必要があります。

NOARCHIVELOGデータベースのコンポーネント・ベースのバックアップのリストア

コンポーネント・ベースのバックアップをリストアするには、次のようにします。

  1. サード・パーティのVSSリクエスタを使用して、Oracle Databaseコンポーネントを選択します。

    Oracle VSSライターは、自動的にデータファイルをリストアし、データベースをマウントします。

  2. RESETLOGSオプション付きでデータベースをオープンします。

NOARCHIVELOGデータベースのボリューム・ベースのバックアップのリストア

ボリューム・ベースのバックアップをリストアするには、次のようにします。

  1. サード・パーティのVSSリクエスタを使用して、データファイル、制御ファイルおよびサーバー・パラメータ・ファイルが物理的に存在しているボリュームを選択します。

  2. データファイルとログが存在するすべてのボリュームをリストアします。

  3. RESETLOGSオプション付きでデータベースをオープンします。

VSSとサード・パーティのリクエスタ・アプリケーションの統合

Oracle VSSライターを使用すると、サード・パーティのリクエスタ・アプリケーションでリカバリおよびバックアップ・セッションの動作を制御できます。サード・パーティのリクエスタ・アプリケーションはVSS API setBackupOptionsまたはsetRestoreOptionsを使用して、適切な文字列をライターに渡します。ライターはgetBackupOptionsまたはgetRestoreOptionsを使用して、リクエスタから文字列セットを取得し、バックアップおよびリストアの前または後にアクションを実行します。

ライターが提供するリカバリ操作の柔軟性を利用する際に従うプロトコルを次に示します。

ライターの制御コマンド

ライターの制御コマンドは、リストア後のフェーズでリストされたすべてのコンポーネントに適用できます。コマンドの形式は次のとおりです。

OP1=CMD1, OP2=CMD2, . . . 

次の順序でコマンドを実行します。

  1. POST_WTRCMD=NORECOVER

    リストアされたコンポーネントに対して、リストア後のデフォルトのリカバリ操作で定義されたリストア後のリカバリ・アクティビティを実行しないように、ライターに指示します。それ以外の場合は、リストア後のフェーズのデフォルトのアクションが実行されます。

  2. POST_RMANCMD=cmdstr

    現在の操作の後、デフォルトの操作ではなく特定のRMANコマンドを実行するようにライターに指示します。

  3. PRE_SQLCMD=cmdstr

    他の検証を実行する前に、OnPrepareBackupまたはOnPreRestoreコールバックで特定のSQLコマンドを実行するようにライターに指示します。VSSスナップショットが作成される前にスタンバイ・データベースでMRPを停止する場合、またはデータベースのコールド・バックアップを作成するデータベース・インスタンスを停止する場合に使用されます。

  4. POST_SQLCMD=cmdstr

    PostSnapshotまたはPostRestoreコールバックで特定のSQLコマンドを実行するようにライターに指示します。VSSスナップショットの作成後にスタンバイ・データベースでMRPを再起動する場合、またはデータベースのコールド・バックアップの実行後にデータベース・インスタンスを再起動する場合に使用されます。

データベースまたはすべての表領域コンポーネントの制御コマンド

次のコマンドを実行します。

POST_WTRCMD=UNTIL_SNAPSHOT

スナップショット作成時へのリカバリを実行するようにライターに指示します。ライターはデータベース・コンポーネントに格納されたREDOログのシステム変更番号を抽出し、システム変更番号までリカバリを実行します。

データベースの複製

VSSシャドウ・コピーを転送できる場合、それらのシャドウ・コピーを使用してプライマリ・データベースを複製できます。この章の文脈では、複製とは、異なるデータベースのシャドウ・コピーから新規データベースを作成することを意味します。シャドウ・コピーから作成した複製データベースは、Data Guard環境で非スタンバイ・データベースまたはスタンバイ・データベースとして使用できます。DUPLICATEコマンドを使用するRMANの複製とは異なる手順となることに注意してください。

この項の項目は次のとおりです。

シャドウ・コピーからの非スタンバイ・データベースの作成

この項では、プライマリ・データベースと同じファイル・システム構造を持つホストにデータベースを複製するものと仮定します。

シャドウ・コピーから非スタンバイ・データベースを作成するには、次のようにします。

  1. 「障害時リカバリの実行」の手順に従って新規ホストにデータベースをリストアします。

  2. 複製データベースでSQL*Plusセッションを開始し、DBIDを取得します。次のようにDBIDを問い合せます。

    SELECT DBID FROM V$DATABASE;
    
  3. 一貫性のある状態でデータベースを停止します。次のようにデータベースを停止します。

    SHUTDOWN;
    
  4. DBNEWIDユーティリティを使用してDBIDを変更します。

    DBNEWIDの使用方法は、『Oracle Databaseユーティリティ』を参照してください。

  5. データベースをオープンします。

  6. 複製データベースでSQL*Plusセッションを開始し、DBIDを問い合せます。次のようにDBIDを問い合せます。

    SELECT DBID FROM V$DATABASE;
    

シャドウ・コピーからのスタンバイ・データベースの作成

この項では、プライマリ・データベースと同じファイル・システム構造を持つホストにスタンバイ・データベースを作成するものと仮定します。また、この項では、読者が『Oracle Data Guard概要および管理』に目を通しており、スタンバイ・データベースの作成とメンテナンスについてよく理解していることを前提とします。

シャドウ・コピーからスタンバイ・データベースを作成するには、次のようにします。

  1. 「障害時リカバリの実行」の手順に従ってスタンバイ・ホストにデータベースをリストアします。

  2. 新しいデータベースに対してSQL*Plusセッションを開始します。プライマリ・データベースから新しいスタンバイ制御ファイルを取得する必要があります。SQL文ALTER DATABASE CREATE STANDBY CONTROLFILEを使用して制御ファイルを作成できます。

  3. インスタンスを起動してスタンバイ制御ファイルをマウントします。