2010-11-27 6 views
3

JetBeginExternalBackup API를 사용하여 ESENT 데이터베이스의 전체 백업을 생성하는 코드를 작성했습니다.외부 ESENT 백업 전체 복원

MSDN 지침에 따라 JetGetAttachInfo 및 JetGetLogInfo에서 반환 한 모든 파일을 백업했습니다.

이전 백업을 삭제하고 이전 데이터베이스를 지우고 백업 데이터를 데이터베이스 폴더에 복사했습니다. DB 엔진을 시작할 수 없으며 JetInit 오류 코드는 "JET_errMissingLogFile"입니다.

백업을 검사했는데 데이터베이스 파일 만 포함되어 있고 "<inst> XXXXX.log"로그 파일이 있습니다. 현재 로그 파일이 없습니다 (순환 로깅을 사용하고 있습니다, BTW).

그런 백업을 복원 할 수있는 방법이 있습니까?

너무 복잡하기 때문에 JetExternalRestore API를 사용하고 싶지 않습니다. 다른 위치로 복원 할 필요가 없으며 2가 아닌 3 개의 입력 폴더가있는 이유를 모르지만 잘 모릅니다. genLow 및 genHigh 인수에 제공 할 값입니다.

외부 백업이 필요합니다. ESENT 데이터베이스는 원격 서버의 ASP.NET에서 사용되며 인터넷을 통해 백업합니다.

또는 현재 로그 파일의 이름을 검색하는 방법이있을 수 있으며이를 백업에 추가해야합니까?

미리 감사드립니다.

P. 웹 서버에서 프로세스를 확장 할 수있는 권한이 없으므로 eseutil.exe를 사용하는 것은 옵션이 아닙니다.

답변

0

모든 백업 파일을 단일 폴더로 압축 해제합니다.

기본 데이터베이스 파일의 이름을 사용하십시오. 확장명을 .pat으로 바꿉니다. 해당 이름의 길이가 0 인 파일을 만듭니다 (예 : database.pat.

간단한 단계를 거친 후 JetRestoreInstance API를 호출하면 해당 폴더에서 백업이 복원됩니다.