복원 준비 개요
복원을 준비할 때 요청자는 저장된 기록기 메타데이터 문서를 자체 검색된 백업 구성 요소 문서와 함께 사용하여 복원할 내용과 방법을 결정합니다. 자세한 내용은 VSS에서 복원 처리 개요를 참조하세요.
복원 후보 구성 요소를 선택한 후 현재 시스템에서 실행 중인 기록기는 요청자의 백업 구성 요소 문서에 액세스합니다. 작성기는 이 액세스를 사용하여 복원으로 인해 서비스를 실행하는 데 최소 난이도를 발생시키는 방법을 나타냅니다.
이 작업이 완료되면 요청자에게 복원해야 하는 파일과 복원해야 하는 위치 및 방법을 결정하기에 충분한 정보가 있습니다. (자세한 내용은 복원 집합 생성을 참조하세요.)
다음 표에서는 복원 작업을 준비하는 데 필요한 작업 및 이벤트의 시퀀스를 보여 줍니다.
복원 준비 중 요청자 작업
복원 후보 구성 요소를 확인하려면 요청자가 다음을 수행해야 합니다.
- 백업을 만드는 데 사용되는 구성 요소 및 구성 요소 집합 구조를 설정합니다 .
- 구성 요소의 복원 선택 가능성을 검토합니다.
- 포함할 구성 요소를 선택하려면 선택성 지침(복원 및 하위 구성 요소에 대한 선택 가능성 작업)을 사용합니다.
- 구성 요소 파일 집합 정보를 사용하여 백업 미디어에서 복원해야 하는 파일을 결정합니다.
이렇게 하려면 요청자는 저장된 백업 구성 요소 문서에서 명시적으로 포함된 구성 요소를 검사해야 합니다. 이 구성 요소 정보는 IVssBackupComponents::GetWriterComponents를 사용하여 기록기별로 사용할 수 있으며, IVssWriterComponentsExt 인터페이스의 인스턴스를 반환하며, 이 인터페이스는 기록기 정보와 IVssComponent 인터페이스의 인스턴스를 모두 검색할 수 있습니다.
다른 곳에서 언급했듯이(요청자가 구성 요소 사용) 백업 구성 요소 문서 및 IVssComponent 인터페이스에는 백업을 지원하기에 충분한 정보가 포함되어 있지 않습니다. 따라서 요청자는 IVssExamineWriterMetadata 를 사용하여 해당 저장된 기록기 메타데이터 문서를 검사해야 합니다( 기록기 식별 정보 참조).
각 작성기가 관리하는 구성 요소 수는 IVssExamineWriterMetadata::GetFileCounts에서 반환됩니다. 그런 다음 요청자는 IVssExamineWriterMetadata::GetComponent 를 사용하여 기록기가 관리하는 각 구성 요소에 대한 IVssWMComponent 인터페이스를 가져올 수 있습니다.
요청자는 백업 및 논리 경로에 대한 구성 요소의 선택 가능성(선택 가능성 및 논리 경로 작업 참조)을 검사하여 백업 시간 구성 요소 집합(명시적으로 포함된 구성 요소)을 정의한 구성 요소와 해당 집합의 하위 구성 요소 멤버(암시적으로 포함된 구성 요소)를 식별할 수 있습니다.
요청자는 IVssBackupComponents::SetSelectedForRestore 또는 IVssBackupComponents::AddRestoreSubcomponent를 사용하여 구성 요소를 명시적으로 복원할 것인지 백업 구성 요소 문서를 통해 나타냅니다. 메서드 선택은 구성 요소가 원래 백업된 방법과 복원을 위한 선택 가능성에 따라 달라집니다. 복원에 명시적으로 포함된 이러한 구성 요소는 암시적으로 포함된 다른 구성 요소를 지정합니다(자세한 내용은 복원 및 하위 구성 요소에 대한 선택 가능성 작업 참조).
요청자는 IVssBackupComponents::SetSelectedForRestore 또는 IVssBackupComponents::AddRestoreSubcomponent를 사용하여 복원을 위해 현재 실행 중인 작성기의 구성 요소를 명시적으로 포함하지 않을 수 있습니다. 이 경우 해당 작성기는 복원 작업의 나머지 부분에 대한 VSS 이벤트를 받지 않습니다.
IVssBackupComponents::SetSelectedForRestore 또는 IVssBackupComponents::AddRestoreSubcomponent를 명시적으로 사용하여 현재 실행되고 있지 않은 작성기의 구성 요소를 선택하면 VSS_E_OBJECT_NOT_FOUND 오류가 반환됩니다. 누락 된 기록기의 데이터 복원 에 대한 자세한 내용은 기록기 참여 없이 복원을 참조하세요.
작성기가 작동할 전체 정보를 갖도록 하려면 작성기별 복원 옵션 및 증분 복원 표시를 요청자가 IVssBackupComponents::SetRestoreOptions 및IVssBackupComponents::SetAdditionalRestores에 각각 호출하여 기록기에 보낼 수 있습니다.
이 시점에서 요청자는 준비를 마쳤으며 IVssBackupComponents::P reRestore를 호출하여 PreRestore 이벤트를 생성하여 작성자가 실제 복원을 준비할 수 있도록 합니다.
복원 준비 중 기록기 작업
복원 작업에 대한 작성기 준비는 가상 메서드 CVssWriter::OnPreRestore를 사용하여 PreRestore 이벤트를 처리할 때 발생합니다. 기본 구현은 아무 작업도 수행하지 않고 를 반환합니다. 작성기는 다음을 통해 더 많은 제어를 실행하도록 기본 구현을 재정의하도록 선택할 수 있습니다.
이벤트 처리기 CVssWriter::OnPreRestore는 백업 중에 백업 구성 요소 문서에 명시적으로 포함된 구성 요소의 IVssComponent 인터페이스를 가져올 수 있는 IVssWriterComponents의 instance 받습니다.
백업 작업에 암시적으로 포함되고 백업 구성 요소 집합을 정의한 구성 요소에 해당하는 IVssComponent의 instance 사용하여 복원에 명시적으로 포함된 하위 구성 요소에 대한 정보입니다.
IVssComponent::IsSelectedForRestore 메서드를 사용하여 백업 구성 요소에 명시적으로 포함된 를 복원할지 여부를 확인합니다.
백업 하위 구성 요소가 복원에 명시적으로 포함되었는지 확인하기 위해 작성자는 IVssComponent::GetRestoreSubcomponent를 사용합니다.
작성기는 각 구성 요소의 파일 집합 을 검사하고 복원을 지원하기 위한 작업을 수행해야 하는지 확인해야 합니다. 작성기는 현재 파일을 덮어쓸지 또는 새 위치로 복원해야 하는지 평가해야 합니다. 작업에는 다음이 포함될 수 있습니다.
- 복원 작업을 제어하는 기록기 또는 요청자별 옵션 가져오기 및 작업( IVssComponent::GetRestoreOptions 참조)
- 현재 열려 있는 파일을 닫고 쓰기 가능으로 만들기
- 복원 대상을 업데이트합니다(instance 대체 위치 매핑으로 강제 복원). IVssComponent::SetRestoreTarget을 참조하세요.
- 프라이빗 메타데이터를 통해 요청자와 통신( IVssComponent::SetRestoreMetadata 참조)
- 지시된 대상의 정의를 통해 다시 매핑하여 파일을 복원해야 함을 나타냅니다(IVssComponent::AddDirectedTarget 참조).
사용되는 IVssComponent의 instance 백업하는 동안 구성 요소가 백업 구성 요소 문서에 명시적으로 포함되었거나 멤버인 백업 구성 요소 집합을 정의하는 구성 요소에서 만든 것입니다(복원 및 하위 구성 요소에 대한 선택 가능성 작업 참조).