JetBackup 函数
适用于: Windows |Windows Server
JetBackup 函数
JetBackup 函数在数据库处于联机状态时创建数据库的备份。 此函数主要用于与 Windows 2000 及更早版本数据库引擎的向后兼容,其中只允许一个数据库实例。 在这种情况下,活动实例是备份的实例。
JET_ERR JET_API JetBackup(
__in JET_PCSTR szBackupPath,
__in JET_GRBIT grbit,
__in JET_PFNSTATUS pfnStatus
);
参数
szBackupPath
存储备份的目录。 如果备份路径为 NULL,则该函数将截断日志(如果可能)。
grbit
指定以下零个或多个选项的一组位。
值 |
含义 |
---|---|
JET_bitBackupAtomic |
创建数据库的完整备份。 这允许在新备份失败时将现有备份保留在同一目录中。 |
JET_bitBackupIncremental |
创建增量备份而不是完整备份。 这意味着将仅备份自上次完整备份或增量备份以来的日志文件。 |
pfnStatus
指向 JET_PFNSTATUS 回调函数的指针,该函数提供有关备份操作进度的通知信息。
返回值
函数返回 JET_ERR 错误代码之一。 下面是最常返回的 。 (有关此 API 错误的完整列表,请参阅 可扩展存储引擎错误代码。)
返回代码 |
说明 |
---|---|
JET_errSuccess |
操作已成功完成。 |
JET_errBackupInProgress |
同一实例的备份已在进行中。 不允许同时进行多个备份。 |
JET_errBackupNotAllowedYet |
实例在初始化时尚未准备好进行备份。 |
JET_errClientRequestToStopJetService |
由于调用 JetStopService,与会话关联的实例上的所有活动都已停止,因此无法完成该操作。 |
JET_errInstanceUnavailable |
操作无法完成,因为与会话关联的实例遇到了一个致命错误,该错误要求撤销对所有数据的访问权限以保护该数据的完整性。 Windowsxp: 此返回值是在 Windows XP 中引入的。 |
JET_errInvalidBackup |
如果启用了循环日志记录,则不允许进行增量备份。 |
JET_errInvalidGrbit |
指定的选项无效。 |
JET_errInvalidParameter |
将无效参数传递到 API 中。 |
JET_errInvalidPath |
目标路径不存在。 |
JET_errLoggingDisabled |
实例在不记录的情况下运行。 不允许备份。 |
JET_errLogReadVerifyFailure |
日志文件上出现校验和验证错误。 |
JET_errLogWriteFail |
由于意外错误,实例的日志记录是临时的或永久禁用的。 |
JET_errNotInitialized |
操作无法完成,因为与会话关联的实例尚未初始化。 |
JET_errReadVerifyFailure |
数据库页上出现校验和验证错误。 |
JET_errRestoreInProgress |
操作无法完成,因为正在与会话关联的实例上进行还原操作。 |
JET_errSessionSharingViolation |
同一会话不能同时用于多个线程。 Windowsxp: 此返回值是在 Windows XP 中引入的。 |
JET_errTermInProgress |
操作无法完成,因为正在关闭与会话关联的实例。 |
如果函数成功,则还原到备份时所需的所有文件都将包含在备份目录中。 如果这是完整备份,则文件将是数据库文件和使数据库进入一致状态所需的日志文件。 如果这是增量备份,则只会将日志文件添加到目录中,但 (数据库的现有文件和) 日志文件以及新的日志文件将能够还原,使数据库恢复到备份开始时的状态。
作为备份的副作用,不再需要的日志文件将被截断。
同时,数据库标头将在上次备份发生时使用信息进行更新。
如果函数失败,则备份目录目标中不会有任何文件,因此无法还原。 同时,当前日志文件不会被截断。
备注
备份的不同步骤将生成事件日志条目,包括文件名、日志截断和备份的最终结果。
只有在执行完整备份后,才能进行增量备份。 此外,仅当关闭循环日志记录时,才能进行增量备份。 建议备份目录不应包含备份中使用的文件或之前成功备份添加的文件以外的任何文件。
除非为 实例设置了 参数 JET_paramCreatePathIfNotExist ,否则备份目录应存在。 有关信息,请参阅 系统参数。
备份将对所有使用的数据库页以及从 Windows Server 2003 开始对日志文件执行校验和验证。 这样就有机会估计数据库的运行状况,即使对于在正常操作期间未读取的页面也是如此。 如果遇到任何此类损坏,备份将失败。
在备份期间,当前日志文件将完成,并生成新的日志。 这样,就可以复制所有必要的日志文件,因为当前日志将不再使用。
强烈建议不要将备份用于除引擎级别的备份和还原以外的任何目的。 这将最大程度地减少在备份和还原操作期间出现错误的可能性。
要求
要求 | 值 |
---|---|
客户端 |
需要 Windows Vista、Windows XP 或 Windows 2000 专业版。 |
服务器 |
需要 Windows Server 2008、Windows Server 2003 或 Windows 2000 Server。 |
标头 |
在 Esent.h 中声明。 |
Library |
使用 ESENT.lib。 |
DLL |
需要ESENT.dll。 |
Unicode |
作为 JetBackupW (Unicode) 和 JetBackupA (ANSI) 实现。 |
另请参阅
可扩展存储引擎文件
JET_ERR
JET_GRBIT
JET_INSTANCE
JET_PFNSTATUS
JetRestore
JetRestore2
JetRestoreInstance
JetStopService
系统参数