다음을 통해 공유


백업 초기화 개요

이 백업 단계는 기록기와 요청자를 모두 초기화하고 내부 데이터 구조를 채우고 백업을 지정하며 IVssBackupComponents::GatherWriterMetadata에 대한 필수 호출을 통해 기록기/요청자 통신을 설정합니다. 자세한 내용은 VSS에서 백업 처리 개요를 참조하세요.

다음 표에서는 백업 초기화에 필요한 작업 및 이벤트의 시퀀스를 보여 줍니다.

요청자 작업 이벤트 작성기 작업
IVssBackupComponents 인터페이스를 만들고 초기화하여 백업을 관리하고(CreateVssBackupComponents, IVssBackupComponents::InitializeForBackup 참조) 필요에 따라 시스템에서 기록기를 사용하거나 사용하지 않도록 설정합니다. 없음 없음
필요에 따라 섀도 복사본 작업에 대한 컨텍스트를 설정하고 필요에 따라 시스템에서 지원하는 공급자 및 섀도 복사본에 대해 쿼리합니다( IVssBackupComponents::SetContext, IVssBackupComponents::Query 참조). 없음 없음
요청자는 백업 및 복원 작업 처리에 대한 추가 정보를 제공할 수 있습니다( IVssBackupComponents::SetBackupState 참조). 없음 없음
기록기와 비동기 접촉을 시작합니다( IVssBackupComponents::GatherWriterMetadata 참조). Identify 기록기 메타데이터 문서를 만듭니다( 기록기 메타데이터 문서 작업, CVssWriter::OnIdentify, IVsCreateWriterMetadata 참조)

 

백업 초기화 중 요청자 작업

IVssBackupComponents 개체는 하나의 백업에만 사용할 수 있습니다. 따라서 요청자는 IVssBackupComponents 인터페이스 해제를 포함하여 백업의 끝까지 진행해야 합니다. 백업을 조기에 종료해야 하는 경우 요청자는 IVssBackupComponents::AbortBackup 을 호출한 다음 IVssBackupComponents 개체를 해제해야 합니다(자세한 내용은 VSS 작업 중단 참조). IVssBackupComponents 인터페이스를 다시 시작하지 마세요.

일반적으로 요청자의 백업 구성 요소 문서는 비어 있는 것으로 초기화됩니다. 저장된 백업 구성 요소 문서는 IVssBackupComponents::InitializeForBackup 이 호출될 때 로드할 수 있으며, 일반적으로 전송 가능한 섀도 복사 볼륨을 지원합니다. 이 경우 기록기-요청자 통신은 아래에 설명된 통신과 다소 다릅니다. 자세한 내용은 전송 가능한 섀도 복사 볼륨 가져오기 를 참조하세요.

섀도 복사본 집합에 볼륨을 추가하려면 요청자가 먼저 IVssBackupComponents::SetContext를 호출하여 섀도 복사 작업의 컨텍스트를 설정해야 합니다. 이 메서드를 호출하지 않으면 VSS_CTX_BACKUP 섀도 복사본의 기본 컨텍스트가 사용됩니다. 섀도 복사본 컨텍스트 설정에 대한 자세한 내용은 섀도 복사본 컨텍스트 구성을 참조하세요.

백업 전에 설치 완료를 시작하려면 요청자가 IVssBackupComponents::SetBackupState를 호출해야 합니다. 이렇게 하면 요청자가 작성자에게 다음을 나타냅니다.

  • 백업 유형( VSS_BACKUP_TYPE 정의됨)
  • 백업에 부팅 가능한 시스템 상태가 포함되는지 여부
  • 요청자가 개별 구성 요소 선택을 지원하거나 전체 볼륨을 백업하는지 여부입니다.

백업 및 복원 작업에 참여하는 모든 요청자는 항상 IVssBackupComponents::GatherWriterMetadata를 호출해야 합니다. 이 메서드는 기록기가 메타데이터 문서를 만드는 것에 대한 응답으로 VSS Identify 이벤트를 생성하여 기록기-요청자 통신을 시작합니다.

IVssBackupComponents::GatherWriterMetadata를 호출하기 전에 요청자는 IVssBackupComponents::EnableWriterClasses, IVssBackupComponents::D isableWriterInstances 및 IVssBackupComponents::D isableWriterClasses를 사용하여 특정 작성기 및 작성기 클래스를 명시적으로 사용하거나 사용하지 않도록 설정할 수 있습니다(기본적으로 모든 클래스는 사용 가능). IVssBackupComponents::GatherWriterMetadata가 호출된 후에는 이러한 호출이 적용되지 않습니다.

IVssBackupComponents::GatherWriterMetadata를 호출하기 전에 시스템에서 기록기 목록을 가져올 방법이 없으므로 요청자는 IVssBackupComponents의 두 번째 instance 만들어 삭제하여 목록을 가져오는 것을 고려할 수 있습니다.

IVssBackupComponents::GatherWriterMetadata가 완료된 후 IVssBackupComponents::GatherWriterStatus를 호출할 필요가 없습니다. 호출에 의해 생성된 식별 이벤트를 처리하지 못하는 기록기는 IVssBackupComponents::GetWriterMetadataCount 및 IVssBackupComponents::GetWriterMetadata에서 찾은 메타데이터를 제공하는 기록기 목록의 일부가 아닙니다(기록기 상태 확인 참조).

백업 초기화 중 기록기 작업

Identify 이벤트에 대한 응답으로 VSS는 각 작성기의 가상 처리기 메서드인 CVssWriter::OnIdentify를 호출합니다. 작성기는 CVssWriter::OnIdentify 의 기본 구현을 재정의하고 IVssCreateWriterMetadata 인터페이스를 사용하여 기록기 메타데이터 문서를 만듭니다.

현재 요청자 이외의 애플리케이션(instance 시스템 애플리케이션의 경우)은 기록기에서 처리해야 하는 식별 이벤트를 생성할 수 있습니다. 또한 작성기가 CVssWriter::OnIdentify 내에서 Identify 이벤트를 생성한 애플리케이션을 확인할 수 있는 방법은 없습니다.

이 경우 기록기가 백업 작업을 처리하는 동안 여러 Identify 이벤트를 수신할 수 있으므로 작성기는 CVssWriter::OnIdentify 처리기에서 상태 정보를 설정해서는 안 됩니다.

대신 CVssWriter::OnIdentify 는 작성기의 기록기 메타데이터 문서를 만드는 일관된 알고리즘을 수행해야 합니다. 특히 작성자가 문서를 만든 후에는 요청자나 작성자가 수정할 수 없으므로 더욱 그러합니다. 이 시점부터는 읽기 전용 문서입니다.

즉, 기록기와 연결된 구성 요소의 수와 유형, 각 구성 요소 의 일부인 파일 및 백업 또는 복원 작업에서 파일의 명시적 제외는 기록기가 Identify 이벤트 처리에서 반환된 후에 변경할 수 없습니다.

VSS에 참여하는 모든 작성기는 다음을 수행해야 합니다.

  1. IVssCreateWriterMetadata::SetRestoreMethod를 사용하여 기록기에서 관리하는 모든 구성 요소에 대한 복원 방법을 나타냅니다.
  2. IVssCreateWriterMetadata::AddComponent를 사용하여 하나 이상의 구성 요소를 추가합니다(구성 요소 사양에 대한 자세한 내용은 작성기별 구성 요소 정의 참조).

작성기는 형식에 따라 IVssCreateWriterMetadata::AddFilesToFileGroup, IVssCreateWriterMetadata::AddDatabaseFiles 또는 IVssCreateWriterMetadata::AddDatabaseLogFiles를 사용하여 지정된 구성 요소에 경로, 파일 사양 및 재귀 플래그의 조합인 파일 집합을 추가하여 백업 또는 복원 작업에 참여할 파일을 나타냅니다(구성 요소에 파일 추가 참조).

작성기에는 파일이 추가되지 않은 하나 이상의 빈 구성 요소인 구성 요소가 있을 수도 있습니다. 이는 작성자의 구성 요소를 구성하는 데 매우 유용합니다. ( 구성 요소의 논리적 경로 지정을 참조하세요.)

작성기는 IVssCreateWriterMetadata::AddExcludeFiles를 사용하여 파일이 백업에 포함되지 않도록 명시적으로 방지합니다. 이 명시적 제외는 와일드카드 문자를 사용하여 포함할 파일을 지정할 수 있기 때문에 유용합니다( 파일 목록 사양 제외 참조). 제외 파일 목록이 구성 요소 파일 목록보다 우선합니다.

IVssCreateWriterMetadata::AddAlternateLocationMapping 은 기록기의 구성 요소 중 하나에 추가된 지정된 파일 집합에 대한 대체 위치 매핑 을 만드는 데 사용됩니다. 이러한 매핑은 파일의 원래 위치로 복원할 수 없거나 바람직하지 않을 때 파일 복원 중에 사용됩니다. ( 실제 파일 복원기본이 아닌 백업 및 복원 위치 개요를 참조하세요.)

백업 파일 집합은 기록기 메타데이터 문서에 지정되므로 나중에 수정할 수 없습니다. 따라서 파일 집합의 정의에 이름 또는 와일드카드 문자를 통해 백업에 필요한 모든 파일이 포함되도록 기록기를 코딩해야 합니다. 이는 Identify 이벤트 이후에 생성될 수 있는 일부 파일을 포함할 수 있습니다.