管理队列数据库

 

适用于: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007

上一次修改主题: 2008-03-11

队列是那些等待进入下一处理阶段的邮件的临时存放位置。每个队列代表传输服务器按照特定顺序处理的逻辑邮件集。队列仅存在于已安装中心传输服务器角色或边缘传输服务器角色的服务器上。

Microsoft Exchange Server 2007 将可扩展存储引擎 (ESE) 数据库用于队列邮件存储。ESE 以前称为 JET,是将低级 API 定义为 Exchange Server 中的基础数据库结构的一种方法。

队列概述

表 1 列出了存在于中心传输服务器或边缘传输服务器上的队列及其特征。

表 1   存在于中心传输服务器或边缘传输服务器上的队列

队列名 服务器角色 服务器上的队列数量

邮箱传递队列

中心传输

每个唯一的目标邮箱服务器一个队列。

带毒邮件队列

边缘传输

集线器传输

1

远程传递队列

边缘传输

集线器传输

边缘传输:每个唯一的目标简单邮件传输协议 (SMTP) 域或智能主机有一个队列。

集线器传输:每个唯一的远程 Active Directory 目录服务站点有一个队列。

提交队列

边缘传输

集线器传输

1

无法到达的队列

边缘传输

集线器传输

1

队列数据库文件概述

所有不同的队列都存储在一个 ESE 数据库中。默认情况下,该队列数据库位于 C:\Program Files\Microsoft\Exchange Server\TransportRoles\data\Queue。

与任何 ESE 数据库一样,队列数据库使用日志文件接受、跟踪和维护数据。为了提高性能,先将所有的邮件事务写入日志文件和内存中,然后再写入数据库文件中。检查点文件会跟踪已提交给数据库的事务日志条目。在 Microsoft Exchange 传输服务的正常关闭过程中,始终会将在事务日志中发现的未提交数据库更改提交给数据库。

队列数据库使用循环日志记录。这意味着不会维护在事务日志中发现的已提交事务的历史记录。早于当前检查点的所有事务日志将立即自动删除。因此,在执行队列数据库恢复时,不能从备份重播事务日志。

表 2 列出了构成队列数据库的文件。

表 2   构成队列数据库的文件

文件 说明

Mail.que

此队列数据库文件存储所有排队的邮件。

Tmp.edb

此临时数据库文件用于验证启动时的队列数据库架构。

Trn*.log

该事务日志用于记录队列数据库的所有更改。数据库的更改首先写入事务日志,然后提交到数据库。Trn.log 是当前的活动事务日志文件。Trntmp.log 是提前创建接下来提供的事务日志文件。如果现有 Trn.log 事务日志文件达到其最大大小,则 Trn.log 将重命名为 Trnnnnn.log,其中 nnnn 是序列号。然后,Trntmp.log 重命名为 Trn.log,并用作当前的活动事务日志文件。

Trn.chk

此检查点文件会跟踪已提交给数据库的事务日志条目。该文件始终在与 mail.que 文件相同的位置中。

Trnres00001.jrs

Trnres00002.jrs

这些保留事务日志文件将用作占位文件。仅当包含事务日志的硬盘驱动器空间已满,使队列数据库完全停止时,才能使用它们。

用于配置队列数据库的选项

无法使用 Exchange 管理控制台或 Exchange 命令行管理程序来配置队列数据库。应当通过修改位于 C:\Program Files\Microsoft\Exchange Server\Bin 中的 EdgeTransport.exe.config 文件,来配置队列数据库。EdgeTransport.exe.config 文件是与 EdgeTransport.exe 文件关联的 XML 应用程序配置文件。EdgeTransport.exe 和 MSExchangeTransport.exe 是 Microsoft Exchange 传输服务使用的可执行文件。该服务运行于每个集线器传输服务器或边缘传输服务器上。在重新启动 Microsoft Exchange 传输服务之后,将应用对 EdgeTransport.exe.config 文件的更改。

以下是 EdgeTransport.exe.config 文件结构的一个基本示例:

<configuration>

<runtime>

<gcServer enabled="true" />

</runtime>

<appSettings>

<add key=" ConfigurationOption " value=" " />

...

</appSettings>

</configuration>

<appSettings> 部分是可以添加新的配置选项或修改现有配置选项的位置。很多与队列数据库完全无关的配置选项也可以使用。但是,它们不在本主题的介绍范围内,在此不予进行讨论。

note注意:
<add key=../> 部分中的参数名称区分大小写。

表 3 中描述了 EdgeTransport.exe.config 文件中可用的队列数据库的配置选项。

表 3   EdgeTransport.exe.config 文件中可用的邮件队列数据库配置选项

参数名称 说明

QueueDatabaseBatchSize

此参数指定在执行之前可以组合到一起的数据库 I/O 操作的数量。默认值为 40。对于所接收的每封邮件,邮件的 I/O 成本是基于邮件上的收件人数和邮件的大小产生的。如果邮件的 I/O 成本超过了在 QueueDatabaseBatchSize 参数中指定的值,则该邮件将立即提交到队列数据库。否则,会将这封邮件与所接收的其他邮件放在一起,共同提交到队列数据库。

warning警告:
除非得到 Microsoft 客户支持服务代表的指导,否则不要修改该参数。

QueueDatabaseBatchTimeout

该参数指定在数据库执行多个数据库 I/O 操作之前将等待它们进行组合的最长时间(毫秒)。如果以下条件为真,则执行数据库 I/O 操作,而不再进行任何等待:

  • 还没有达到 QueueDatabaseBatchSize 参数所指定的数据库 I/O 操作的数量。

  • 已超过 QueueDatabaseBatchTimeout 参数所指定的时间。

默认值为 100

QueueDatabaseMaxConnections

此参数指定可以打开的 ESE 数据库连接数。默认值为 4

QueueDatabaseLoggingBufferSize

该参数指定在将事务记录写入到事务日志文件之前用于缓存它们的内存。默认值为 524288 个字节。

QueueDatabaseLoggingFileSize

该参数指定事务日志文件的最大大小。当达到最大日志文件大小时,将打开新日志文件。默认值为 5242880 个字节。

QueueDatabaseLoggingPath

该参数指定队列数据库日志文件的默认目录。默认值是 C:\Program Files\Microsoft\Exchange Server\TransportRoles\data\Queue。在更改队列数据库日志目录之前,请确保新目录已存在。还要确保对该目录应用以下文件权限:Network Service:完全控制;System:完全控制;Administrators:完全控制。

QueueDatabaseMaxBackgroundCleanupTasks

此参数指定可以随时排入数据库引擎线程池中的后台清理工作项目的最大数量。默认值为 32

QueueDatabaseOnlineDefragEnabled

该参数启用或禁用邮件队列数据库的已安排联机碎片整理。默认值为 $true

QueueDatabaseOnlineDefragSchedule

此参数指定一天中开始邮件队列数据库的联机碎片整理的时间(以 24 小时格式表示)。若要指定某个值,请以时间段的形式输入该值:hh:mm:ss,其中 h = 小时,m = 分钟,s = 秒。默认值为 1:00:00 或 1:00 AM。

QueueDatabaseOnlineDefragTimeToRun

该参数指定允许联机整理碎片任务运行的时间。即使整理碎片任务未在指定的时间内完成,队列数据库仍将处于一致的状态。若要指定值,请输入一个时间跨度:hh:mm:ss,其中 h = 小时,m = 分钟,s = 秒。默认值为 3:00:00

QueueDatabasePath

该参数指定队列数据库文件的默认目录。默认值是 C:\Program Files\Microsoft\Exchange Server\TransportRoles\data\Queue。在更改队列数据库目录之前,请确保新目录已存在。还要确保对该目录应用以下文件权限:Network Service:完全控制;System:完全控制;Administrators:完全控制。

详细信息

有关队列的详细信息,请参阅管理队列

有关如何更改队列数据库位置的详细信息,请参阅如何更改队列数据库的位置