Share via


JetRestore 함수

적용 대상: Windows | Windows Server

JetRestore 함수

JetRestore 함수는 연결된 모든 데이터베이스를 포함하여 instance 스트리밍 백업을 복원하고 복구합니다. 이 함수는 주로 데이터베이스의 instance 하나만 허용되는 Windows 2000 및 이전 데이터베이스 엔진과의 이전 버전과의 호환성을 위한 것입니다. 이 경우 활성 instance 복원되는 instance. JetRestore를 사용하면 복원된 데이터베이스의 위치를 지정할 수 없습니다.

JET_ERR JET_API JetRestore(
  __in          JET_PCSTR sz,
  __in          JET_PFNSTATUS pfn
);

매개 변수

Sz

백업이 있는 폴더입니다. 백업은 JetBackup 함수를 사용하여 생성되어야 합니다.

Pfn

복원 작업의 진행률에 대한 알림 정보로 호출될 함수에 대한 선택적 포인터입니다.

반환 값

이 함수는 다음 반환 코드 중 하나를 사용하여 JET_ERR 데이터 형식을 반환합니다. 가능한 ESE 오류에 대한 자세한 내용은 확장 가능한 스토리지 엔진 오류오류 처리 매개 변수를 참조하세요.

반환 코드

설명

JET_errSuccess

작업이 성공적으로 완료되었습니다.

JET_errAlreadyInitialized

이 instance 대해 엔진이 이미 초기화되었기 때문에 작업이 실패했습니다.

JET_errInvalidLogSequence

백업 집합 및 현재 로그 경로의 로그 파일 집합이 일치하지 않습니다.

JET_errInvalidParameter

제공된 매개 변수 중 하나에 예기치 않은 값이 포함되어 있거나 다른 매개 변수의 값과 결합할 때 의미가 없는 값이 포함되어 있습니다.

JET_errInvalidPath

제공된 경로 중 일부가 잘못되었으므로 작업이 실패했습니다(백업 경로, 대상 경로, 로그 또는 instance 시스템 경로).

JET_errPageSizeMismatch

엔진이 트랜잭션 로그 파일 또는 트랜잭션 로그 파일과 연결된 데이터베이스를 만드는 데 사용되는 데이터베이스 페이지 크기와 일치하지 않는 데이터베이스 페이지 크기(JET_paramDatabasePageSizeJetSetSystemParameter 사용)를 사용하도록 구성되었기 때문에 작업이 실패했습니다.

JET_errRunningInMultiInstanceMode

매개 변수가 단일 instance 모드(Windows 2000 호환 모드)를 암시하고 엔진이 이미 다중 instance 모드에 있으므로 작업이 실패했습니다.

성공하면 백업 집합의 데이터베이스 파일이 해당 위치로 복원되고 데이터베이스가 클린 트랜잭션 일관성 상태가 되도록 복구가 실행됩니다. 복구는 백업 집합의 로그 파일과 해당 파일이 있는 경우 로그 경로의 로그 파일을 재생합니다. 이 복구는 검사점 파일, 트랜잭션 로그 파일 및 해당 트랜잭션 로그 파일에서 참조하는 모든 데이터베이스를 변경합니다.

실패 시 instance 초기화되지 않은 상태로 유지됩니다. 복원을 초기화하고 데이터베이스를 복구하려는 시도에서 트랜잭션 로그 파일 및 해당 트랜잭션 로그 파일에서 참조하는 모든 데이터베이스의 상태가 변경되었을 수 있습니다.

설명

복구 프로세스는 백업 중에 instance 연결된 데이터베이스를 다시 구성하고 변경 내용을 데이터베이스 파일에 다시 저장합니다. 결과는 트랜잭션 일치 데이터베이스가 됩니다. 가능하면 트랜잭션 로그에서 가장 최근 변경 내용이 발견될 때까지 백업이 수행된 이후 수행된 변경 내용도 데이터베이스에 저장됩니다. 백업이 수행된 이후 생성된 트랜잭션 로그가 여전히 트랜잭션 로그 디렉터리에 있는 경우 이 작업이 가능합니다. instance 순환 로깅을 사용하도록 설정한 경우 생성된 트랜잭션 로그가 다시 사용되므로 복구에서 백업 시점까지 발생한 변경 내용을 저장할 수 있습니다. 어쨌든 데이터베이스에 대해 재생할 트랜잭션 로그 파일의 수가 많으면 이 프로세스에 상당한 시간이 걸릴 수 있습니다.

JetRestore 함수는 해당 instance 대해 JetInit가 호출되기 전에 instance 호출해야 합니다.

복구하는 동안 많은 수의 데이터베이스 페이지와 트랜잭션 로그가 사용되므로 이러한 함수에서 반환될 수 있는 전체 일련의 오류가 있습니다. 이러한 오류는 Jet_errOutOfMemory 같은 임시 리소스 할당 오류에서 JET_errReadVerifyFailure, JET_errLogFileCorrupt 또는 JET_errBadPageLink 같은 물리적 손상을 나타내는 오류에 이르기까지 발생할 수 있습니다. 이러한 오류는 거의 항상 하드웨어 문제로 인해 발생하므로 피할 수 없습니다. 파일 잘못된 관리는 JET_errMissingLogFile 또는 JET_errAttachedDatabaseMismatch 또는 JET_errDatabaseSharingViolation 또는 JET_errInvalidLogSequence 가장 자주 나타납니다. 이러한 오류는 애플리케이션에서 방지할 수 있습니다. 애플리케이션은 사용자 또는 다른 애플리케이션과 같은 외부 세력에 의한 조작으로부터 이러한 파일의 리포지토리를 보호하기 위해 주의해야 합니다. 애플리케이션이 instance 완전히 삭제하려는 경우 instance 연결된 모든 파일을 삭제해야 합니다. 여기에는 검사점 파일, 트랜잭션 로그 파일 및 instance 연결된 데이터베이스 파일이 포함됩니다.

복구의 다양한 단계에는 트랜잭션 로그 재생 진행률 및 복원의 최종 결과를 포함하여 이벤트 로그 항목이 생성됩니다.

요구 사항

요구 사항

클라이언트

Windows Vista, Windows XP 또는 Windows 2000 Professional이 필요합니다.

서버

Windows Server 2008, Windows Server 2003 또는 Windows 2000 Server가 필요합니다.

머리글

Esent.h에서 선언되었습니다.

라이브러리

ESENT.lib를 사용합니다.

DLL

ESENT.dll 필요합니다.

유니코드

JetRestoreW(유니코드) 및 JetRestoreA(ANSI)로 구현됩니다.

참고 항목

JET_ERR
JET_GRBIT
JET_INSTANCE
JetBackup
JetBackupInstance
JetCreateInstance
JetSetSystemParameter