我已经编写了使用JetBeginExternalBackup应用程序接口创建ESENT数据库完整备份的代码。
按照MSDN的指导原则,我备份了JetGetAttachInfo和JetGetLogInfo返回的每个文件。
我已经进行了备份,清除了旧数据库,并将备份数据复制到数据库文件夹中。DB引擎无法启动,JetInit错误代码为"JET_errMissingLogFile“。
我已经检查了备份,它只包含数据库文件和"XXXXX.log“日志文件。它缺少当前的日志文件(我使用循环日志记录,BTW)。
有没有办法恢复这样的备份?
我不想使用JetExternalRestore API,因为它太复杂了:我不需要恢复到另一个位置,我不明白为什么有3个输入文件夹而不是2个,我也不知道要在genLow和genHigh参数中提供的值。
我确实需要外部备份: ESENT数据库由远程服务器上的ASP.NET使用,我正在通过互联网对其进行备份。
或者,也许有一种方法可以检索当前日志文件的名称,而我应该将其添加到备份中?
提前感谢!
附注:我没有权限在我的web服务器上跨进程,所以使用eseutil.exe是不可取的。
发布于 2016-05-21 10:15:53
将所有备份文件解压到单个文件夹中。
取您的主数据库文件的名称。替换.pat的扩展。创建具有该名称的零长度文件,例如database.pat。
在这一简单的步骤之后,调用JetRestoreInstance接口,它将从该文件夹恢复备份。
https://stackoverflow.com/questions/4289430
复制相似问题