요청자가 구성 요소 사용
백업 또는 복원을 수행하고 섀도 복사본을 감독하는 것 외에도 요청자는 상호 작용하는 기록기의 구성 요소에 대한 정보를 관리해야 합니다. 구성 요소 선택 가능성 및 논리 경로는 백업에서 데이터를 포함하거나 제외하고 백업 구성 요소 문서에 포함된 구성 요소 정보를 결정하는 데 사용됩니다.
백업 중 요청자 구성 요소 선택
백업 작업 중에 요청자는 IVssBackupComponents::GatherWriterMetadata 및 IVssBackupComponents::GetWriterMetadata 메서드를 사용하여 기록기 메타데이터 구성 요소 데이터를 가져옵니다(자세한 내용은 백업 초기화 개요 참조).
IVssExamineWriterMetadata 인터페이스를 사용하여 작성기 정보를 검사한 후 요청자는 백업할 작성기를 결정하고 지정된 작성기의 구성 요소 중 어느 것을 백업할지 제한적인 범위로 결정합니다.
기록기를 백업할 때 요청자는 다음을 수행합니다.
- 백업 구성 요소 문서에 구성 요소를 추가하려면 IVssBackupComponents::AddComponent 사용하여 백업 상위 항목에 대해 선택할 수 없는백업 구성 요소에 대해 선택할 수 없는 모든 기록기를 명시적으로 포함해야.
- IVssBackupComponents::AddComponent을 사용하여 작성기의 백업 구성 요소 문서에 포함할 수 있는 선택 가능한 구성 요소를 명시적으로 추가할 수 있습니다.
- 백업 구성 요소에 대해 선택할 수 있는 구성 요소 집합이구성 요소 집합을 정의하는 경우 명시적 포함 모든 구성 요소 집합의 멤버에 암시적으로 포함됩니다. 이러한 구성 요소는 백업 구성 요소 문서에 추가되지 않습니다.
백업 구성 요소 문서에 백업의 상위 항목 없이 선택 가능한 백업 구성 요소 또는 선택 불가능한 백업 구성 요소를 추가할 경우, 요청자는 다음 사항을 지정합니다.
- 구성 요소를 관리하는 작성자의 인스턴스입니다.
- 작성자 클래스 식별자
- 구성 요소의 논리 경로 (NULL일 수 있음)
- 구성 요소의 이름
구성 요소가 사양과 일치하지 않으면 오류가 반환됩니다.
이러한 구성 요소가 있는 경우 VSS는 Backup 구성 요소 문서의 구성 요소에 대한 IVssComponent 인터페이스를 만듭니다. 작성자와 요청자가 이 정보에 접근하여 수정할 수 있습니다. 구성 요소 집합을 정의하는 선택 가능한 구성 요소의 경우 구성 요소의 속성뿐만 아니라 포함된 모든 하위 구성 요소도 설명합니다.
암시적으로 추가된 구성 요소에 대한 정보는 Backup 구성 요소 문서에서 사용할 수 없습니다. 또한 백업 구성 요소 문서에서는 파일 정보를 사용할 수 없습니다. 해당 정보를 얻으려면 요청자는 백업 구성 요소 문서에서 선택한 저장된 구성 요소의 컨텍스트에서 기록기 메타데이터 문서(이미 읽은 문서)를 검사해야 합니다.
복원 중 요청자 구성 요소 선택
복원 작업 중에 요청자는 현재 실행 중인 프로세스의 상태가 백업이 수행될 때 프로세스 상태를 반드시 반영하지 않으므로 IVssBackupComponents::GatherWriterMetadata통해 시스템에서 현재 활성 상태인 기록기에서 구성 요소 정보를 가져오지 않아야 합니다.
IVssBackupComponents::GatherWriterMetadata을 통해 식별 이벤트를 생성해야 하며, 이는 식별 이벤트를 만들고 현재 시스템에 기록되어 있는 작성자와 그 상태를 확인하기 위함입니다.
요청자는 초기화 중에 저장된 Backup 구성 요소 문서와 저장된 기록기 메타데이터 문서를 검색합니다(자세한 내용은 복원 초기화 개요 참조).
백업 중에 구성 요소를 포함하는 것은 복원의 경우와 거의 동일합니다. 단, 논리 경로함께 복원선택할 수 있는고려해야 한다는 점을 제외하면 백업선택할 수없습니다.
그러나 몇 가지 차이점이 있습니다.
- 구성 요소가 백업 중에 백업 구성 요소 문서에명시적으로 포함된경우 복원을 위해 포함되는 경우(명시적 또는 암시적으로) IVssBackupComponents::SetSelectedForRestore 복원을 위해 백업 구성 요소 문서에 명시적으로 추가하는 데 사용됩니다.
- 구성 요소가 암시적으로 백업에 포함되었고, 복원 가능한 상위 항목이 없어서 복원할 수 없을 때(백업의 경우 명시적 포함이 필요함), 해당 구성 요소는 명시적으로 포함되지 않습니다. 즉, IVssBackupComponents를 사용하여 SetSelectedForRestore을 통해 백업 구성 요소 문서에 추가되지 않습니다. 이러한 구성 요소는 복원을 위해 암시적으로 선택된 것으로 간주되어야 합니다.
- 백업에 대해 암시적으로 선택된 구성 요소 중(해당 구성 요소가 백업에 대해 선택 가능했는지 여부) 복원을 위해 선택할 수 있는 구성 요소만 IVssBackupComponents::AddRestoreSubcomponent사용하여 백업 구성 요소 문서에 추가할 수 있습니다.
- 복원 구성 요소에 대해 선택할 수 있는 경우 백업 구성 요소에 대해 선택할 수 있는 것처럼 복원을 위해구성 요소 집합을 정의할 수 있습니다. 복원 구성 요소에 대해 선택할 수 있는 이 구성 요소는 복원 작업에 대해 설정된 구성 요소를 정의합니다.
PreRestore 이벤트가 생성되기 전에 복원을 위해 명시적으로 선택된 구성 요소가 없는 작성기는 VSS 이벤트를 수신하지 않습니다.
요청자와 작성자는 IVssComponent 인터페이스를 사용하여 저장된 구성 요소 정보에 액세스할 수 있습니다. IVssComponent 인터페이스를 통해 작성자는 백업 구성 요소 문서에 명시적으로 포함된 구성 요소의 일부 설정을 수정하여 복원을 지원할 수 있습니다(예: 복원 대상). 구성 요소 집합을 정의하는 경우, 기록자가 명시적으로 포함된 구성 요소에 대한 수정 내용이 하위 구성 요소에 전파됩니다. 또한 인터페이스는 기록기와 요청자 간에 복원 성공 및 실패에 대한 정보를 전달하는 메커니즘을 제공합니다.
백업하는 동안처럼 백업 구성 요소 문서 자체에 복원을 구현할 정보가 부족합니다. 재차, 기록기 메타데이터 문서는 복원할 파일의 실제 경로에 대한 정보를 제공해야 하며, 선택 가능한 구성 요소 집합에 속해 있어 복원해야 하는 선택 불가능한 구성 요소를 검색해야 합니다.
선택 가능성 유형 및 사용 현황에 대한 자세한 내용은 선택 가능성 및 논리 경로 작업을 참조하세요.
요청자가 Writer 구성 요소의 문서 정보를 사용하는 방법
각 구성 요소는 부모 작성기의 기록기 클래스 ID, 해당 이름 및 논리 경로로 고유하게 식별됩니다.
요청자는 IVssBackupComponents::GetWriterComponents 메서드에서 반환된 IVssWriterComponentsExt 인터페이스를 사용하여 저장된 각 구성 요소에 대한 정보를 가져올 수 있습니다.
구성 요소의 이름 및 논리 경로(다른 항목 중)는 IVssWriterComponentsExt::GetComponent반환된 IVssComponent 인터페이스를 통해 찾을 수 있습니다.
메모
복원 단계 동안 요청자는 IVssBackupComponents::PreRestore 호출이 반환된 후에만 IVssWriterComponentsExt::GetComponent 또는 IVssWriterComponentsExt::GetComponentCount를 호출해야 합니다. 이렇게 하면 기록기가 백업 구성 요소 문서를 업데이트할 수 있는 시간을 가질 수 있습니다. 이러한 업데이트의 한 가지 예는 복원 대상을 변경하는 것입니다.
저장된 각 선택 가능한 구성 요소의 부모 작성기에 대한 정보는 IVssWriterComponentsExt::GetWriterInfo사용하여 찾을 수 있습니다.
이 정보를 사용하여 기록기 메타데이터 문서를 쿼리하고 일치하는 문서를 식별할 수 있습니다. 그런 다음 논리 경로사용하여 요청자는 선택 가능한 각 구성 요소에 대해 선택 불가능한 종속 구성 요소를 식별할 수 있습니다. 즉, 선택 가능한 구성 요소의 구성 요소 집합모든 멤버를 식별합니다.
IVssExamineWriterMetadata 인터페이스를 사용하여 요청자는 이제 백업 또는 복원에 필요한 선택 가능한 구성 요소와 선택 불가능한 구성 요소 모두에 대한 경로 사양(IVssWMComponent 인터페이스)을 비롯한 전체 구성 요소 정보를 제공합니다.
이는 요청자가 자체 백업 구성 요소 문서의 상태와 백업 중인 기록기의 기록기 메타데이터 문서를 모두 저장하는 것이 중요한 이유 중 하나입니다.
자세한 내용은 선택 가능성 및 논리 경로 및 작업을 참조하세요.