移动 Exchange 邮箱数据库时系统助理邮箱出现的问题

 

上一次修改主题: 2005-10-13

每个运行 Microsoft® Exchange 的服务器都有一个系统助理邮箱。此邮箱是在服务器上配置的第一个数据库中创建的。在多个任务中都需要使用系统助理邮箱。这些任务包括(但不限于):

  • 处理服务器监视邮件
  • 更新 Microsoft Office® Outlook Web Access 用户的忙/闲日历信息
  • 处理邮箱管理器通知
  • 将邮箱移到其他数据库

如果无法访问系统助理邮箱,则运行 Exchange 的服务器将继续运行,并执行基本的邮件处理。但是,许多系统功能和任务将无法正常运行。

每个服务器的系统助理邮箱都是唯一的,并且不能与其他服务器上的系统助理邮箱互相交换。您不能将一个服务器的系统助理邮箱移到另一个服务器上。如果将包含系统助理邮箱的数据库文件从一个运行 Exchange 的服务器移到另一个服务器,那么此操作将断开系统助理邮箱,并将其永久添加到邮箱 Tombstone 表中。如果随后将数据库移回原始服务器中,在该数据库中也无法重新创建原始系统助理邮箱。但是在应用程序日志中会频繁出现以下错误:

事件类型:

Error

事件源:

MSExchangeIS Mailbox Store

事件类别:

Logons

事件 ID:

1022

描述:

Logon Failure on database "DATABASE_NAME" - Windows 2000 account NT AUTHORITY\SYSTEM; mailbox /o=Microsoft/ou=First Administrative Group/cn=Configuration/cn=Servers/cn=EXCHANGE_SERVER/cn=Microsoft System Attendant.

错误:

1292

此错误相当于错误代码为 0x50c 的 ecMailboxInTransit,这个错误是对在数据库的邮箱 Tombstone 表中列出的邮箱尝试进行传递操作时生成的。Tombstone 表中列出的邮箱是无法创建的,也无法重新连接到 Active Directory® 目录服务对象。有关 Tombstone 表中列出的邮箱的行为的详细信息,请参阅移动邮箱操作和邮箱 Tombstone 表

有关系统助理邮箱生成的方案

下列方案说明了在数据库中可以生成系统助理邮箱以及不能生成系统助理邮箱的各种情况。

方案 1

服务器 Exchange1 驻留包含系统助理邮箱的 Database1。服务器 Exchange2 驻留包含 Exchange2 的系统助理邮箱的 Database2。

在 Exchange1 和 Exchange2 之间交换 Database1 和 Database2 的数据库文件。将数据库装入新位置后,几分钟后将出现下列两种情况(但未必按所列的顺序):

  • 对每个 Exchange 数据库自动定期运行的邮箱清理代理,会将每个数据库中以前的系统助理邮箱标记为“已断开”。之所以进行这一指定,是因为邮箱与运行 Exchange 的服务器不再匹配,而相应的数据库是在该服务器上运行的。将此邮箱标记为“已断开”后,系统会将其添加到数据库的邮箱 Tombstone 表中。此添加操作可防止启用邮箱或将其连接到错误服务器上的系统助理等任何可能情况。
  • 将运行系统助理任务,这需要将邮件传递到系统助理邮箱中,此任务将创建新的系统助理邮箱,此邮箱与运行 Exchange 的当前服务器上的系统助理邮箱相匹配。

创建 Exchange 邮箱的过程包括两个阶段。在第一阶段中,当为 Active Directory 对象设置适当的启用邮箱属性时,会为此对象分配邮箱的所有权。在第二阶段中,第一次客户端登录或第一次尝试将邮件传递到邮箱,都会导致对数据库中的空间进行分配,随后会在该数据库中实际创建邮箱。

如果邮箱已经在数据库的邮箱 Tombstone 表中列出,则第二阶段将会失败。但是,在此方案中会成功创建新的系统助理邮箱,这是因为任一数据库均未驻留过当前服务器的系统助理邮箱。这些数据库只驻留过以前服务器的系统助理邮箱,并且每个系统助理邮箱对于单个服务器而言是唯一的。

方案 2

接着方案 1 继续往下操作,交换回数据库文件,将 Database1 的文件放回到 Exchange1 中,并将 Database2 的文件放回到 Exchange2 中。装入数据库后,将出现下列两种情况(但未必按所列的顺序):

  • 邮箱清理代理会将每个数据库中以前的系统助理邮箱标记为“已断开”,邮箱将被添加到邮箱 Tombstone 表中。对于每个数据库,现在 Tombstone 表中列出了两个系统助理邮箱。
    将系统助理邮箱添加到邮箱 Tombstone 表中是永久性的。这些数据库中的任意一个都无法再次用于驻留任一服务器的系统助理邮箱。但是,任一数据库都可以传输给第三个 Exchange 服务器,并且可驻留该服务器的系统助理邮箱。
  • 将运行系统助理任务,这需要将邮件传递到系统助理邮箱中。对于此邮件传递操作,服务器将无法连接或创建系统助理邮箱,这是因为该邮箱是 Tombstone 表中的条目。因此,传递将失败,并且每次服务器尝试创建系统助理邮箱时,都会在应用程序日志中记录错误。

方案 3

接着方案 2 继续往下操作,通过进行下列操作,重新启用服务器 Exchange1 的系统助理邮箱:

  • 将逻辑删除的数据库重新定位到 Exchange1 中的另一个存储组或数据库位置。会为每个服务器指定一个数据库以驻留系统助理邮箱。这样,即使数据库包含已逻辑删除的系统助理邮箱,也可以在任何存储组或数据库位置中装入并运行此数据库,但指定驻留系统助理邮箱的数据库除外。通常,服务器上配置的第一个数据库为系统助理邮箱数据库。
  • 装入不包含数据库文件的系统助理邮箱数据库。此操作将强制生成新的数据库文件,这些文件中不包含邮箱 Tombstone 表中的系统助理邮箱。系统助理邮箱将在第一次尝试向其传递邮件时自动创建。

在服务器之间移动邮箱数据库时,建议考虑下列因素:

  • 不能使用“移动邮箱”从已禁用的系统助理邮箱进行恢复。之所以提出此限制,是因为运行 Exchange 的源服务器和目标服务器都需要正常工作的系统助理邮箱,才能使“移动邮箱”任务正常进行。
  • 清除与数据库断开连接的系统助理邮箱将不允许重新创建该邮箱。即使已清除物理邮箱,邮箱 Tombstone 条目也存在,它会禁止重新创建邮箱。
  • 如果将系统助理邮箱数据库移到同一服务器中的不同数据库或存储组位置,则不会将该邮箱添加到 Tombstone 表中。但是,邮箱清理代理将运行并断开邮箱,甚至可能会清除邮箱。不过,可以将数据库移回其原始位置,此时会自动重新创建或重新连接邮箱。
  • 可以更改驻留系统助理邮箱的数据库。如果使用 Exchange 系统管理器完全删除系统助理邮箱数据库对象,则 Exchange 将自动指定服务器上的其他数据库之一来驻留系统助理邮箱。除非服务器上仅配置了两个数据库,否则您无法控制新数据库的分配。
  • 不能在同一存储组中同时装入同一物理数据库的两个副本。Exchange 将无法装入其中一个数据库,并出现错误 - 1222 JET_errDatabaseSignInUse。此错误表示数据库签名冲突。如果针对同一组事务日志允许装入共享同一签名的两个数据库,则将无法重播事务日志。

有关详细信息

有关移动 Exchange 邮箱数据库的详细信息,请参阅将 Exchange 邮箱数据库移动到另一个服务器或存储组

有关移动 Exchange 邮箱数据库时事务日志文件出现的问题的详细信息,请参阅移动 Exchange 邮箱数据库时事务日志文件出现的问题