aspose.info
ZH

EDB 文件格式 - Exchange 邮件数据库文件

更新于

什么是一 .edb 文件?

具有 .edb 文件扩展名的文件是由 Microsoft Exchange Server 创建的邮箱数据库,用于存储与邮件相关的数据。 EDB,Exchange 数据库,存储进程中和非 SMTP 的消息。 EDB 也称为可扩展存储引擎 (ESE) 数据库文件,并使用 b-tree 结构存储文件。作为存储文件,EDB 文件可以转换为其他邮件存储文件格式,例如 PST 和 OST。

教育局文件格式

没有可供参考的官方/开放 EDB 文件格式规范。对文件格式进行逆向工程已经取得了一些进展,导致部分规范解码。根据这些,EDB 文件包括:

  • File Header - 包含数据库文件头信息
  • Fixed Size Pages - 包含由表和索引组成的数据库

数据库文件头

数据库文件头位于第一个数据库页面中,并且至少为 668 字节。除了其他字段外,文件头还包含“文件格式版本"和“文件类型"。

#### 文件类型

类型描述
0数据库
1流媒体

注意: 这些类型的标识符是未知的。

文件格式版本

EDB 的原始格式始于 1997 年 4 月,此后不断发展以应对变化。

修订日期版本修订说明
1997 年 4 月0x000006200x00000000原版操作系统Beta格式。
1997 年 5 月0x000006200x00000001在目录中添加用于条件索引和 OLD 的列。
1997 年 6 月0x000006200x00000002在 IDB 中添加 fLocalizedText 标志。
1997 年 10 月0x000006200x00000003将 SPLIT_BUFFER 添加到空间树根页面。
1998 年 1 月0x000006200x00000002恢复修订以使 ESE97 保持向前兼容。
0x000006200x00000003将新的标记列添加到目录(“CallbackData"和“CallbackDependencies")。
1998 年 5 月0x000006200x00000004超长值 (SLV) 支持:signSLV、fSLVExists 在 dbheader 中。
1998 年 5 月0x000006200x00000005新的 SLV 空间树。
1998 年 10 月0x000006200x00000006SLV 空间图。
1998 年 12 月0x000006200x000000074 字节 IDXSEG。
1999 年 1 月0x000006200x00000008新模板列格式。
1999 年 6 月0x000006200x00000009已排序的模板列。用于 Windows XP SP3
0x000006200x0000000b包含带有 ECC 校验和的页眉,用于 Exchange
0x000006200x0000000c用于 Windows Vista (SP0)
0x000006200x00000011支持 2 KiB、16 KiB 和 32 KiB 页面。带有额外 ECC 校验和的扩展页眉。列压缩。空间提示。用于 Windows 7 (SP0)
1999 年 5 月0x000006230x00000000新空间经理。

数据库文件

EDB 数据库文件包含数据库中所有表的模式。此外,它还包括所有数据库表的记录和表的索引。它的位置由以下标识符确定。

  • JetCreateDatabase
  • JetCreateDatabase2
  • JetAttach 数据库
  • JetAttachDatabase2

基于这些,可以如下评估数据库的状态。

值标识符描述
1JET_dbstateJustCreated刚刚创建数据库。
2JET_dbstateDirtyShutdown数据库需要运行硬恢复或软恢复才能变得可用或可移动。不应尝试在此状态下移动数据库。
3JET_dbstateCleanShutdown数据库处于干净状态。可以在没有任何日志文件的情况下附加数据库。
4JET_dbstateBeingConverted正在升级数据库。
5JET_dbstateForceDetachInternal此值在 WindowsXP 中引入

参考

  • [可扩展存储引擎(ESE)数据库文件(EDB)规范](https://github.com/libyal/libesedb/tree/main/documentation)