JetInit3 함수
적용 대상: Windows | Windows Server
JetInit3 함수
JetInit3 함수는 데이터베이스 엔진을 데이터베이스 파일의 애플리케이션 사용을 지원할 수 있는 상태로 만듭니다. JetSetSystemParameter 함수를 사용하여 수행하는 초기화를 위해 엔진이 이미 올바르게 구성되어야 합니다. 데이터베이스 크래시 복구는 초기화 프로세스의 일부로 자동으로 발생합니다.
Windows Vista:JetInit3 은 Windows Vista에 도입되었습니다.
JET_ERR JET_API JetInit3(
__in_out_opt JET_INSTANCE* pinstance,
__in_opt JET_RSTINFO* prstInfo,
__in JET_GRBIT grbit
);
매개 변수
pinstance
특정 호출에 사용하는 instance. 이 매개 변수의 사용은 엔진의 작동 모드에 따라 달라집니다. 엔진이 하나의 instance 지원되는 레거시 모드(Windows 2000 호환 모드)에서 작동하는 경우 이 매개 변수를 NULL 또는 NULL 또는 JET_instanceNil 포함하는 유효한 출력 버퍼로 설정할 수 있습니다. 이 매개 변수는 초기화의 부작용으로 생성된 전역 instance 핸들을 반환합니다. 그런 다음 이 instance 핸들을 instance 사용하는 다른 API에 전달할 수 있습니다. 엔진이 다중 instance 모드에서 작동하는 경우 이 매개 변수를 초기화 중인 JetCreateInstance 함수에서 반환된 instance 핸들을 포함하는 유효한 입력 버퍼로 설정해야 합니다.
prstInfo
복구 중에 데이터베이스를 다시 매핑하거나, 복구가 중지되는 위치를 설정하거나, 현재 복구 상태 결정하는 데 사용되는 추가 복구 매개 변수입니다.
grbit
다음 표에 나열되고 정의된 옵션 중 0개 이상을 지정하는 비트 그룹입니다.
값 |
의미 |
---|---|
JET_bitReplayReplicatedLogFiles |
이 값은 나중에 사용할 수 있도록 예약되었습니다. |
JET_bitCreateSFSVolumeIfNotExist |
이 값은 나중에 사용할 수 있도록 예약되었습니다. |
JET_bitReplayIgnoreMissingDB |
이 값을 사용하면 특정 시점에 로그 파일 집합에 연결된 데이터베이스가 없는 경우에도 사용자가 로그 파일 집합에서 복구를 실행할 수 있습니다. |
JET_bitRecoveryWithoutUndo |
이 값을 사용하면 사용자가 복구를 수행할 수 있지만 실행 취소 단계까지만 수행할 수 있습니다. 이 값을 사용하여 추가 트랜잭션 로그를 복사하여 적용할 수 있습니다. |
JET_bitTruncateLogsAfterRecovery |
이 값을 사용하면 일시 복구가 성공적으로 수행되는 동안 로그 파일이 잘립니다. |
JET_bitReplayMissingMapEntryDB |
이 값을 사용하면 누락된 데이터베이스 맵 항목이 기본적으로 동일한 위치로 지정됩니다. |
JET_bitReplayIgnoreLostLogs |
이 값을 사용하면 복구하는 동안 로그 스트림의 끝에서 손실된 로그가 무시됩니다. Windows 7:JET_bitReplayIgnoreLostLogs Windows 7에 도입되었습니다. |
반환 값
이 함수는 다음 반환 코드 중 하나를 사용하여 JET_ERR 데이터 형식을 반환합니다. 가능한 ESE(확장 가능한 스토리지 엔진) 오류에 대한 자세한 내용은 확장 가능한 스토리지 엔진 오류 및 오류 처리 매개 변수를 참조하세요.
설명
JetSetSystemParameter 함수 이외의 다른 함수에서 사용하려면 먼저 JetInit3 함수를 호출하여 instance 초기화해야 합니다.
JetInit 함수를 사용하여 instance 초기화되지 않았더라도 JetTerm 함수를 호출하면 instance 제거됩니다. instance 데이터베이스 엔진의 복구 기능 단위입니다. 데이터베이스 파일 집합에서 데이터의 무결성을 보호하는 데 사용되는 모든 파일의 수명 주기를 제어합니다. 이러한 파일에는 검사점 파일 및 트랜잭션 로그 파일이 포함됩니다. JetInit3 함수가 실패하는 경우 JetTerm을 호출하면 안 됩니다. 그러나 JetInit3이 호출되지 않았거나 JetInit3이 성공하는 경우 JetCreateInstance2에서 만든 모든 인스턴스에 대해 JetTerm을 계속 호출해야 합니다.
모든 관련 데이터베이스가 없는 로그 집합에서 복구가 실행되고(정상적인 상황에서는 오류 JET_errAttachedDatabaseMismatch 반환됨) 클라이언트가 누락된 데이터베이스에도 불구하고 복구를 계속하려는 경우 사용 가능한 데이터베이스에 대한 복구를 계속하기 위해 JET_bitReplayIgnoreMissingDB 오류가 사용됩니다.
크래시 복구는 일반적으로 크래시 시와 동일한 컴퓨터(및 동일한 구성)에서 발생하지 않으므로 데이터베이스는 일반적으로 위치를 변경하지 않습니다. 파일을 다른 컴퓨터로 이동하거나 스냅샷 백업을 다른 위치로 복원하는 등의 특정 시나리오에서는 더 이상 사실이 아닙니다. JetInit3 함수를 사용하면 이전 데이터베이스 위치와 새 위치 간에 매핑(JET_RSTINFO 및 JET_RSTMAP 구조 사용)을 지정할 수 있습니다. 실제로 데이터베이스 파일이 해당 위치에 있는 한 새 위치만 필요합니다. 복원된 데이터베이스의 위치를 아는 즉시 데이터베이스 서명을 사용하여 복원 프로세스를 통해 데이터베이스를 식별합니다. 데이터베이스를 다시 만들어야 하는 경우에만 원래 데이터베이스 위치가 필요합니다. 이 경우 서명이 알려져 있습니다.
또한 실행 취소 작업 후에 복구를 중지해야 하는 경우 복구가 중지될 특정 로그 위치를 지정할 수 있습니다. 지정된 위치가 생성의 일부이지만 실제 로그의 끝을 지나면 특정 로그 생성이 끝날 때 중지하는 기능이 포함됩니다.
자세한 내용은 JetInit 항목의 "주의" 섹션을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
클라이언트 |
Windows Vista가 필요합니다. |
서버 |
Windows Server 2008이 필요합니다. |
헤더 |
Esent.h에 선언되었습니다. |
라이브러리 |
ESENT.lib를 사용합니다. |
DLL |
ESENT.dll 필요합니다. |
Unicode |
JetInit3W(유니코드) 및 JetInit3A(ANSI)로 구현됩니다. |
참고 항목
확장 가능한 스토리지 엔진 파일
JET_ERR
JET_GRBIT
JET_INSTANCE
JET_RSTINFO
JET_RSTMAP
JetCreateInstance
JetInit
JetInit2
JetSetSystemParameter
리소스 매개 변수