バックアップの選択性の使用
次の表では、バックアップ操作に関連する 4 種類のコンポーネントについて説明します。
コンポーネントの種類 | 説明 |
---|---|
選択できないバックアップ コンポーネント |
論理パスに選択可能なバックアップ先祖はありません。 |
Selectable-for-backup コンポーネント |
論理パスに選択可能なバックアップ先祖はありません。 |
非選択可能なバックアップ サブコンポーネント |
選択可能なバックアップの先祖をパスに含む非選択可能なバックアップ コンポーネント。 |
Selectable-for-backup サブコンポーネント |
選択可能なバックアップコンポーネントと、そのパスに選択可能なバックアップの先祖。 |
さらに、選択可能なバックアップコンポーネントは、選択可能なバックアップの先祖があるかどうかに関係なく、他のコンポーネントが論理パスの先祖として持っている場合に コンポーネント セット を定義します。
バックアップ用のコンポーネントの選択に関する規則は、次のように要約できます。
選択可能なバックアップの先祖を持たないコンポーネントが論理パスに含まれている場合 (コンポーネントが selectable-for-backup であるか、非選択可能なバックアップであるかに関係なく)、バックアップに含める必要があります。明示的 に含める必要があります。 つまり、これらのコンポーネントのメタデータがバックアップ コンポーネント ドキュメントに追加されます。
要求者は、 IVssBackupComponents::AddComponent メソッドを 使用して、これらのコンポーネントを明示的に追加します。
非選択可能なバックアップ サブコンポーネントは、常 にバックアップに暗黙的に含まれます 。 これは、これらのコンポーネントのメタデータがバックアップ コンポーネント ドキュメントに含まれていないことを意味します。
その先祖がバックアップに明示的に含まれている場合、Selectable-for-backup サブコンポーネントは暗黙的に含まれます。 この場合、これらのコンポーネントのメタデータはバックアップ コンポーネント ドキュメントに追加されません。 バックアップ サブコンポーネントに対して暗黙的に選択可能な がコンポーネント セットを定義している場合、そのコンポーネント セットのメンバーも暗黙的に選択されます。
selectable-for-backup の先祖が明示的にバックアップに含まれていない Selectable-for-backup サブコンポーネントは、 IVssBackupComponents::AddComponent メソッドを使用してリクエスターによって明示的に含めることもできます。 その後、コンポーネントのメタデータがバックアップ コンポーネント ドキュメントに追加されます。 さらに、選択可能なバックアップ サブコンポーネントでコンポーネント セットが定義されている場合、そのコンポーネント セットのメンバーは暗黙的にバックアップに含まれます。
「 コンポーネントの論理パス 」で説明されている "MyWriter" ケースは、バックアップの選択性を示す例として使用できます。
コンポーネント名 | 論理パス | バックアップ用に選択可能 |
---|---|---|
"実行可能ファイル" | "" | N |
"ConfigFiles" | "実行可能ファイル" | N |
"LicenseInfo" | "" | Y |
"Security" | "" | Y |
"UserInfo" | "Security" | × |
"証明書" | "Security" | × |
"writerData" | "" | Y |
"Set1" | "writerData" | N |
"Jan" | "writerData\Set1" | N |
"Dec" | "writerData\Set1" | N |
"Set2" | "writerData" | N |
"Jan" | "writerData\Set2" | N |
"Dec" | "writerData\Set2" | N |
"クエリ" | "writerData\QueryLogs" | N |
"Usage" | "writerData" | Y |
"Jan" | "writerData\Usage" | N |
"Dec" | "writerData\Usage" | N |
"MyWriter" がバックアップされるたびに、 IVssBackupComponents::AddComponent メソッドを使用して "Executables" コンポーネントを明示的に含めると、"ConfigFiles" コンポーネントが暗黙的に含まれます。
コンポーネント "LicenseInfo" は、スタンドアロンの選択可能なバックアップ コンポーネントです。 要求者の裁量で IVssBackupComponents::AddComponent メソッドを使用して選択できますが、その選択では他のコンポーネントは選択されません。
selectable-for-backup コンポーネント "Security" は、"UserInfo" と "Certificates" という 2 つの非選択可能なバックアップ サブコンポーネントを含む単純なコンポーネント セットを定義します。 バックアップに "Security" が明示的に含まれている場合、"UserInfo" と "Certificates" も常に暗黙的に含まれます。 "セキュリティ" が含まれていない限り、バックアップ操作にサブコンポーネント "UserInfo" または "Certificates" を含める方法はありません。
コンポーネント "writerData" が選択されている場合は、選択できないバックアップ コンポーネント "Set1"、"Set2"、および "Query" と、選択可能なバックアップ コンポーネント "Usage" が暗黙的に選択されます。 これらの各コンポーネントには、バックアップ用に暗黙的に選択されるサブコンポーネントがあります。 それらのメタデータはバックアップ コンポーネント ドキュメントに追加されません。
コンポーネント "writerData" が選択されていない場合、選択できないバックアップ コンポーネント "Set1"、"Set2"、および "Query" はバックアップに含まれません。
ただし、要求者は、バックアップ コンポーネント "Usage" に選択可能な を明示的に含める場合があります。 このコンポーネントのメタデータは、バックアップ コンポーネント ドキュメントに追加されます。 "Usage" のサブコンポーネント "Jan" と "Dec" は、バックアップに暗黙的に追加されますが、バックアップ コンポーネント ドキュメントに情報は追加されません。
バックアップ用のコンポーネントを明示的に含めると、対応する IVssComponent インスタンスがバックアップ コンポーネント ドキュメントに作成されます。
リクエスターは、ドキュメントに含まれるライター ( IVssBackupComponents::GetWriterComponents を使用) を調べ、格納されている IVssComponent オブジェクトを取得することで、明示的に含まれるコンポーネントに関する情報をバックアップ コンポーネント ドキュメントから取得します。
バックアップ コンポーネント ドキュメントに存在するコンポーネントのファイル セット情報 (ファイルの指定、パス、再帰フラグ) も、暗黙的に追加されたコンポーネントに関する情報も存在しないので、要求者は Writer Metadata Documents に対してクエリを実行して、バックアップ コンポーネント ドキュメントに含まれるすべてのコンポーネントに関する完全な情報を取得する必要があります。