JetEndExternalBackupInstance2 函数

适用于: Windows |Windows Server

JetEndExternalBackupInstance2 函数

JetEndExternalBackupInstance2 函数结束外部备份会话。 此 API 是一系列 API 中的最后一个 API,必须调用这些 API 才能成功执行联机 (基于 VSS 的非) 备份。

Windows XP:JetEndExternalBackupInstance2 在 Windows XP 中引入。

    JET_ERR JET_API JetEndExternalBackupInstance2(
      __in          JET_INSTANCE instance,
      __in          JET_GRBIT grbit
    );

parameters

instance

用于此调用的实例。

Windows 2000: 对于 Windows 2000,接受此参数的 API 变体不可用,因为仅支持一个实例。 在本例中,这一全局实例的使用是隐含的。

Windowsxp: 对于 Windows XP 及更高版本,仅当引擎处于旧模式 (Windows 2000 兼容模式时,才能调用不接受此参数的 API 变体) 其中仅支持一个实例。 否则,操作将失败并出现JET_errRunningInMultiInstanceMode。

grbit

一组指定以下选项的零个或多个位。

含义

JET_bitBackupEndAbort
0x0002

客户端应用程序正在中止备份。

JET_bitBackupEndNormal
0x0001

客户端应用程序已完成备份,并且正在正常结束。

JET_bitBackupTruncateDone
0x0100

Windows Vista: Windows Vista 中引入了JET_bitBackupTruncateDone。

引擎可以将数据库标头标记为适当的 (例如,完整备份) 完成,即使对截断的调用尚未完成。

返回值

此函数返回具有以下返回代码之一 的JET_ERR 数据类型。 有关可能的 ESE 错误的详细信息,请参阅 可扩展存储引擎错误错误处理参数

返回代码

说明

JET_errSuccess

操作已成功完成。

JET_errBackupAbortByCaller

Windowsxp: 此返回值在 Windows XP 中引入。

调用方在备份序列中间终止了备份,但未使用 JetStopBackup 发出意向信号。 此错误是由 Windows Server 2003 及更高版本中备份客户端中的 bug 导致的。 在 Windows XP 中,会因有意终止外部备份序列而返回此错误。

JET_errBackupAbortByServer

Windows Server 2003: 此返回值在 Windows Server 2003 中引入。

操作失败,因为调用 JetStopBackup 中止了当前外部备份。

JET_errClientRequestToStopJetService

由于调用 JetStopService,与会话关联的实例上的所有活动都已停止,因此操作无法完成。

JET_errInstanceUnavailable

Windowsxp: 此返回值在 Windows XP 中引入。

该操作无法完成,因为与会话关联的实例遇到一个致命错误,该错误要求撤销对所有数据的访问权限以保护该数据的完整性。

JET_errNoBackup

操作失败,因为没有外部备份正在进行。

JET_errNotInitialized

操作无法完成,因为与会话关联的实例尚未初始化。

JET_errRestoreInProgress

该操作无法完成,因为正在对与会话关联的实例执行还原操作。

JET_errRunningInMultiInstanceMode

操作失败,因为尝试在 Windows 2000 兼容模式 (旧模式下使用引擎,) 其中仅支持一个实例,但实际上已存在多个实例。

JET_errTermInProgress

操作无法完成,因为正在关闭与会话关联的实例。

如果函数成功,则外部备份成功。 成功表示 (的所有文件(例如,适用于 JetBeginExternalBackup) 中指定的备份 (类型的数据库和日志) )都已从备份引擎中检索。 可以使用硬恢复 (JetExternalRestore) 恢复备份的文件。

如果此函数失败,外部备份通常会结束。 失败意味着由于客户端或应用程序使用错误,备份无效。 请务必检查此 API 的返回代码,以验证备份序列是否成功。

备注

如果引擎配置为记录事件,则会记录事件以指示外部备份的解决方法。

如果备份序列未按顺序完成,并且成功调用 JetEndExternalBackup,则后续增量备份可能包含比应用程序预期更多的数据。

有关外部备份 API 序列的详细信息,请参阅 JetBeginExternalBackup

在 Windows Vista 之前,如果未执行日志截断,引擎会认为备份是副本备份。 但是,备份可能是未 (执行截断的正常备份,例如,如果存在) 分离的数据库。 JET_bitBackupTruncateDone选项可用于通知引擎此情况,并允许进行适当的数据库标头修改。

要求

要求

客户端

需要 Windows Vista 或 Windows XP。

服务器

需要 Windows Server 2008 或 Windows Server 2003。

标头

在 Esent.h 中声明。

Library

使用 ESENT.lib。

DLL

需要ESENT.dll。

另请参阅

错误处理参数
可扩展存储引擎错误
JET_ERR
JET_GRBIT
JetAttachDatabase
JetBeginExternalBackup
JetBeginExternalBackupInstance
JetCloseFile
JetExternalRestore
JetGetAttachInfo
JetGetLogInfo
JET_INSTANCE
JetOpenFile
JetReadFile
JetStopBackup
JetStopService
JetTruncateLog