次の方法で共有


Writers

ライター は、ディスク上のファイルに永続的な情報を格納し、シャドウ コピー インターフェイスを使用して要求者にこれらのファイルの名前と場所を提供するアプリケーションまたはサービスです。

バックアップ操作中に、ライターはデータが静止し、安定していることを確認します。シャドウ コピーとバックアップに適しています。 ライターは、可能な場合はファイルのロックを解除し、必要に応じて別の場所を示すことで、復元と共同作業を行います。

VSS バックアップ操作中にライターが存在しない場合でも、シャドウ コピーを作成できます。 この場合、シャドウ コピーされたボリューム上のすべてのデータは クラッシュ整合性状態になります。

ライターの状態

ライターは、XML ベースのメタデータ オブジェクトである ライター メタデータ ドキュメントで状態を維持します。

このライター メタデータは、バックアップおよび復元するデータの ファイル セット (パス、ファイル指定、再帰フラグ) を含む唯一のデータ構造です。

ライター メタデータ ドキュメントは、ライターのファイル セットをグループまたはコンポーネントに整理 します。 ライターによって管理される他のコンポーネントとのバックアップおよび復元操作中のこれらのコンポーネントの関係については、「ライター メタデータ ドキュメント」で、コンポーネントの バックアップの選択性復元の選択性、およびその 論理パスについて説明します。 (詳細については、「 コンポーネント組織の設定 」および「 選択可能パスと論理パスの操作」を参照してください)。

ファイルの復元やその他の問題を管理する追加情報も、このドキュメントに含まれています。

リクエスターは、バックアップまたは復元を処理するために、ライター メタデータを独自のバックアップ コンポーネント ドキュメントと組み合わせて必要とします。

バックアップ コンポーネント ドキュメントとは異なり、ライター メタデータ ドキュメントは読み取り専用構造と考える必要があります。 ライターが作成すると、ドキュメントは変更されません。

ライター イベント処理

ライターの VSS 操作は、COM イベントを受信して開始されます。

イベントが存在しない場合、ライターは VSS 操作 (VSS バックアップや復元など) を実行しません。 代わりに、データベース クエリへの応答、ユーザー データの管理、他のサービスの提供など、通常の作業を実行します。

複数の並列バックアップおよび復元セッションのエラー処理が正しく実行されるようにし、1 つのバックアップまたは復元セッションで別のバックアップまたは復元セッションが破損しないようにするには、次の操作を行う必要があります。

  • ライターのイベント ハンドラー ( CVssWriter::OnFreeze など) が CVssWriterEx2::GetSessionIdCVssWriter::SetWriterFailure、または CVssWriterEx2::SetWriterFailureEx メソッドを呼び出す場合、イベント ハンドラーは、イベント ハンドラーを呼び出したのと同じスレッドでメソッドを呼び出す必要があります。
  • OnFreeze などのイベント ハンドラーのライターの実装では、必要に応じて、各ワーカー スレッドが必要なエラーを元のイベント ハンドラー スレッドにマーシャリングする限り、ワーカー スレッドに作業をオフロードできます。

識別イベントの処理

Identify イベントを除き、ライターが受信するイベントの種類と順序は、現在進行中の VSS 操作の種類によって一意に異なります。

Identify イベントでは、ライターは、ライター メタデータ ドキュメントを通じて構成と管理するファイルに関するシステム情報を提供する必要があります。 Identify イベントは、システム クエリ、シャドウ コピー操作、バックアップ操作、復元操作など、ほぼすべての VSS 操作をサポートするために生成されます。 したがって、Identify イベント ハンドラー CVssWriter::OnIdentify のライターの実装は、バックアップや復元などの別の VSS 操作の処理中を含め、いつでも Identify イベントを処理できる必要があります。 Identify イベントは、VSS 操作のライフ サイクルの一部として考えるべきではありません。ただし、その生成が予期され、その操作が開始される前に必要になる場合があります。

順序が正しくないイベントを受信すると、その情報がリセットされるため、VSS 操作に関する状態情報が CVssWriter::OnIdentify で変更されないことが特に重要です。

バックアップイベントと復元イベント

バックアップと復元のどちらに参加しているかに応じて、ライターは初期の Identify イベントに加えて、2 から 7 つのイベントを受け取ります。

これらのイベントの処理は、(ライターの観点から) バックアップ操作または復元操作のライフ サイクルを構成します。

一般的なバックアップ操作 ( 「VSS でのバックアップの処理の概要」を参照) では、ライターは (初期 Identify イベントに加えて) 次のイベントを処理します。

  • PrepareForBackup
  • PrepareForSnapshot
  • Freeze
  • 凍結解除
  • PostSnapshot
  • BackupComplete
  • BackupShutdown

一般的な復元操作では ( 「VSS での復元の処理の概要」を参照)、ライターは次のイベントを処理します。

  • PreRestore
  • PostRestore