다음을 통해 공유


구성 요소 속성 선택 및 작업

암시적으로 선택된 구성 요소를 사용하려면 Backup 구성 요소 문서와 기록기 메타데이터 문서 모두에 액세스해야 합니다.

다음과 같은 두 가지 이유가 있습니다.

  • 백업 구성 요소 문서에 저장된 구성 요소 데이터(IVssComponent 인터페이스로 표시됨)에는 구성 요소 파일 집합 정보(파일 사양, 경로 및 재귀 플래그)에 대한 액세스 권한이 없습니다. (백업 구성 요소 문서 사용하는참조하세요.)
  • 백업 중에 백업 구성 요소 문서에 명시적으로포함된 구성 요소만 해당 정보가 백업 구성 요소 문서에 직접 저장됩니다. 요청자와 작성자는 IVssComponent 인터페이스를 통해 사용할 수 있는 정보를 논리 경로 정보 및 기록기 메타데이터 문서와 함께 사용하여 암시적으로 포함된구성 요소에 대한 정보를 가져오고 속성을 설정해야.

구성 요소 논리적 경로에 설명된 "MyWriter" 사례는 백업에 대한 선택 가능성을 설명하는 데 사용할 수 있습니다.

구성 요소 이름 논리 경로 백업에 대해 선택 가능 복원을 위해 선택 가능 명시적으로 포함됨
"실행 파일" "" N N Y
"ConfigFiles" 실행 파일 N N Y
라이선스 정보 "" Y N Y
"보안" "" Y N Y
"UserInfo" "보안" N N N
"인증서" "보안" N N N
작가 데이터 "" Y Y Y
Set1 작가 데이터 N Y N
"Jan" "writerData\Set1" N N N
"12월" "writerData\Set1" N N N
"Set2" 작가데이터 N Y N
"Jan" "writerData\Set2" N N N
"12월" "writerData\Set2" N N N
"쿼리" "writerData\QueryLogs" N N N
"사용량" 작가 데이터 Y Y N
"Jan" "writerData\Usage" N N N
"12월" "writerData\사용" N N N

 

백업 집합에 암시적으로 포함된 구성 요소

백업 중에 기록자의 기록자 메타데이터 문서(IVssBackupComponents::GetWriterMetadata참조)를 검사할 때, 요청자는 모든 구성 요소 목록을 포함하여,논리 경로 및 파일 집합 정보를 저장해야 합니다.

포함된 모든 구성 요소에 대한 파일 목록을 확인하려면 파일 집합 및 제외된 파일 정보가 필요합니다.

백업 상위 항목에 선택할 수 없는 백업 구성 요소와,, ,,구성 요소 집합을 정의하지 않는 선택 가능한 백업 구성 요소의 경우, 하위 구성 요소를 정의하지 않으므로 파일 집합 및 제외된 파일 정보만으로 모든 구성 요소의 백업 후보를 식별할 수 있습니다.

구성 요소 집합을 정의하는 백업 구성 요소로 명시적으로 포함된 경우, 정의하는 구성 요소와 모든 하위 구성 요소에 대해 파일 집합 및 제외할 파일 정보가 모두 백업할 파일을 선택하는 데 사용되어야 합니다.

즉, 구성 요소 "실행 파일", "ConfigFiles" 및 "LicenseInfo"에 대한 백업 집합은 IVssWMComponent 인터페이스의 인스턴스를 사용하여 이러한 구성 요소에 대한 기록기 메타데이터만 검사해야만 찾을 수 있습니다.

그러나 writerData가 백업에 명시적으로 포함된 경우, IVssWMComponent 인터페이스의 인스턴스와 "Set1", "Jan"(논리 경로 "writerData\Set1"), "Dec"(논리 경로 "writerData\Set1"), "Set2", "Jan"(논리 경로 "writerData\Set2"), "Dec"(논리 경로 "writerData\Set2"), "Query", "Usage", "Jan"(논리 경로 "writerData\Usage"), "Dec"(논리 경로 "writerData\Usage")에 대한 인스턴스를 검사해야 합니다.

이렇게 하려면 요청자는 먼저 구성 요소 "writerData"(논리 경로 "")를 선택할 수 있는지 식별해야 합니다. 그런 다음 기록기에서 관리하는 다른 모든 구성 요소를 검사하여 논리 경로의 첫 번째 요소가 "writerData"인지 확인해야 합니다. 논리 경로의 선행 멤버로 "writerData"가 있는 구성 요소는 "writerData"의 하위 구성 요소로 식별되며 명시적으로 선택될 때 암시적으로 선택됩니다.

실제로 논리 경로의 선행 멤버로 "LicenseInfo"가 없는 구성 요소와 "LicenseInfo"에 하위 구성 요소가 없는지 확인하려면 유사한 검사를 수행해야 합니다.

VSS에서 이 메커니즘이 복잡하기 때문에 많은 요청자 작성자는 명시적으로 추가된 구성 요소와 암시적으로 추가된 구성 요소 모두에 대한 구성 요소 및 백업 세트 정보를 저장하기 위한 자체 구조를 만드는 것이 유용할 수 있습니다.

암시적으로 포함된 구성 요소의 속성

복원 및 백업 작업 중에 IVssComponentIVssBackupComponents 인터페이스의 인스턴스는 구성 요소에 대한 정보를 검색하고 구성 요소 속성을 설정하거나 변경하는 데 사용됩니다. 그러나 명시적으로 포함된 구성 요소에만 IVssComponent 인터페이스의 인스턴스가 있거나 IVssBackupComponents 인터페이스에 액세스할 수 있습니다.

일부 속성은 구성 요소 집합 전반에 걸쳐 적용됩니다. 이러한 속성에는 다음이 포함됩니다.

  • 백업 및 복원 상태:

IVssBackupComponents::SetBackupSucceeded
IVssComponent::GetBackupSucceeded
IVssBackupComponents::SetFileRestoreStatus
IVssComponent::GetFileRestoreStatus

  • 백업 및 복원 옵션:

IVssBackupComponents::SetBackupOptions
IVssComponent::GetBackupOptions
IVssBackupComponents::SetRestoreOptions
IVssComponent::GetRestoreOptions

  • 오류 메시지:

IVssComponent::SetPostRestoreFailureMsg
IVssComponent::SetPreRestoreFailureMsg
IVssComponent::SetPostRestoreFailureMsg
IVssComponent::SetPreRestoreFailureMsg

  • 복원 대상:

IVssComponent::SetRestoreTarget
IVssComponent::GetRestoreTarget

  • 백업 스탬프:

IVssComponent::SetBackupStamp
IVssComponent::GetBackupStamp

  • 추가 메타데이터:

IVssComponent::SetRestoreMetadata
IVssComponent::GetRestoreMetadata
IVssComponent::SetBackupMetadata
IVssComponent::GetBackupMetadata

따라서 구성 요소 집합의 정의 멤버에 대한 IVssComponent 인터페이스의 인스턴스를 사용하거나 IVssBackupComponents 메서드와 함께 정의 멤버의 이름, 형식 및 논리 경로를 사용하여 모든 구성 요소 집합의 멤버에 대한 속성을 설정하거나 검색합니다.

이러한 이유로 구성 요소 집합은 단위로 처리됩니다. 예를 들어 구성 요소 집합의 백업은 모든 구성 요소의 모든 파일 집합의 백업이 성공한 경우에만 성공합니다.

앞의 예제에서 구성 요소 "Jan"(논리 경로가 "writerData\Set2"인)의 한 파일이 "writerData"로 정의된 구성 요소 집합의 멤버라고 가정합니다. "Jan"의 파일 중 하나를 백업하지 못한 경우 요청자는 IVssBackupComponents::SetBackupSucceeded false 사용하여 구성 요소 집합의 실패를 나타낼 때 "writerData"의 정보(이름 "writerData", 경로 "" 및 구성 요소 형식)를 인수로 사용합니다.

마찬가지로 IVssComponent 인터페이스의 "writerData" 인스턴스에 대한 IVssComponent::GetBackupSucceeded 반환된 상태는 "writerData"뿐만 아니라 모든 하위 구성 요소에도 적용됩니다.

또한 기록기가 "writerData" 인스턴스의 IVssComponent::SetRestoreTarget 사용하여 복원 대상을 변경하도록 선택한 경우 IVssComponent모든 "writerData" 하위 구성 요소의 모든 파일 집합에 대한 복원 대상이 변경됩니다.

다음 속성은 구성 요소 전체가 아니라 특정 파일 또는 파일 집합에 적용됩니다.

  • 대체 위치 매핑:

IVssBackupComponents::AddAlternativeLocationMapping
IVssComponent::GetAlternateLocationMapping
IVssComponent::GetAlternateLocationMappingCount

  • 차이점이 있는 파일:

IVssComponent::AddDifferencedFilesByLastModifyTime
IVssComponent::GetDifferencedFile
IVssComponent::GetDifferencedFilesCount

  • 부분 파일:

IVssComponent::AddPartialFile
IVssComponent::GetPartialFile
IVssComponent::GetPartialFileCount

  • 지시 대상:

IVssComponent::AddDirectedTarget
IVssComponent::GetDirectedTarget
IVssComponent::GetDirectedTargetCount

  • 새 대상:

IVssBackupComponents::AddNewTarget
IVssComponent::GetNewTarget
IVssComponent::GetNewTargetCount

요청자가 IVssBackupComponents 인터페이스를 사용하여 하위 구성 요소에 대해 이러한 기능에 액세스하는 경우 구성 요소 집합의 정의 구성 요소에 대한 구성 요소 정보를 사용하지만 하위 구성 요소에 대한 파일 또는 파일 집합 정보를 사용합니다.

마찬가지로 IVssComponent 인터페이스를 통해 속성에 액세스할 수 있는 경우 정의 하위 구성 요소에 해당하는 인스턴스가 사용되지만 파일 또는 파일 집합 인수는 하위 구성 요소에서 가져옵니다.

예를 들어 하위 구성 요소 "Jan"(논리적 경로가 "writerData\Set2"인)에 "c:\fred" 경로, 파일 사양 "*.dat" 및 true 재귀 플래그가 있는 파일 집합이 대체 위치로 복원되어야 할 수 있다고 가정합니다.

만약 이러한 경우라면 요청자는 IVssBackupComponents::AddAlternativeLocationMapping을 호출합니다. "writerData"의 정보(구성 요소 형식, "writeData"의 구성 요소 이름, ""의 논리 경로)와 함께 "Jan"의 파일 집합 정보(경로 "c:\fred", 파일 사양 "*.dat", 재귀가 true 인)를 사용합니다.

이 경우 파일 집합 정보는 IVssCreateWriterMetadata::AddFilesToFileGroup, IVssCreateWriterMetadata::AddDatabaseFiles또는 IVssCreateWriterMetadata::AddDatabaseLogFiles 사용하여 1월에 파일을 추가하는 데 사용되는 파일 집합 정보와 정확히 일치해야 합니다.

마찬가지로 작성자가 "c:\ethel" 경로와 이름이 "jan"(논리 경로 "writerData\Set2"인)으로 관리되는 "lucy.dat" 이름의 파일에 지시 대상을 추가하려는 경우 "writerData"에 해당하는 IVssComponent 인스턴스를 사용하지만 "Jan"의 파일 정보를 사용합니다.

복원 집합에 암시적으로 포함된 구성 요소

백업에 암시적으로 포함된 구성 요소는 복원을 위해 선택할 수 있는 경우 복원에 명시적으로 포함될 수 있습니다. 복원 및 하위 구성 요소대한 선택성 작업에서 설명한 대로 이러한 구성 요소는 IVssBackupComponents::AddRestoreSubcomponent 메서드를 사용하여 백업 구성 요소 문서에 추가됩니다.

그러나 IVssComponent 인터페이스의 새 인스턴스를 만들지 않으며 IVssBackupComponents 인터페이스를 통해 구성 요소에 직접 액세스할 수 없습니다.

대신 복원을 위해 명시적으로 포함되었지만 백업에 암시적으로 포함된 구성 요소는 백업 시 멤버인 구성 요소 집합을 정의한 구성 요소에 해당하는 IVssComponent 인터페이스의 인스턴스를 통해 액세스해야 합니다.

예를 들어 백업 구성 요소 "writerData"에 대해 선택 가능한 하위 구성 요소인 "Set1" 복원을 명시적으로 포함하려면 IVssComponent 인터페이스의 "writerData" 인스턴스의 IVssComponent::GetRestoreSubcomponent 메서드를 호출하여 해당 정보를 가져옵니다.