JetInit3 函数

适用于: Windows |Windows Server

JetInit3 函数

JetInit3 函数将数据库引擎置于可支持应用程序使用数据库文件的状态。 必须使用 JetSetSystemParameter 函数正确配置引擎进行初始化。 请注意,在初始化过程中,数据库崩溃恢复会自动进行。

Windows Vista:JetInit3 在 Windows Vista 中引入。

    JET_ERR JET_API JetInit3(
      __in_out_opt  JET_INSTANCE* pinstance,
      __in_opt      JET_RSTINFO* prstInfo,
      __in          JET_GRBIT grbit
    );

参数

pinstance

用于特定调用的 实例。 此参数的使用取决于引擎的操作模式。 如果引擎在旧模式 (Windows 2000 兼容模式) 运行(其中仅支持一个实例),则可以将此参数设置为 NULL ,或设置为包含 NULL 或 JET_instanceNil 的有效输出缓冲区,这将返回作为初始化副作用创建的全局实例句柄。 然后,可以将此实例句柄传递给任何其他采用 实例的 API。 如果引擎在多实例模式下运行,则必须将此参数设置为有效的输入缓冲区,该缓冲区包含正在初始化的 JetCreateInstance 函数返回的实例句柄。

prstInfo

用于在恢复期间重新映射数据库、设置恢复停止位置或确定当前恢复状态的其他恢复参数。

grbit

一组位,指定下表中列出的和定义的零个或多个选项。

含义

JET_bitReplayReplicatedLogFiles

保留此值供将来使用。

JET_bitCreateSFSVolumeIfNotExist

保留此值供将来使用。

JET_bitReplayIgnoreMissingDB

此值使用户能够对一组日志文件运行恢复,即使在某个时候没有附加到日志文件集的数据库也是如此。

JET_bitRecoveryWithoutUndo

此值使用户能够执行恢复,但最多只能执行 (且不包括撤消阶段) 。 使用此值,可以在 中复制并应用其他事务日志。

JET_bitTruncateLogsAfterRecovery

此值会导致在成功软恢复期间截断日志文件。

JET_bitReplayMissingMapEntryDB

此值会导致缺少的数据库映射条目默认为同一位置。

JET_bitReplayIgnoreLostLogs

此值会导致在恢复期间忽略日志流末尾丢失的日志。

Windows 7:JET_bitReplayIgnoreLostLogs 是在 Windows 7 中引入的。

返回值

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

备注

实例必须通过对 JetInit3 函数的调用进行初始化,然后才能被 JetSetSystemParameter 函数以外的任何对象使用。

即使该实例从未使用 JetInit 函数初始化,也会通过调用 JetTerm 函数来销毁该实例。 实例是数据库引擎的可恢复性单位。 它控制用于保护一组数据库文件中数据完整性的所有文件的生命周期。 这些文件包括检查点文件和事务日志文件。 请注意,如果 JetInit3 函数失败,则不应调用 JetTerm。 但是,如果从未调用 JetInit3 或 JetInit3 成功,仍应为 JetCreateInstance2 创建的所有实例调用 JetTerm

如果在一组日志上运行恢复,但并非所有相关数据库都存在 (在正常情况下) 返回错误JET_errAttachedDatabaseMismatch,并且客户端希望在缺少数据库的情况下继续恢复,则JET_bitReplayIgnoreMissingDB错误用于继续恢复可用数据库。

由于故障恢复通常不会发生在 (的同一台计算机上,并且其配置) 与崩溃时相同,因此数据库通常不会更改位置。 在某些情况下,例如将文件移动到其他计算机或将快照备份还原到不同的位置,这种情况不再存在。 JetInit3 函数允许您使用旧数据库位置与新位置之间的JET_RSTINFOJET_RSTMAP结构) 指定映射 (。 事实上,只要数据库文件位于该位置,就只需要新位置。 一旦知道还原的数据库的位置,数据库签名就会用于在还原过程中标识数据库。 仅当需要重新创建数据库(在这种情况下,签名已知)时,才需要原始数据库位置。

此外,如果需要在撤消操作后停止恢复,可以指定恢复将停止的特定日志位置。 请注意,如果指定位置是生成过程中的一部分,但超过了实际日志的末尾,则这包括在特定日志生成结束时停止的能力。

有关详细信息,请参阅 JetInit 主题中的“备注”部分。

要求

要求

客户端

需要 Windows Vista。

服务器

需要 Windows Server 2008。

标头

在 Esent.h 中声明。

使用 ESENT.lib。

DLL

需要ESENT.dll。

Unicode

实现为 JetInit3W (Unicode) 和 JetInit3A (ANSI) 。

另请参阅

可扩展存储引擎文件
JET_ERR
JET_GRBIT
JET_INSTANCE
JET_RSTINFO
JET_RSTMAP
JetCreateInstance
JetInit
JetInit2
JetSetSystemParameter
资源参数