VSS 증분 및 차등 백업의 요청자 역할

증분 또는 차등 백업 작업을 지원하려면 요청자가 다음을 수행해야 합니다.

  1. 사용 가능한 기록기 지원 수준을 결정 합니다(IVssBackupComponents::GetWriterMetadata 를 사용하여 기록기 메타데이터 문서의 정보에 액세스). 특히 지원되는 백업 스키마를 결정합니다(VSS_BACKUP_SCHEMA).
  2. 적절한 백업 상태를 설정합니다.
  3. 증분 또는 차등 백업에 대한 파일 및 파일 집합 수준 사양을 가져옵니다.
  4. 백업을 수행합니다.

증분 및 차등 지원 및 구성에 대한 요청자 결정

요청자는 증분 또는 차등 백업에 포함할 구성 요소를 선택하거나 자체 상태를 설정하기 전에 기록기 지원에 대한 정보를 가져와야 합니다.

작성기 지원 확인

요청자는 지정된 작성기가 IVssExamineWriterMetadata::GetBackupSchema 메서드를 사용하여 기록기의 백업 스키마 마스크를 검색하여 VSS 증분 또는 차등 백업을 지원하는지 여부를 결정합니다.

VSS 증분 또는 차등 기술을 지원하는 기록기의 백업 스키마 마스크에는 VSS_BS_INCREMENTAL 또는 VSS_BS_DIFFERENTIAL 또는 둘 다 포함됩니다. 또한 작성자는 VSS_BS_EXCLUSIVE_INCREMENTAL_DIFFERENTIAL 플래그에 대한 참여에 대한 제한을 나타낼 수도 있습니다. (백업 스키마에 대한 자세한 내용은 VSS_BACKUP_SCHEMA 참조하세요.)

요청자 백업 상태 설정

요청자는 PrepareForBackup 이벤트를 생성하기 전에 IVssBackupComponents::SetBackupState 메서드를 사용하여 백업 유형을 VSS_BT_INCREMENTAL 또는 VSS_BT_DIFFERENTIAL 설정하여 백업이 증분 또는 차등 백업임을 나타냅니다.

IVssBackupComponents::SetBackupState 메서드는 요청자가 특정 증분 백업 및 복원 작업을 구현하는 데 자주 사용되는 부분 파일 지원을 제공하는지 여부를 나타내는 데도 사용됩니다.

증분 및 차등 백업에 대한 기록기 사양 가져오기

각 기록기의 기록기 메타데이터 문서에 포함된 파일 집합 수준 파일 백업 사양 정보(VSS_FILE_SPEC_BACKUP_TYPE)는 IVssBackupComponents::GatherWriterMetadata를 성공적으로 반환한 후 검사할 수 있습니다.

그러나 기록기는 PostSnapshot 이벤트를 성공적으로 처리할 때까지 다른 파일을 추가하거나 부분 파일 지원을 요청할 수 있습니다.

파일 및 부분 파일 지원 사양이 파일 사양 백업 유형을 재정의할 수 있으므로 요청자는 IVssBackupComponents::P repareForBackup을 성공적으로 반환할 때까지 증분 및 차등 백업에 대한 모든 기록기 사양에 대한 전체 분석을 연기할 수 있습니다.

파일 백업 사양 정보 가져오기

파일 집합 수준 파일 백업 사양 정보(VSS_FILE_SPEC_BACKUP_TYPE)는 각 기록기의 기록기 메타데이터 문서에 포함되며 IVssBackupComponents::GatherWriterMetadata가 성공적으로 반환된 직후에 검사할 수 있습니다.

요청자는 구성 요소가 명시적으로 포함되었는지 암시적으로 포함되었는지 여부에 관계없이 증분 또는 차등 백업에 포함할 각 기록기 구성 요소의 모든 파일 집합에 대한 파일 백업 사양 마스크(VSS_FILE_SPEC_BACKUP_TYPE)를 가져와야 합니다.

요청자는 IVssBackupComponents::GetWriterComponentsCount 및 IVssBackupComponents::GetWriterComponents를 사용하여 쿼리해야 하는 기록기 메타데이터 문서를 결정할 수 있습니다. IVssBackupComponents::GetWriterComponents에서 반환된 IVssWriterComponentsExt 인터페이스의 인스턴스는 IVssWriterComponentsExt::GetWriterInfo 메서드를 통해 작성기 정보를 제공합니다.

요청자는 IVssExamineWriterMetadata::GetComponent를 사용하여 지정된 작성기에서 관리하는 포함된 구성 요소에 해당하는 IVssWMComponent 인터페이스의 인스턴스를 통해 구성 요소 정보를 가져옵니다.

IVssWMComponent 인터페이스에 해당하는 구성 요소에서 관리하는 파일 집합에 대한 정보는 IVssWMComponent::GetFile, IVssWMComponent::GetDatabaseFile 또는 IVssWMComponent::GetDatabaseLogFile(해당)에 대한 호출을 통해 가져옵니다.

이러한 호출은 각 구성 요소의 파일 집합에 대해 IVssWMFiledesc 인터페이스의 인스턴스를 반환할 수 있습니다.

파일 집합의 파일 사양 백업 형식은 IVssWMFiledesc::GetBackupTypeMask를 호출하여 가져옵니다.

부분 파일 및 차이점이 있는 파일 정보 가져오기

요청자는 IVssComponent 인터페이스를 통해 부분 파일 및 차이점이 있는 파일 정보를 가져옵니다.

요청자는 IVssBackupComponents::GetWriterComponentsCount 및 IVssBackupComponents::GetWriterComponents를 사용하여 백업에 포함된 모든 기록기를 반복할 수 있습니다.

IVssBackupComponents::GetWriterComponents에서 반환된 IVssWriterComponentsExt 인터페이스의 인스턴스는 IVssWriterComponentsExt::GetComponent 및 IVssWriterComponentsExt::GetComponentCount 메서드를 통해 지정된 작성기의 명시적으로 포함된 구성 요소에 해당하는 IVssComponent 인터페이스의 모든 인스턴스에 대한 액세스를 제공합니다.

요청자는 스키마가 증분 또는 차등 백업을 지원하는 모든 기록기, 즉 IVssExamineWriterMetadata::GetBackupSchema에서 반환된 백업 스키마 마스크가 백업 형식이 VSS_BT_INCREMENTAL 때 VSS_BS_INCREMENTAL 포함하거나 백업 유형이 VSS_BS_DIFFERENTIAL 때 VSS_BS_DIFFERENTIAL 모든 기록기에 대해 IVssComponent의 모든 인스턴스를 거쳐야 합니다.

부분 파일 정보는 IVssComponent::GetPartialFileCountIVssComponent::GetPartialFile 을 호출하여 가져옵니다( 부분 파일 작업 참조).

파일의 마지막 수정 데이터( IVssExamineWriterMetadata::GetBackupSchema에서 반환된 백업 스키마 마스크에 VSS_BS_LAST_MODIFY 포함)를 기반으로 백업 작업을 지원하는 기록기의 경우 IVssComponent::GetDifferencedFilesCountIVssComponent::GetDifferencedFile를 호출하여 파일 정보가 달라집니다.

차이점이 있는 파일은 새 파일일 수 있습니다. 즉, 현재 지정된 기록기의 기록기 메타데이터 문서에 있는 파일 집합의 멤버가 아닌 파일입니다.

요청자는 부분 파일 작업과 차이점이 있는 파일 모두에 포함된 파일을 찾을 수 없습니다. 요청자가 이러한 상황이 발생하면 기록기 오류를 반환하고 기록해야 합니다.

요청자는 문제가 있는 작성자의 파일 백업을 계속하도록 선택할 수 있지만, 이 경우 차이점이 있는 파일 정보에 있는 사양에 따라 백업해야 합니다.

증분 또는 차등 백업 구현

백업을 구현하기 전에 요청자에게는 증분 또는 차등 백업을 지원하는 기록기, 요청된 모든 부분 파일 작업, 모든 차이점이 있는 파일 및 다른 모든 파일의 파일 사양 백업 형식에 대한 정보가 있어야 합니다.

지원되지 않는 기록기

스키마가 증분 또는 차등 백업을 지원하지 않는 기록기(IVssExamineWriterMetadata::GetBackupSchema에서 반환된 백업 스키마 마스크가 있는 기록기에는 백업 유형이 VSS_BT_INCREMENTAL VSS_BS_INCREMENTAL 포함되거나 백업 유형이 VSS_BS_DIFFERENTIAL 때 VSS_BS_DIFFERENTIAL 포함되지 않음)는 증분 또는 차등 백업 작업에 대한 직접적인 지원을 제공할 수 없습니다.

이는 기록기 데이터가 증분 또는 차등 백업 작업에 포함되지 않는다는 것을 의미하지는 않습니다. 그러나 수행할 작업을 선택하는 것은 요청자의 재량에 따라 결정됩니다. 요청자는 다음 중 어떤 작업을 수행할 수 있습니다.

  • 지원되지 않는 기록기에 속한 파일을 백업하지 않음(사용자에게 명확하게 표시)
  • 지원되지 않는 기록기의 모든 파일 백업
  • 파일 시스템 데이터 및 요청자의 자체 기록 로그를 사용하여 증분 백업을 수행합니다.

마지막 대안은 매우 세심하게 사용해야 하며, 관련 작성자가 VSS 메커니즘에 관계없이 데이터의 증분 또는 차등 백업 및 복원을 지원할 수 있는지를 요청자가 이해하는 경우에만 사용해야 합니다.

지원 작성기

요청자는 기록기의 차이점이 있는 모든 파일을 순서대로 처리한 다음 부분 파일 요청을 처리한 다음 파일 사양 백업 유형(VSS_FILE_SPEC_BACKUP_TYPE)에 따라 나머지 파일을 백업해야 합니다.

  1. 차이점이 있는 파일 백업:

    마지막 수정 데이터를 기반으로 백업 작업을 지원하는 기록기( IVssExamineWriterMetadata::GetBackupSchema에서 반환된 백업 스키마 마스크가 있는 기록기, VSS_BS_LAST_MODIFY 포함)의 경우 요청자는 IVssComponent::GetDifferencedFile 에서 반환된 경로, 파일 사양 및 재귀 플래그 정보를 사용하여 증분 백업 또는 복원을 위한 후보로 파일 목록을 생성합니다.

    IVssComponent::GetDifferencedFile 은 마지막 수정 시간을 반환할 수도 있습니다( FILETIME 구조로 표시됨).

    기록기에서 제공한 마지막 수정 시간이 0이 아닌 경우 요청자는 파일을 증분 또는 차등 백업에 포함해야 하는지 여부를 결정하기 위해 파일 시스템 정보 또는 요청자의 저장된 데이터가 아닌 기본으로 사용합니다.

    예를 들어 기록기에서 반환한 파일의 마지막 수정 시간이 다음과 같은 경우

    • 마지막 전체 백업 후에는 파일이 증분 및 차등 백업 모두에 포함되어야 합니다.
    • 마지막 전체 백업 이후에 마지막 증분 백업 전에 파일을 증분 백업 작업에 포함해야 하지만 차등 백업에는 포함되지 않아야 합니다.

    기록기에서 제공한 마지막 수정 시간이 0인 경우 요청자는 파일 시스템 정보와 저장된 자체 데이터를 사용하여 차이점이 있는 파일의 수정 시간을 결정해야 합니다.

  2. 부분 파일 작업 사용:

    기록기가 부분 파일 작업을 사용하여 파일을 백업하도록 요청한 경우 요청자는 파일 오프셋 정보를 사용하여 표시된 파일 세그먼트를 백업 미디어에 저장합니다. 부분 파일 작업에 대한 자세한 내용은 부분 파일 작업을 참조하세요.

    위에서 설명한 것처럼 기록기는 파일을 구분된 파일로 지정하고 부분 파일 작업의 참가자로 지정해서는 안 됩니다. 요청자가 이러한 상황이 발생하면 기록기 오류를 반환하고 기록해야 합니다.

    요청자는 문제가 있는 작성자의 파일 백업을 계속하도록 선택할 수 있지만, 이 경우 차이점이 있는 파일 정보에 있는 사양에 따라 백업해야 합니다.

  3. 파일 사양 백업 유형 작업:

    변경된 모든 파일과 부분 파일 작업을 처리한 후 요청자는 이제 파일 사양 백업 유형(VSS_FILE_SPEC_BACKUP_TYPE)을 기준으로 백업 집합의 나머지 모든 파일을 처리합니다.

    차등 및 증분 백업에 영향을 주는 VSS_FILE_SPEC_BACKUP_TYPE 열거형의 세 가지 "백업 필요" 값이 있습니다.

    • VSS_FSBT_ALL_BACKUP_REQUIRED
    • VSS_FSBT_INCREMENTAL_BACKUP_REQUIRED
    • VSS_FSBT_DIFFERENTIAL_BACKUP_REQUIRED

    세 가지 "섀도 복사본 필요" 값이 있습니다.

    • VSS_FSBT_ALL_SNAPSHOT_REQUIRED
    • VSS_FSBT_INCREMENTAL_SNAPSHOT_REQUIRED
    • VSS_FSBT_DIFFERENTIAL_SNAPSHOT_REQUIRED

    "섀도 복사본 필요"의 파일 사양 백업 형식으로 태그가 지정된 파일 집합은 증분, 차등 또는 ALL(증분 및 차등 작업 모두 포함) 백업 작업을 수행할 때 요청자가 섀도 복사본에서 데이터를 복사해야 함을 나타냅니다.

    INCREMENTAL, 차등 또는 모든 백업 작업에 적용되는 "백업 필요" 플래그는 기록기에서 백업 작업을 복원한 후 현재 버전의 파일 집합 복사본을 사용할 수 있을 것으로 예상한다는 것을 나타냅니다. 일반적으로 파일 집합에 "백업 필요"로 태그가 지정된 경우 요청자는 백업 또는 수정이 마지막으로 발생한 시기에 관계없이 증분 또는 차등 백업 중에 모든 멤버를 백업 미디어에 복사합니다.

    기본적으로 파일 집합은 파일 사양 백업 형식의 VSS_FSBT_ALL_BACKUP_REQUIRED | 구성 요소에 추가됩니다. VSS_FSBT_ALL_SNAPSHOT_REQUIRED. 따라서 기록기가 파일 사양 백업 형식을 명시적으로 설정하지 않는 한 요청자는 부분 파일 작업으로 처리되지 않는 파일을 복사하거나 대부분의 파일 집합에서 지정된 차이점이 있는 파일을 백업 미디어에 복사해야 합니다.

백업 스탬프

백업 스탬프(VSS_BS_TIMESTAMP)를 지원하는 작성자는 향후 증분 및 차등 백업 및 복원 작업을 지원하는 데 사용할 백업 스탬프 정보를 생성하도록 선택할 수 있습니다.

백업 스탬프 정보를 포함하는 문자열에 포함된 형식 및 정보는 해당 정보를 생성하는 작성기에 비공개입니다. 요청자는 이 정보를 처리하는 방법을 모릅니다.

지원 작성기는 IVssComponent::SetBackupStamp 메서드를 사용하여 백업 구성 요소 문서에 백업 스탬프를 문자열로 저장합니다.

백업 스탬프 정보를 처리하는 요청자의 역할은(있는 경우) 향후 백업 또는 복원 작업에서 IVssBackupComponents::SetPreviousBackupStamp 를 호출하여 작성자가 사용할 수 있도록 하는 것입니다.