기록기 오류 및 거부권
작성기는 다양한 프로그래밍 방식으로 실패할 수 있습니다. 이 경우 해당 처리기 메서드(예: CVssWriter::OnFreeze 또는 CVssWriter::OnPreRestore) 중 하나에서 CVssWriter::SetWriterFailure 메서드를 호출하고 TRUE를 반환하여 진행 중인 백업, 복원 또는 섀도 복사 작업을 거부해야 합니다. IVssComponentEx::SetPrepareForBackupFailureMsg를 사용하여 특정 처리기 메서드의 오류 조건에 대한 응답으로 오류 메시지 문자열을 선택적으로 설정할 수도 있습니다. IVssComponentEx::SetPostSnapshotFailureMsg, IVssComponent::SetPreRestoreFailureMsg 및 IVssComponent::SetPostRestoreFailureMsg 메서드. 요청자는 거부권을 수락하거나 거부권을 무시하고 백업을 계속할 수 있습니다.
요청자는 생성되는 각 이벤트에 따라 기록기 상태(IVssBackupComponents::GatherWriterStatus 및 IVssBackupComponents::GetWriterStatus 사용)를 검사 합니다.
경우에 따라 IVssComponentEx::GetPrepareForBackupFailureMsg, IVssComponent::GetPreRestoreFailureMsg를 사용하여 이러한 오류에서 오류 메시지를 검색할 수 있습니다. IVssComponentEx::GetPostSnapshotFailureMsg 및 IVssComponent::GetPostRestoreFailureMsg 메서드) 또는 작성기가 메타데이터를 설정하도록 선택할 수 있습니다(오류 상태 정보가 포함된 IVssComponent::SetRestoreMetadata 및 IVssComponent::SetBackupMetadata 사용). 이러한 오류 메시지를 보는 방법을 보여 주는 예제 코드는 IVssComponentEx::GetPrepareForBackupFailureMsg를 참조하세요.
오류 상태에 따라 요청자 또는 해당 운영자는 백업 작업 또는 시스템의 상태를 수정하는 데 필요한 모든 수정으로 백업 및 섀도 복사본을 다시 시작할 수 있습니다.
예를 들어 GetWriterStatus 가 다음을 반환한다고 가정합니다.
VSS_E_WRITERERROR_INCONSISTENTSNAPSHOT 요청자가 섀도 복사본에 볼륨을 더 추가할 수 있음을 시사합니다.
VSS_E_WRITERERROR_RETRYABLE 다시 구성하지 않고 다시 시도하면 작동할 수 있음을 나타냅니다. 여러 횟수 재시도 후에도 기록기가 계속해서 오류를 반환하는 경우 기록기를 호스트하는 서비스를 다시 시작해 보세요. VSS 서비스에서 호스트되는 기록기는 레지스트리 기록기, COM+ 클래스 등록 데이터베이스 기록기, 섀도 복사본 최적화 기록기 및 ASR(자동화된 시스템 복구) 기록기입니다. 작성기가 자체 프로세스에서 작성기를 호스트하는 애플리케이션에 속하는 경우 애플리케이션을 다시 시작해 보세요.
Windows Server 2003 및 Windows XP: 레지스트리 기록기, COM+ 클래스 등록 데이터베이스 기록기, 애플리케이션 이벤트 로그 기록기 및 Microsoft SQL Server 2000 MSDE(데스크톱 엔진) 작성기 등 VSS 서비스에서 호스트되는 기록기는 다음과 같습니다.
VSS_E_WRITER_STATUS_NOT_AVAILABLE 기록기가 사용 가능한 최대 백업 및 복원 세션 수에 도달했을 수 있으며 시스템 사용량이 적을 때 다시 시도하면 작동할 수 있음을 나타냅니다.
VSS_E_WRITERERROR_OUTOFRESOURCES 또는 VSS_E_WRITERERROR_TIMEOUT 다시 시도하기 전에 시스템 부하를 줄이도록 제안할 수 있습니다.
VSS_E_WRITERERROR_NONRETRYABLE 또는 VSS_E_WRITER_NOT_RESPONDING VSS를 사용하여 데이터를 백업하는 것을 배제하기 위해 기록기 오류가 너무 심각함을 나타낼 수 있습니다.
기록기 및 생성되는 구성 요소에 따라 백업 애플리케이션이 거부권 또는 오류에 따라 중단되는 것이 항상 필요한 것은 아닙니다.
예를 들어 요청자는 섀도 복사본의 의도가 애플리케이션 A를 백업하고 백업 애플리케이션 B에 대한 작성자로부터 거부권을 받았다고 결정할 수 있습니다. 이 경우 거부권을 무시하면서 애플리케이션 A를 계속 백업하는 것이 완벽하게 허용됩니다.
다음은 작성자 거부권의 예입니다.
- 기록기는 섀도 복사본을 만드는 동안 활동을 일시 중단할 수 없는 경우 섀도 복사본 만들기 프로세스를 거부합니다. 이는 고정 상태 중에 쓰기 작업이 발생했기 때문에 섀도 복사본이 유효하지 않을 가능성이 높다는 것을 나타냅니다.
- 백업 애플리케이션이 볼륨 C: 의 섀도 복사본만 요청했으며 기록기에서 C: 및 D:의 섀도 복사본이 해당 데이터를 백업하는 것이라고 결정합니다. 이 경우 작성자는 거부권을 행사합니다. 백업 애플리케이션은 메타데이터를 검사하고 기록기를 무시할지 아니면 섀도 복사본 만들기 프로세스가 중단되고 나중에 다시 시작될지 여부를 결정할 수 있습니다.