VSS 증분 및 차등 백업의 기록기 역할

기록기의 증분 및 차등 백업 참여는 일반적으로 식별 (CVssWriter::OnIdentify), PrepareForBackup (CVssWriter:OnPrepareBackup) 및 PostSnapshot (CVssWriter:OnPostSnapshot) 이벤트를 처리하는 동안 발생합니다. 기록기가 참여하는 방식은 백업 스탬프 및 마지막 수정 시간을 지원하는지 여부와 백업을 실행하는 요청자가 부분 파일 작업을 지원하는지 여부에 따라 형성됩니다.

증분 및 차등 백업 중 이벤트 식별 처리

Identify 이벤트를 처리하는 동안 기록기는 백업 스키마(VSS_BACKUP_SCHEMA) 및 파일 사양 백업 유형(VSS_FILE_SPEC_BACKUP_TYPE) 마스크를 통해 증분 및 차등 백업 작업에 대한 기본 아키텍처를 설정합니다.

작성기는 VSS_BACKUP_SCHEMA 값의 비트 마스크를 만들고 IVssCreateWriterMetadata::SetBackupSchema 메서드에 전달하여 기록기 메타데이터 문서에서 지원하는 작업을 나타냅니다. 이를 통해 작성기는 다음을 지원하는지 여부를 나타낼 수 있습니다.

  • 증분 백업(VSS_BS_INCREMENTAL)
  • 차등 백업(VSS_BS_DIFFERENTIAL)
  • 증분 및 차등 백업을 혼합할 수 없음(VSS_BS_EXCLUSIVE_INCREMENTAL_DIFFERENTIAL)
  • 백업 스탬프를 사용하는 증분 및 차등 백업(VSS_BS_TIMESTAMPED)
  • 파일의 마지막 수정에 대한 정보를 기반으로 증분 및 차등 백업(VSS_BS_LAST_MODIFY)

기록기는 파일 사양 백업 형식 마스크를 사용하여 증분 또는 차등 백업에 파일을 포함하는 방법에 대한 파일 집합 수준 정보를 요청자에게 제공합니다.

기록기는 VSS_FILE_SPEC_BACKUP_TYPE 값의 비트 마스크를 만들고 IVssCreateWriterMetadata::AddDatabaseFiles, IVssCreateWriterMetadata::AddDatabaseLogFiles 또는 IVssCreateWriterMetadata::AddFilesToFileGroup에 전달하여 구성 요소에 파일 집합을 추가할 때 파일 집합의 파일 사양 백업 형식 마스크를 설정할 수 있습니다.

차등 및 증분 백업에 영향을 주는 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

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

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

기본적으로 파일 집합은 파일 사양 백업 형식의 VSS_FSBT_ALL_BACKUP_REQUIRED VSS_FSBT_ALL_SNAPSHOT_REQUIRED | 구성 요소에 추가됩니다. 따라서 기록기 개발자가 기본값을 사용하지 않기로 결정하지 않는 한(다른 파일 사양 백업 형식을 선택하거나, 부분 파일 작업을 사용하거나, 다른 파일을 사용하여) 대부분의 파일 집합의 파일은 일반적으로 백업 미디어에 전체적으로 복사됩니다.

이 시점에서 기록기의 기록기 메타데이터 문서는 요청자가 차등 또는 증분 백업을 시작하는 데 필요한 대부분의 정보로 완전히 채워집니다. 백업을 지원하기 위한 파일 집합 또는 파일 수준 정보의 추가 사양은 PrepareForBackup 이벤트 중에 처리됩니다.

증분 및 차등 백업 중 PrepareForBackup 이벤트 처리

요청자가 실제 백업 작업을 진행하기 전에 기록기는 IVssComponent 인터페이스를 통해 요청자의 백업 구성 요소 문서를 변경하여 증분 또는 차등 백업의 사양을 수정할 수 있습니다.

작성기는 IVssComponent 인터페이스를 사용하므로 일반적으로 PrepareForBackup 이벤트를 처리하는 동안 이러한 준비를 수행합니다.

CVssWriter:OnPrepareBackup에서 기록기는 백업을 위해 일부 파일을 평가하는 방법을 보다 정확하게 지정하고, 백업에 사용해야 하는 메커니즘을 지정하고, 백업 스탬프를 설정할 수 있습니다.

부분 파일

요청자가 지원하는 경우 기록기는 부분 파일 작업을 사용하여 증분 또는 차등 백업을 구현하도록 선택할 수 있습니다. 작성기는 CVssWriter::IsPartialFileSupportEnabled를 호출하여 요청자가 부분 파일 작업을 지원하는지 확인할 수 있습니다.

기록기는 IVssComponent::AddPartialFile 을 사용하여 증분 또는 차등 작업 중에 백업할 선택한 파일의 해당 부분을 나타냅니다. 요청자는 이 사양을 준수해야 하며 항상 파일의 지정된 섹션을 백업해야 합니다. 부분 파일 작업에 대한 자세한 내용은 부분 파일 작업을 참조하세요.

작성기는 IVssComponent::AddPartialFile을 사용하여 이전에 구성 요소 집합 중 하나에 추가되지 않은 파일을 백업에 추가할 수 있습니다(IVssCreateWriterMetadata::AddDatabaseFiles, IVssCreateWriterMetadata::AddDatabaseLogFiles 또는 IVssCreateWriterMetadata::AddFilesToFileGroup). 이러한 방식으로 백업에 추가된 모든 새 파일은 이 백업에 대해 이미 섀도 복사 중인 볼륨에 있어야 합니다.

파일이 부분 파일 작업과 관련된 경우 무시되는 파일 사양 백업 형식을 대체합니다.

차이점이 있는 파일

마지막으로 수정된 백업 스키마(VSS_BS_SCHEMA)를 지원하는 기록기는 증분 또는 차등 백업에 다른 파일을 추가할 수 있습니다.

다른 파일을 지정할 때 작성기는 IVssComponent::AddDifferencedFileByLastModifyTime 을 사용하고 경로, 파일 이름 및 재귀 플래그를 지정합니다. 그러나 이러한 플래그는 구성 요소에 포함된 파일 집합과 일치하지 않아도 됩니다.

실제로 작성기는 이전에 해당 구성 요소 집합 중 하나에 추가되지 않은 파일( IVssCreateWriterMetadata::AddDatabaseFiles, IVssCreateWriterMetadata::AddDatabaseLogFiles 또는 IVssCreateWriterMetadata::AddFilesToFileGroup)을 다른 파일로 백업에 추가할 수 있습니다. 이러한 방식으로 백업에 추가된 모든 새 파일은 이 백업에 대해 이미 섀도 복사 중인 볼륨에 있어야 합니다.

일반적으로 기록기는 기록기의 기록 메커니즘에 따라 차이점이 있는 파일을 추가할 때 마지막 수정 시간을 지정합니다. 지정된 경우 이 마지막 수정 시간은 항상 요청자가 파일을 증분 또는 차등 백업에 포함해야 하는지 확인하는 데 사용해야 합니다.

작성기는 증분 또는 차등 백업 집합에 차이점이 있는 파일을 추가할 때 마지막 수정 시간을 지정하지 않도록 선택할 수 있습니다. 이 경우 요청자는 instance, 이전 백업 로그 또는 파일 시스템 정보에 대한 자체 메커니즘을 자유롭게 사용하여 차이점이 있는 파일을 증분 또는 차등 백업에 포함해야 하는지 여부를 확인할 수 있습니다.

다른 파일의 파일 사양 백업 형식은 무시됩니다.

백업 스탬프

백업 스탬프(VSS_BS_TIMESTAMP)를 지원하는 기록기에는 백업이 마지막으로 발생한 시기에 대한 정보를 저장하기 위한 고유한 프라이빗 형식이 있습니다. 이 정보는 백업하는 동안 작성기에 의해 생성됩니다.

백업 스탬프는 백업 구성 요소 문서에 IVssComponent::SetBackupStamp 메서드에 의해 문자열로 저장됩니다. 백업 스탬프는 IVssComponent의 instance 해당하는 구성 요소(또는 구성 요소 집합)의 모든 파일 집합에 적용됩니다.

요청자가 이전 백업의 백업 스탬프에 액세스할 수 있는 경우 IVssBackupComponents::SetPreviousBackupStamp를 호출하여 기록기에서 사용할 수 있게 됩니다.

그런 다음 작성기는 IVssComponent::GetPreviousBackupStamp를 사용하여 이 타임스탬프를 검사할 수 있습니다.

요청자는 백업 스탬프가 포함된 문자열만 저장하고 반환합니다. 문자열의 형식이나 사용 방법에 대해서는 알 수 없습니다. 작성자만 해당 정보를 가지고 있습니다.

기록기는 IVssComponent::GetPreviousBackupStamp 를 호출한 후 IVssComponent::SetBackupStamp를 사용하여 현재 백업 스탬프를 업데이트하도록 선택할 수 있으므로 현재 증분 또는 차등 백업 작업의 날짜를 자체 형식으로 기록합니다.