JetBackupInstance 函数
适用于:Windows | Windows Server
JetBackupInstance 函数
JetBackupInstance 函数将实例(包括所有附加数据库)流式备份到目录。 由于引擎支持多种备份方法,因此这是最简单且封装最严密的函数。
Windows XP:Windows XP 中引入了 JetBackupInstance。
JET_ERR JET_API JetBackupInstance(
__in JET_INSTANCE instance,
__in JET_PCSTR szBackupPath,
__in JET_GRBIT grbit,
__in JET_PFNSTATUS pfnStatus
);
参数
实例
要备份的数据库实例。
szBackupPath
存储备份的目录。 如果使用的备份路径为 NULL,函数将截断日志(如果可能)。
grbit
指定以下零个或多个选项的一组二进制数。
值 |
含义 |
---|---|
JET_bitBackupAtomic |
创建数据库的完整备份。 这样在新备份失败时可以保留同一目录中的现有备份。 |
JET_bitBackupIncremental |
创建增量备份,而不是完整备份。 这意味着只备份自上次完整备份或增量备份以来创建的日志文件。 |
JET_bitBackupSnapshot |
保留供将来使用。 |
pfnStatus
指向 JET_PFNSTATUS 回调函数的指针,提供有关备份操作进度的通知信息。
返回值
此函数使用以下返回代码之一返回 JET_ERR 数据类型。 有关可能的 ESE 错误的详细信息,请参阅可扩展存储引擎错误和错误处理参数。
返回代码 |
说明 |
---|---|
JET_errSuccess |
操作已成功完成。 |
JET_errBackupInProgress |
同一实例的备份已在进行中。 不允许同时进行多个备份。 |
JET_errBackupNotAllowedYet |
实例尚未准备好进行备份,因为它正在初始化。 |
JET_errClientRequestToStopJetService |
无法完成该操作,因为由于对 JetStopServiceInstance 的调用,与会话关联的实例上的所有活动都已停止。 |
JET_errInstanceUnavailable |
无法完成该操作,因为与会话关联的实例遇到了严重错误,需要撤销对所有数据的访问以保护该数据的完整性。 Windows XP: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 |
同一会话不能同时用于多个线程。 Windows XP:Windows XP 中引入了此返回值。 |
JET_errTermInProgress |
无法完成该操作,因为与会话关联的实例正在关闭。 |
函数返回成功后,备份目录中将出现还原到备份时所需的所有文件。 如果这是完整备份,则文件将是数据库文件和使数据库保持一致状态所需的日志文件。 如果这是增量备份,则只会将日志文件添加到目录,但已存在的文件(数据库和日志文件)以及新的日志文件将能够还原,并将数据库重新恢复到备份时的状态。
备份的一个副作用是,不再需要的日志文件将被截断。
同时,数据库标头将使用上次备份进行时的信息进行更新。
一旦失败,备份目录目标中将没有任何文件,因此无法还原。 同时,不会截断当前日志文件。
备注
备份的不同步骤将生成事件日志条目,包括文件名、日志截断和备份的最终结果。
只有在执行完整备份后,才能进行增量备份。 此外,只有关闭循环日志记录,才能进行增量备份。 建议备份目录不应包含除了备份涉及文件或上一次成功备份添加的文件之外的其他文件。
除非为实例设置了参数 JET_paramCreatePathIfNotExist,否则备份目录应存在。 有关信息,请参阅系统参数。
备份将对所有使用过的数据库页面进行校验和验证,并且从 Windows Server 2003 开始,还将对日志文件进行校验和验证。 这样,即使对于在正常操作期间未读取的页面,也有机会估算数据库的运行状况。 如果遇到任何此类损坏,备份将失败。
在备份期间,当前日志文件将完成,我们将启动新的日志生成。 这将允许复制所需的日志文件,因为最后一个需要的日志文件将不再使用。
强烈建议不要将备份用于除在引擎级别进行备份和还原以外的其他用途。 这将最大程度地减少在备份和还原操作期间出现错误的可能性。
要求
要求 | 值 |
---|---|
客户端 |
需要 Windows Vista 或 Windows XP。 |
服务器 |
需要 Windows Server 2008 或 Windows Server 2003。 |
标头 |
在 Esent.h 中声明。 |
Library |
使用 ESENT.lib。 |
DLL |
需要 ESENT.dll。 |
Unicode |
实现为 JetBackupInstanceW (Unicode) 和 JetBackupInstanceA (ANSI)。 |
另请参阅
JET_ERR
JET_GRBIT
JET_INSTANCE
JET_PFNSTATUS
JetRestore
JetRestore2
JetRestoreInstance
JetStopServiceInstance
System Parameters