다음을 통해 공유


JetExternalRestore 함수

적용 대상: Windows | Windows Server

JetExternalRestore 함수

JetExternalRestore 함수는 외부 백업 API를 사용하여 수행된 외부 백업을 복원하고 복원 프로세스 중에 재생할 로그 파일 번호 범위를 지정합니다. 이를 하드 복구라고 하며 JetInit 함수에서 수행하는 소프트 복구와 유사하지만 다릅니다.

JET_ERR JET_API JetExternalRestore(
  __in          JET_PSTR szCheckpointFilePath,
  __in          JET_PSTR szLogPath,
  __in_opt      JET_RSTMAP* rgrstmap,
  __in          long crstfilemap,
  __in          JET_PSTR szBackupLogPath,
  __in          long genLow,
  __in          long genHigh,
  __in          JET_PFNSTATUS pfn
);

매개 변수

szCheckpointFilePath

szTargetInstanceCheckpointPath가 지정되지 않았거나 이미 활성 또는 실행 중인 instance 있는 경우 복구 중에 사용할 검사점 파일의 경로입니다.

szLogPath

복구의 최종 단계(실행 취소)와 롤 포워드 로그에 대한 로그의 경로 또는 디렉터리입니다. 이 경로는 szBackupLogPath와 동일할 수 있습니다.

rgrstmap

JET_RSTMAP 구조체 의 배열입니다. 이전 및 새 데이터베이스 경로 또는 파일 이름의 맵입니다. 이는 데이터베이스가 백업된 위치가 아닌 다른 위치로 복구해야 할 수 있기 때문에 사용됩니다. 여러 데이터베이스가 단일 로깅 집합에 연결된 경우 복원 맵은 복원할 데이터베이스의 하위 집합을 지정할 수 있습니다.

crstfilemap

rgrstmap 배열 매개 변수의 항목 수입니다.

szBackupLogPath

로그 파일이 복원되는 디렉터리의 경로입니다. 외부 백업 시퀀스 중에 읽은 로그입니다. 이 경로는 szLogPath와 동일할 수 있습니다.

genLow

szBackupLogPath에서 재생할 가장 낮은 로그 파일 번호입니다. 부호 없는 long의 전체 충실도는 유지되어야 하지만 현재 버전의 엔진에서 이 숫자는 0x00000 범위에서 0xFFFFF 범위의 16진수입니다. 이는 이후 버전에서 변경될 수 있습니다.

genHigh

szBackupLogPath에서 재생할 가장 높은 로그 파일 번호입니다. 부호 없는 long의 전체 충실도는 유지되어야 하지만 현재 버전의 엔진에서 이 숫자는 0x00000 범위에서 0xFFFFF 범위의 16진수입니다. 이는 이후 버전에서 변경될 수 있습니다.

Pfn

복구 진행률을 보고하는 상태 콜백입니다.

반환 값

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

반환 코드

설명

JET_errSuccess

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

JET_errOutOfMemory

완료할 메모리가 부족하여 작업이 실패했습니다.

JET_errInvalidParameter

제공된 매개 변수 중 하나에 예기치 않은 값이 포함되어 있거나 다른 매개 변수의 값과 결합할 때 의미가 없는 값이 포함되어 있습니다. 이는 JetExternalRestore에 대해 발생할 수 있으며, szTargetCheckpointPathszTargetInstanceLogPath가 모두 지정되지 않았거나 지정되지 않은 경우에 발생할 수 있습니다. 즉, 일치해야 하며 지정되거나 둘 다 지정되지 않아야 합니다.

JET_errDatabaseCorrupted

데이터베이스가 손상되었거나 인식할 수 없는 파일을 나타냅니다.

JET_errFileNotFound

요청된 파일을 지정된 경로에서 찾을 수 없으므로 작업이 실패했습니다.

JET_errInvalidPath

지정된 경로를 찾을 수 없어 작업이 실패했습니다.

JET_errRestoreOfNonBackupDatabase

복원 중에 지정된 데이터베이스 파일이 외부 백업으로 백업된 데이터베이스가 아닌 경우 이 오류가 반환됩니다.

JET_errStartingRestoreLogTooHigh

이 오류는 szBackupLogPath의 로그 파일 중 하나에 genLow 또는 pLogInfo.ulGenLow로 지정된 아래 로그 생성이 있는 경우 반환됩니다.

JET_errEndingRestoreLogTooLow

이 오류는 szBackupLogPath의 로그 파일 중 하나에 genHigh 또는 pLogInfo.ulGenHigh에 지정된 위의 로그 생성이 있는 경우 반환됩니다.

JET_errBadRestoreTargetInstance

지정된 szTargetInstanceLogPath가 초기화된 instance 속하지 않습니다. 이 오류는 Windows XP 이상에서만 반환됩니다.

JET_errRunningInOneInstanceMode

데이터베이스 엔진은 단일 instance 모드에서 외부 복원 또는 하드 복구를 실행할 수 없습니다. 이 오류는 Windows XP 이상에서만 반환됩니다.

성공하면 rgrstmap의 모든 데이터베이스가 완전히 복구되고 클린 또는 일관된 상태입니다. 이 시점에서 데이터베이스를 기존 instance 다시 탑재할 수 있습니다.

오류가 발생할 경우 엔진이 데이터베이스를 복구할 수 없습니다. 데이터베이스가 잘못된 상태이며 하드 복구를 다시 시도하려면 전체 데이터베이스를 다시 복원해야 합니다. 일반적으로 이러한 상황의 원본은 디스크 또는 로그 손상 또는 다른 형태의 로그 잘못된 관리 또는 비연속 로그 집합입니다.

설명

"하드" 복구의 작동 방식을 이해하려면 세 가지 복구 단계가 있으며 두 번째 단계에는 두 부분이 있을 수 있음을 이해해야 합니다. 1단계에서는 백업된 데이터베이스를 일관성으로 가져오기 위해 로그가 필요합니다(또는 초기 증분 로그 집합을 사용할 수 있음). 단계 II에서는 데이터베이스를 일관되게 만들기 위해 사용할 수 있는 추가 롤 포워드 로그가 소비됩니다. 추가 롤 포워드 로그의 재생도 있습니다. III단계는 복구의 실행 취소 단계입니다.

1단계: 데이터베이스를 일관된 상태(또는 초기 로그 파일 집합)로 가져오려면 복원해야 하는 로그 집합의 재생이 수행됩니다. 기본적으로 복원 중인 데이터베이스에 대해 선택 사항이 아닌 로그 파일 집합의 재생입니다. 이 로그 범위에서 누락된 로그가 있는 경우 복원이 실패합니다. 이러한 로그는 szBackupLogPath 매개 변수에 지정된 디렉터리에 배치해야 합니다.

단계 II: 필요에 따라 증분 또는 차등 백업 및 활성 instance 로그 파일에서 제공되는 롤 포워드 로그 파일 집합이 있을 수 있습니다. 증분 또는 차등 백업의 로그 파일의 경우 로그 파일을 szBackupLogPath 또는 szTargetInstanceLogPath 매개 변수에 지정된 디렉터리에 배치할 수 있으며, 이전 파일은 권장 디렉터리입니다. 롤 포워드 단계(단계 II)에 사용되는 로그는 1단계 동안 재생된 동일한 일련의 로그에서 비롯되어야 하며, I단계 로그의 간격 없이 로그 번호를 지속적으로 증가시켜야 합니다. 현재 활성 instance 사용 중인 로그 파일을 사용하여 데이터베이스를 완전히 최신 상태로 재생하려면 szTargetInstanceLogPathszTargetInstanceCheckpointPath 매개 변수를 지정해야 합니다. 다른 데이터베이스가 해당 로그 집합에 연결된 경우에도 이 작업을 수행할 수 있습니다.

단계 III: 복구의 마지막 단계에서 커밋되지 않은 트랜잭션은 롤백되며, 이를 위해서는 새 로그 파일을 생성하고 검사점 파일을 업데이트해야 합니다. 이 단계를 "실행 취소"라고도 합니다. 이 단계에서 사용할 검사점 파일 경로는 단계 III 로그 위치와 유사한 경로입니다. 즉, szLogPath가 단계 III에 사용되는 경우 szTargetInstanceLogPath가 복구 szTargetInstanceCheckpointPath의 III 단계에 사용되는 경우 szCheckpointFilePath가 사용됩니다.

경로의 작동 방식을 이해하려면 다음 순서도를 사용합니다.

ESE_Documentation_ese1

요구 사항

요구 사항

클라이언트

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

서버

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

머리글

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

라이브러리

ESENT.lib를 사용합니다.

DLL

ESENT.dll 필요합니다.

유니코드

JetExternalRestoreW(유니코드) 및 JetExternalRestoreA(ANSI)로 구현됩니다.

참고 항목

JET_ERR
JET_PFNSTATUS
JET_RSTMAP
JET_LOGINFO
JetBeginExternalBackup
JetInit