ヘッダーをスキップ

Oracle Databaseプラットフォーム・ガイド 11gリリース1（11.1） for Microsoft Windows E05885-05 |
| 目次 | 索引

戻る | 次へ |

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

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

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

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

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

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

- データベースの複製

## 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つの独立したコピー（アクティブに更新されるディスクとバックアップに使用される変化のない固定コピー）を効果的にサポートします。

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で使用する詳細は、Oracle MetaLink Note 580558.1を参照してください。

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

データベースのバックアップ方法は、データベースのアーカイブ・モードと、コンポーネント・ベースまたはボリューム・ベースのどちらのバックアップを作成するかによって異なります。「コンポーネント・ベースのバックアップについて」では、コンポーネント・ベースのバックアップの作成時に選択できるコンポーネントについて説明します。

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

表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` `Database`、`ArchiveLogDest_``n`および`Flash` `Recovery` `Area`のみ選択できます。表8-2のコンポーネントの可用性は、データベースの状態に応じて変化します。たとえば、データベースが`NOARCHIVELOG`モードの場合、`Archived` `Logs`コンポーネントは戻されません。同様に、インスタンスがサーバー・パラメータ・ファイルを使用して起動されない場合、`Server` `Parameter` `File`コンポーネントは戻されません。

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

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

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

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

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

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

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

この項では、データベース全体をバックアップする方法について説明します。バックアップできるのは、`Oracle` `Database`、`ArchiveLogDest_``n`および`Flash` `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つ以上の表領域またはデータファイルが失われた状態からリカバリするには、次のようにします。

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シャドウ・コピーを転送できる場合、それらのシャドウ・コピーを使用してプライマリ・データベースを複製できます。この章の文脈では、複製とは、異なるデータベースのシャドウ・コピーから新規データベースを作成することを意味します。シャドウ・コピーから作成した複製データベースは、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. データファイルをスタンバイ・ホストの新しい場所にリストアした場合、制御ファイルのデータファイル名を変更します。新規名は、SQL文の`ALTER DATABASE RENAME FILE`を使用して指定できます。

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