부분 파일 작업
파일의 섹션만 백업하고 복원하는 것이 유용한 경우도 있습니다. VSS는 부분 파일 메커니즘을 제공하며, 요청자가 지원하는 경우 기록기에서 부분 파일 백업 및 복원을 지정할 수 있습니다.
부분 파일 작업은 대용량 파일을 유지 관리하는 기록기에 자주 사용되며, 그 중 일부만 백업 작업 간에 변경됩니다. 이 경우 백업 미디어로 변경된 섹션만 복사하는 것이 유용한 경우가 많습니다. 이러한 이유로 부분 파일 작업은 일반적으로 증분 백업 및 복원 작업을 지원하는 데 사용되지만 단독으로는 사용되지 않습니다.
기록기가 부분 파일 작업을 구현하려는 경우 CVssWriter::IsPartialFileSupportEnabled 사용하여 작업 중인 요청자가 작업을 지원하는지 여부를 확인합니다.
요청자가 부분 파일 작업을 지원하고 파일을 관리하는 구성 요소(또는 파일이 포함된 구성 요소 집합을 정의하는 구성 요소)를 Backup 구성 요소 문서에 추가하는 경우 기록기는 IVsComponent:를 호출하여 저장할 파일의 섹션(일반적으로 PrepareForBackup 또는 PostSnapshot 이벤트를 처리하는 동안)을 나타냅니다. AddPartialFile.
기록기는 경로 및 파일 이름 외에도 범위와 선택적인 메타데이터 정보를 IVssComponent::AddPartialFile에 제공합니다.
범위 정보는 다음 중 하나를 포함하는 문자열로 제공됩니다.
백업할 파일의 오프셋 쌍과 섹션의 길이(모두 바이트 단위), 콜론으로 구분되는 오프셋과 길이, 쉼표로 구분되는 각 쌍 (예: Offset1**:Length1,** Offset2**:**Length2).
각 값은 각각 바이트 오프셋과 길이를 지정하는 64비트 정수(16진수 또는 10진수 형식)입니다.
다음을 포함하는 이진 범위 파일의 현재 시스템에 있는 파일 이름을 포함한 전체 경로입니다.
- 파일에 포함된 고유 파일 범위의 숫자(64비트 정수로 표시됨)
- 각 범위는 64비트 정수 쌍으로 표현됩니다. 쌍의 첫 번째 멤버는 백업되는 파일의 오프셋(바이트)이고, 두 번째 멤버는 백업할 데이터의 길이(바이트)입니다.
기록기가 범위 파일을 사용하여 부분 파일 작업을 지정하는 경우 요청자는 이 파일이 백업되거나(파일이 반드시 기본 백업 집합의 일부가 아니더라도) 백업 미디어에 다른 방식으로 범위 정보가 보존되도록 보장해야 합니다. 범위 파일의 정보가 백업되지 않으면 부분적으로 백업된 파일을 복원할 수 없습니다.
작성기는 메타데이터를 포함하는 문자열을 추가할 수도 있습니다. 이 메타데이터는 작성자가 향후 복원을 유효성 검사할 수 있도록 작성자별 형식일 수 있습니다.
이 정보를 사용하면 지원 요청자가 부분 파일 백업을 수행할 수 있습니다.
예를 들어, 헤더(바이트 64-512)에 레코드 수 및 기타 자주 업데이트되는 정보가 포함되어 있으며, 가장 최근 데이터는 파일의 마지막 65536바이트, 즉 바이트 0x1239E8577A부터 0x1239E7577A에서 찾을 수 있는 대용량 파일을 고려해 보십시오.
작성기는 범위 목록을 "64:448,0x1239E8577A:65536"로 지정할 수 있습니다.
복원 시 실제로 복원 작업을 수행하기 전에 요청자는 파일에서 부분 파일 지원이 필요한지 확인해야 합니다.
이를 위해 요청자는 Backup Components Document에 저장된 구성 요소를 가진 작성기들을 먼저 순회하며, IVssBackupComponents::GetWriterComponentsCount과 IVssBackupComponents::GetWriterComponents을 사용합니다.
IVssBackupComponents::GetWriterComponents 인터페이스는 IVssWriterComponentsExt 인터페이스의 인스턴스를 반환하는 데 사용됩니다. IVssWriterComponentsExt::GetComponent 및 IVssWriterComponentsExt::GetComponentCount제공합니다. 그러면 요청자가 IVssComponent 인스턴스를 가져올 수 있습니다.
이렇게 하면 요청자가 IVssComponent::GetPartialFileCount및IVssComponent를 사용하여 복원에 참여할 부분적으로 백업된 파일에 대한 정보를 가져올 수 있습니다. ::GetPartialFile은 파일을 관리하는 구성 요소(또는 파일이 포함된 구성 요소 집합을 정의하는 구성 요소)에 해당하는 IVssComponent 인스턴스에 대해.
부분 파일 작업이 범위 파일에 의해 제어된 경우 데이터를 디스크에 다시 복사하기 전에 해당 파일을 복원해야 합니다. 요청자가 범위 파일을 디스크의 새 위치로 다시 복사해야 할 수 있습니다. 이 경우 IVssBackupComponents::SetRangesFilePath통해 수행되었음을 나타냅니다.
그런 다음 요청자는 디스크에 이미 있는 복원 대상의 적절한 위치에 데이터를 복사합니다.
기록기는 PostRestore 이벤트를 처리하는 동안, IVssComponent::GetPartialFile에 의해 표시된 파일에 대해 IVssComponent::GetFileRestoreStatus 을 검사하여 부분 파일 작업이 성공했는지 확인합니다. 작성기는 항상 백업 구성 요소 문서에 포함된 모든 메타데이터 및 오프셋 정보를 사용하여 이 복원의 정확성을 확인해야 합니다.
요청자가 범위 파일을 새 위치로 복원해야 하는 경우 VSS는 IVssComponent::GetPartialFile 반환된 경로가 올바르도록 이 정보를 업데이트합니다.