이 백업 단계에서는 기록기와 요청자를 초기화하여 내부 데이터 구조를 채우고 백업을 지정하며, 기록기/요청자 통신을 설정하기 위해 IVssBackupComponents::GatherWriterMetadata를 필요한 호출로 수행합니다. 자세한 내용은 VSS백업 처리 개요를 참조하세요.
다음 표에서는 백업 초기화에 필요한 작업 및 이벤트 시퀀스를 보여 줍니다.
| 요청자 조치 | 이벤트 | 작성기 작업 |
|---|---|---|
| IVssBackupComponents 인터페이스를 만들고 백업을 관리하도록 초기화하고(CreateVssBackupComponents, IVssBackupComponents::InitializeForBackup참조) 필요에 따라 시스템에서 작성기를 사용하거나 사용하지 않도록 설정합니다. | 없음 | 없음 |
| 필요에 따라 섀도 복사 작업에 대한 컨텍스트를 설정하고 필요에 따라 지원하는 공급자 및 섀도 복사본에 대해 시스템을 쿼리합니다(IVssBackupComponents::SetContext, IVssBackupComponents::Query참조). | 없음 | 없음 |
| 요청자는 백업 및 복원 작업 처리에 대한 추가 정보를 제공할 수 있습니다(IVssBackupComponents::SetBackupState참조). | 없음 | 없음 |
| 기록기와 비동기 상호작용을 시작합니다(자세한 내용은 IVssBackupComponents::GatherWriterMetadata참조). | 식별 | 작성기 메타데이터 문서를 만듭니다(작성기 메타데이터 문서작업 참조, CVssWriter::OnIdentify, IVssCreateWriterMetadata) |
백업 초기화 중 요청자 작업
IVssBackupComponents 개체는 하나의 백업에만 사용할 수 있습니다. 따라서 요청자는 IVssBackupComponents 인터페이스 해제를 포함하여 백업의 끝까지 진행해야 합니다. 백업을 조기에 종료해야 하는 경우 요청자는 IVssBackupComponents::AbortBackup 호출한 다음 IVssBackupComponents 개체를 해제해야 합니다(자세한 내용은 VSS 작업 중단 참조). IVssBackupComponents 인터페이스를 다시 시작하지 마세요.
일반적으로 요청자의 Backup 구성 요소 문서는 빈 문서로 초기화됩니다. 저장된 백업 구성 요소 문서는 일반적으로 전송 가능한 섀도 복사 볼륨을 지원하기 위해 IVssBackupComponents::InitializeForBackup 호출 시 로드할 수 있습니다. 이 경우 기록기-요청자 통신은 아래에 설명된 것과 다소 다릅니다. 자세한 내용은 전송 가능한 섀도 복사 볼륨 가져오기 을 참조하세요.
섀도 복사본 집합에 볼륨을 추가하려면 요청자는 먼저 IVssBackupComponents::SetContext호출하여 섀도 복사 작업에 대한 컨텍스트를 설정해야 합니다. 이 메서드가 호출되지 않으면 VSS_CTX_BACKUP 섀도 복사본의 기본 컨텍스트가 사용됩니다. 섀도 복사본 컨텍스트 설정에 대한 자세한 내용은 섀도 복사본 컨텍스트 구성참조하세요.
백업 전에 설치 완료를 시작하려면 요청자가 IVssBackupComponents::SetBackupState호출해야 합니다. 이렇게 하면 요청자가 작성자에게 다음을 나타냅니다.
- 백업 유형(VSS_BACKUP_TYPE정의)
- 백업에 부팅 가능한 시스템 상태가 포함되는지 여부
- 요청자가 개별 구성 요소 선택을 지원하거나 전체 볼륨을 백업하는지 여부입니다.
백업 및 복원 작업에 참여하는 모든 요청자는 항상 IVssBackupComponents::GatherWriterMetadata호출해야 합니다. 이 메서드는 VSS Identify 이벤트를 생성하여 기록기-요청자 통신을 시작하며, 이에 대한 응답으로 기록기가 메타데이터 문서를 만듭니다.
IVssBackupComponents::GatherWriterMetadata호출하기 전에 요청자는 IVssBackupComponents::EnableWriterClasses, IVssBackupComponents::DisableWriterInstances, 및 IVssBackupComponents::DisableWriterClasses를 사용하여 특정 작성기 및 작성기 클래스를 명시적으로 활성화하거나 비활성화할 수 있습니다(기본적으로 모든 클래스가 활성화됨). IVssBackupComponents::GatherWriterMetadata 호출된 후에는 이러한 호출이 적용되지 않습니다.
IVssBackupComponents::GatherWriterMetadata호출하기 전에 시스템에서 기록기 목록을 가져올 방법이 없으므로 요청자는IVssBackupComponents의 두 번째 인스턴스를 만들고 삭제하여 목록을 가져올 수 있습니다.
IVssBackupComponents::GatherWriterMetadata이 완료된 후에는 IVssBackupComponents::GatherWriterStatus 를 호출할 필요가 없습니다. 호출에서 생성된 식별 이벤트를 처리하지 못하는 기록기는 IVssBackupComponents::GetWriterMetadataCount 및 IVssBackupComponents::GetWriterMetadata(기록기 상태 확인 참조)에서 찾은 메타데이터를 제공하는 기록기 목록에 포함되지 않습니다.
백업 초기화 중 작성기 작업
Identify 이벤트에 대한 응답으로 VSS는 CVssWriter::OnIdentify각 기록기의 가상 처리기 메서드를 호출합니다. 작성기는 CVssWriter::OnIdentify 기본 구현을 재정의하고 IVssCreateWriterMetadata 인터페이스를 사용하여 작성기 메타데이터 문서를 만듭니다.
현재 요청자(예: 시스템 애플리케이션)가 아닌 다른 애플리케이션은 수행자가 처리해야 하는 Identify 이벤트를 생성할 수 있습니다. 또한 라이터가 CVssWriter::OnIdentify 내에서 식별 이벤트를 생성한 애플리케이션을 확인할 수 있는 방법은 없습니다.
이 경우 기록기가 백업 작업을 처리하는 동안 여러 Identify 이벤트를 수신할 수 있으므로 기록기는 CVssWriter::OnIdentify 처리기에서 상태 정보를 설정해서는 안 됩니다.
대신 CVssWriter::OnIdentify 는 일관된 알고리즘을 수행하여 기록기의 메타데이터 문서를 작성해야 합니다. 특히 작성자가 문서를 만든 후에는 요청자나 작성자가 이를 수정할 수 없으므로 더욱 그러합니다. 이 시점부터는 읽기 전용 문서입니다.
즉, 기록기와 연결된 구성 요소의 수와 유형이 각 구성 요소의 일부인 기록기와 연결되어 있으며 기록기가 Identify 이벤트 처리에서 반환된 후에는 백업 또는 복원 작업에서 파일을 명시적으로 제외할 수 없습니다.
VSS에 참여하고 있는 모든 작가는 다음을 수행해야 합니다.
- IVssCreateWriterMetadata::SetRestoreMethod사용하여 작성자에 의해 관리되는 모든 구성 요소에 대한 복원 방법을 나타냅니다.
- IVssCreateWriterMetadata::AddComponent 사용하여 하나 이상의 구성 요소를 추가합니다(구성 요소 사양에 대한 자세한 내용은 작성기별 구성 요소 정의 참조).
작성기는 주어진 구성 요소에 경로, 파일 사양, 재귀 플래그의 조합으로 구성된 파일 집합을 추가하여 백업 또는 복원 작업에 참여할 파일을 지정합니다. 유형에 따라 IVssCreateWriterMetadata::AddFilesToFileGroup, IVssCreateWriterMetadata::AddDatabaseFiles, 또는 IVssCreateWriterMetadata::AddDatabaseLogFiles중 하나를 사용합니다 (구성 요소에 파일 추가 참조).
작성기에는 하나 이상의 빈 구성 요소가 있을 수도 있으며, 이 구성 요소에는 파일이 추가되지 않았습니다. 이는 작성자의 구성 요소를 구성하는 데 매우 유용합니다. (구성 요소 논리적 경로 지정을 참조하세요.)
작성기는 IVssCreateWriterMetadata::AddExcludeFiles 사용하여 파일이 백업에 포함되지 않도록 명시적으로 방지합니다. 이 명시적 제외는 와일드카드 문자를 사용하여 포함할 파일을 지정할 수 있기 때문에 유용합니다(파일 목록 사양 제외참조). 제외 파일 목록이 구성 요소 파일 목록보다 우선합니다.
IVssCreateWriterMetadata::AddAlternateLocationMapping 작성기의 구성 요소 중 하나에 추가된 지정된 파일 집합에대체 위치 매핑을 만드는 데 사용됩니다. 이러한 매핑은 파일의 원래 위치로 복원할 수 없거나 바람직하지 않을 때 파일 복원 중에 사용됩니다. (실제 파일 복원 개요 및 기본이 아닌 백업 및 복원 위치 를 참조하세요.)
백업 파일 집합은 기록기 메타데이터 문서에 지정되므로 나중에 수정할 수 없습니다. 따라서 파일 집합의 정의에 이름 또는 와일드카드 문자를 통해 백업에 필요한 모든 파일이 포함되도록 기록기를 코딩해야 합니다. 여기에는 Identify 이벤트 후에 생성될 수 있는 일부 파일이 포함될 수 있습니다.