복원 집합 생성
복원 집합은 복원할 모든 파일과 복원할 위치의 목록입니다.
백업 파일 목록을 생성할 때와 마찬가지로(백업 집합 생성 참조), 복원할 파일 및 복원 위치를 결정하는 알고리즘은 작성기 instance 작성기별로 작성기 instance 진행해야 하며 각 작성기 instance 구성 요소별로 작성기를 진행해야 합니다.
백업 미디어의 각 파일을 관리되는 구성 요소와 연결해야 합니다. 또한 관리 구성 요소의 복원 방법과 파일의 복원 대상 정보 및 대체 위치 매핑 (있는 경우)을 가져와야 합니다.
일부 파일은 복원을 위해 부분 파일 작업 또는 지시 대상도 필요할 수 있습니다.
백업 및 논리 경로에 대한 구성 요소의 선택 가능성을 검사하여(선택 가능성 및 논리 경로 작업 참조) 요청자는 복원하려는 백업 작업의 구성 요소 구조를 확인할 수 있습니다.
백업의 구성 요소 구조를 설정하면 요청자는 각 구성 요소의 파일 집합 정보(파일 사양, 경로 및 재귀 플래그)를 가져올 수 있습니다. 그런 다음 요청자는 복원 집합을 생성할 수 있습니다.
부분 파일 또는 지시된 대상이 필요한 파일은 고유한 자세한 복원 지침(기본이 아닌 백업 및 복원 위치 참조)을 제공하므로 복원 집합에 추가할 수 있습니다.
부분 파일 작업 또는 지시 대상 과 관련되지 않은 파일에 대한 복원 집합을 생성하는 일반적인 메커니즘은 다음을 수행하여 진행할 수 있습니다.
원래 경로를 포함하여 백업 미디어의 파일 목록을 가져옵니다.
다음을 수행하여 백업 미디어의 각 파일에 대한 기록기 클래스 및 구성 요소를 식별합니다.
각 작성기에 대해 모든 구성 요소에서 IVssExamineWriterMetadata::GetComponent를 호출하여 구성 요소 정보(IVssWMComponent)를 가져옵니다.
각 구성 요소에 대해 구성 요소에 포함된 모든 파일 집합에 대한 파일 설명자(IVssWMFiledesc) 정보를 가져옵니다( IVssWMComponent::GetFile, IVssWMComponent::GetDatabaseFile 및 IVssWMComponent::GetDatabaseLogFile을 호출하여 구성 요소가 포함하는 데이터 형식에 따라 다름).
파일의 이름과 경로 정보를 파일 설명자에 포함된 경로 정보(IVssWMFiledesc::GetPath, IVssWMFiledesc::GetFilespec 및 IVssWMFiledesc::GetRecursive에서 반환됨)에 대한 파일 설명자에 포함된 경로 정보와 비교하여 파일이 구성 요소의 일부인지 여부를 확인합니다.
참고
저장된 기록기 메타데이터 문서에 있는 구성 요소에서 검색된 파일 설명자의 대체 위치 정보를 무시해야 합니다(즉, IVssWMFiledesc::GetAlternateLocation 이 NULL을 반환하지 않음). 이 대체 위치는 백업 중에만 사용되는 대체 경로입니다.
백업 미디어의 각 파일에 대한 대체 매핑 정보를 가져옵니다.
- 대체 파일 매핑은 구성 요소 수준이 아닌 기록기에 저장되며 IVssExamineWriterMetadata::GetAlternateLocationMapping에서 반환된 개체 IVssWMFiledesc에서 가져옵니다.
- IVssExamineWriterMetadata::GetAlternateLocationMapping에서 반환하는 대체 위치 매핑에 포함된 경로 및 파일 사양에 대해 파일의 경로 및 이름을 확인하여 특정 파일에 대체 위치 매핑이 있는지 확인할 수 있습니다. IVssWMFiledesc::GetPath, IVssWMFiledesc::GetFilespec 및 IVssWMFiledesc::GetRecursive를 통해 백업 중에 대체 경로를 사용한 경우 이 검사 복원을 처리하는 동안 해당 정보를 무시해야 합니다.
- 파일 및 대체 위치 매핑 파일 설명자가 일치하는 경우 IVssExamineWriterMetadata::GetAlternateLocationMapping에서 반환된 IVssWMFiledesc 개체의 IVssWMFiledesc::GetAlternateLocation 메서드를 사용하여 파일을 복원할 수 있는 대체 위치를 찾습니다.
- 이러한 방식으로 가져온 대체 위치 매핑은 IVssComponent::GetAlternateLocationMapping에 의해 백업 구성 요소 문서에서 반환된 것과 반드시 동의하지는 않습니다. 대체 위치 매핑이 파일에 사용되는 경우에만 IVssWMFiledesc::GetAlternateLocation 값이 비어 있습니다.
이 파일 및 구성 요소 정보를 사용하여 백업 구성 요소 문서를 쿼리하여 각 파일에 대한 복원 대상, 옵션 및 새 복원 위치에 대한 정보를 얻을 수 있습니다. 이 정보는 파일, 구성 요소 및 대체 위치 목록과 결합할 수 있습니다.
기록기에 의해 보호되지 않는 파일은 기존 복원 작업과 일치하는 방식으로 선택할 수 있습니다.
이 시점에서 요청자는 복원해야 하는 모든 파일의 목록과 복원 방법에 대한 지침이 있어야 하며 다음을 기준으로 파일 복원을 시작할 수 있습니다.
- 대체 위치 매핑 또는 원래 파일 위치를 복원 대상으로 사용할지 여부는 해당 대상 위치에 있는 파일의 존재 여부와 VSS_RESTORE_TARGET 및 VSS_RESTOREMETHOD_ENUM 구성 요소 설정에 따라 달라집니다( 기본이 아닌 백업 및 복원 위치 참조).
- 복원 시도가 성공하는지 여부는 대상의 액세스 권한, 대상 파일이 잠겨 있는 경우 및 파일 복원과 관련된 기타 기존 문제와 같은 문제에 따라 달라집니다.
- IVssBackupComponents::SetFileRestoreStatus를 호출하여 지정된 작성기 instance 지정된 구성 요소 복원의 성공 또는 실패는 백업 구성 요소 문서에서 유지되어야 합니다. 이렇게 하면 기록기가 PostRestore 이벤트를 처리할 때 정보에 액세스할 수 있습니다.
- 파일이 대체 위치 매핑으로 복원되는 경우 요청자는 IVssBackupComponents::AddAlternativeLocationMapping을 호출해야 합니다. 이렇게 하면 기록기에서 IVssComponent::GetAlternateLocationMapping을 통해 파일이 대체 위치로 복원되었는지 여부를 확인할 수 있습니다.
- 요청자는 파일을 완전히 새로운 위치로 복원하는 것이 바람직할 수 있습니다. 허용 가능하지만 요청자는 IVssBackupComponents::AddNewTarget 메서드를 사용하여 작성기에 이를 표시해야 합니다.