JetOSSnapshotFreeze 함수
적용 대상: Windows | Windows Server
JetOSSnapshotFreeze 함수
JetOSSnapshotFreeze 함수는 스냅샷 시작합니다. 스냅샷 진행 중인 동안에는 엔진의 디스크 쓰기 작업이 수행되지 않습니다.
Windows XP:JetOSSnapshotFreeze 는 Windows XP에 도입되었습니다.
JET_ERR JET_API JetOSSnapshotFreeze(
__in const JET_OSSNAPID snapId,
__out unsigned long* pcInstanceInfo,
__out JET_INSTANCE_INFO** paInstanceInfo,
__in const JET_GRBIT grbit
);
매개 변수
snapId
스냅샷 세션의 식별자입니다.
pcInstanceInfo
스냅샷 세션의 일부인 엔진에서 현재 실행 중인 인스턴스 수입니다.
paInstanceInfo
스냅샷 세션의 일부인 실행 중인 각 instance 대한 구조체 배열로, instance 해당 instance 포함된 데이터베이스를 설명합니다.
grbit
이 호출에 대한 옵션입니다. 이 매개 변수는 나중에 사용하도록 예약되어 있으며 지원되는 유일한 유효한 값은 0입니다.
반환 값
이 함수는 다음 반환 코드 중 하나를 사용하여 JET_ERR 데이터 형식을 반환합니다. 가능한 ESE 오류에 대한 자세한 내용은 확장 가능한 스토리지 엔진 오류 및 오류 처리 매개 변수를 참조하세요.
반환 코드 |
설명 |
---|---|
JET_errSuccess |
작업이 성공적으로 완료되었습니다. |
JET_errInvalidParameter |
출력 매개 변수에 제공된 포인터는 NULL이거나, 스냅샷 세션이 잘못되었거나, grbit 매개 변수가 잘못되었습니다. |
JET_errOSSnapshotInvalidSequence |
스냅샷 세션이 동결을 시작하기에 적절한 상태가 아닙니다(예: 이전에 이 세션에서 이전 동결이 실패). |
JET_errOSSnapshotNotAllowed |
엔진이 스냅샷 수행할 수 있는 상태가 아닙니다. 하나 이상의 스트리밍 백업이 이미 진행 중이거나 하나 이상의 인스턴스가 복구 단계를 거치거나 종료됩니다. |
JET_errOSSnapshotInvalidSnapId |
스냅샷 세션의 식별자가 잘못되었습니다. |
JET_errOutOfMemory |
메모리 부족 조건으로 인해 함수가 실패했습니다. |
JET_errOutOfThreads |
중지를 수행하는 새 스레드가 시작되지 않아 함수가 실패했습니다. |
이 함수가 성공하면 데이터베이스 파일 또는 고정된 인스턴스의 일부인 로그 파일에 대해 발급된 쓰기 IO가 없습니다. 또한 instance 정보가 제대로 채워지고 나중에 반환된 instance 정보 배열에 대한 포인터로 JetFreeBuffer를 호출하여 해제해야 합니다.
이 함수가 실패하면 엔진은 평소와 같이 발생하는 IO와 함께 정상적으로 계속 실행됩니다. 동결이 실패하면 JetOSSnapshotThaw 를 호출할 필요가 없습니다. 또한 instance 정보가 채워지지 않으므로 이 리소스를 해제할 필요가 없습니다.
설명
일시 중지 기간 동안 임시 데이터베이스 또는 스트리밍 파일에 발급된 쓰기 IO가 있을 수 있지만 연결된 데이터베이스 또는 트랜잭션 로그에 발급된 쓰기 IO는 없습니다.
데이터베이스 및 로그 파일이 고정 중에 있을 상태(파일이 볼륨 스냅샷 이미지에 있는 상태)는 나중에 해당 파일이 복원될 경우 정상적인 복구가 가능할 것입니다.
고정 기간 동안 쓰기 작업이 없으므로 해당 간격 동안 엔진에 대한 일반 API 호출이 중단될 수 있습니다. 클라이언트 애플리케이션은 고정이 발생할 경우 정상으로 더 오래 걸릴 수 있는 API 호출을 처리할 수 있어야 합니다.
위에서 설명한 가능한 효과로 인해 해동 또는 중단을 수행하는 API가 호출되지 않은 경우에도 스냅샷 세션이 동결 단계를 중지하는 내부 시간 제한이 있습니다. 시간 제한 값은 JET_paramOSSnapshotTimeout 시스템 매개 변수를 사용하여 변경할 수 있습니다. 일반적인 고정 간격은 10초 범위이며 기본 시간 제한은 약 60초입니다.
요구 사항
요구 사항 | 값 |
---|---|
클라이언트 |
Windows Vista 또는 Windows XP가 필요합니다. |
서버 |
Windows Server 2008 또는 Windows Server 2003이 필요합니다. |
머리글 |
Esent.h에 선언되었습니다. |
라이브러리 |
ESENT.lib를 사용합니다. |
DLL |
ESENT.dll 필요합니다. |
유니코드 |
JetOSSnapshotFreezeW(유니코드) 및 JetOSSnapshotFreezeA(ANSI)로 구현됩니다. |
참고 항목
JET_ERR
JET_INSTANCE_INFO
JET_OSSNAPID
JetOSSnapshotAbort
JetOSSnapshotPrepare
JetOSSnapshotPrepareInstance
JetOSSnapshotThaw