如何将恢复数据库链接回原始数据库

 

上一次修改主题: 2005-05-23

下列两个 Active Directory 属性可将恢复存储组中的数据库副本与原始数据库相链接:

  • msExchMailboxGUID   针对拥有邮箱的用户对象设置。
  • msExchOrigMDB   针对恢复存储组中的每个数据库对象设置。

msExchMailboxGUID

Active Directory 中用户帐户的 msExchMailboxGUID 属性值与 Exchange 邮箱的 GUID 相匹配。如下图所示,将数据库还原到恢复存储组之后,恢复存储组数据库中各个邮箱的 GUID 仍与原始数据库中相应邮箱的 GUID 相同。邮箱合并向导 (ExMerge) 使用此 GUID 将恢复存储组数据库中的各个邮箱与 Active Directory 中的用户相匹配。一旦匹配成功,ExMerge 即可将数据从恢复存储组数据库邮箱移动到原始数据库中的相应邮箱。

c1212aa0-ccb9-4d57-b6c1-3e25235b71a2

邮箱 GUID 是邮箱的最基本属性。邮箱创建时已在数据库中设置该属性值,并且该值在邮箱的整个生存期内都保持不变。邮箱 GUID 是将一个邮箱与其他所有邮箱相区分的唯一值。由于删除邮箱时会使之前拥有该邮箱的 Active Directory 用户对象丢失所有邮箱属性,因此无法轻易地在恢复存储组中恢复已删除或已清除的邮箱。如果您删除了某个邮箱,但在将其清除前,又将其与其他用户连接,新用户属性将具有与原邮箱用户相同的 msExchMailboxGUID 值。事实上,如果在同一数据库中拥有邮箱的两个用户帐户之间,只切换 msExchMailboxGUID 值,则会在它们之间交换邮箱(其他属性用于区别拥有不同数据库邮箱的用户帐户)。

如果改变 msExchMailboxGUID 的一个字符,则受影响的用户下一次登陆时,Exchange 将基于新的 GUID 创建一个全新的邮箱。在 Exchange 系统管理器中,将会看到该用户目前有两个邮箱。(不久之后,将自动运行邮箱清理代理程序,用户的原始邮箱随后将显示为断开连接,从而成为清除操作的候选对象)。假设又将 msExchMailboxGUID 更改回原始值。那么,该用户下次登录时,原始邮箱将恢复为可用,而新邮箱则将断开连接。

在删除邮箱时,Exchange 实际上会将该邮箱保留 30 天以备随后恢复数据之用。Exchange 只删除将 Active Directory 帐户与邮箱相链接的属性。在从数据库清除邮箱之前,可以使用邮箱恢复中心将邮箱与以前的 Active Directory 帐户重新连接,或与其他 Active Directory 帐户相连接。

在清除已删除的邮箱时(或在删除邮箱 30 天后自动将其清除时),会从数据库中删除邮箱及其 GUID。到此阶段,便无法再使用邮箱恢复中心重新连接该邮箱。但是,如果在邮箱删除后和清除前这一段时间内备份了数据库,则可以从备份中检索到该邮箱。有关本过程的详细信息,请参阅在 Exchange Server 2003 中使用恢复存储组恢复已删除项目或清除邮箱

msExchOrigMDB

要从恢复存储组中的邮箱恢复数据,则该邮箱必须驻留在从中生成待还原数据库备份的原始数据库中。

恢复存储组中的每个数据库都有一个 msExchOrigMDB 属性,该属性将数据库与普通存储组中的数据库相链接。如下图所示,msExchOrigMDB 属性保留了从中生成恢复存储组数据库的原始数据库的可分辩名称。

cbe4ed4e-4dc6-40c0-94be-4ccde3129d28

Active Directory 中对象的可分辩名称描述到该对象在目录中的位置的路径。每个 Active Directory 对象都具有 distinguishedName 属性,该属性以适合于复制和粘贴到 msExchOrigMDB 属性中的格式列出对象的可分辨名称。Exchange 数据库对象位于安装 Exchange 的每个 Active Directory 目录林的“配置”容器下的“服务”分支中。

典型 Exchange 数据库的可分辨名称的格式如下:

CN=<database name>,CN=<storage group name>,CN=InformationStore,CN=<exchange server name>,CN=Servers,CN=<administrative group name>,CN=Administrative Groups,CN=<Exchange Organization Name>,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=<root active directory domain>,DC=<top level domain, such as com or org>

例如:

CN=MailboxDatabase1,CN=Second Storage Group,CN=InformationStore,CN=Exchange1,CN=Servers,CN=First Administrative Group,CN=Administrative Groups,CN=TailspinToys,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=tailspin,DC=com

如果将邮箱移动到其他数据库,ExMerge 仍可识别该邮箱,因为其 GUID 仍然在 Active Directory 中,但是 ExMerge 无法从中提取数据或者将数据合并到其中。

在这种情况下,有以下两个选择:

  • 使用 ExMerge 之前将邮箱移回到原始数据库。
  • 在 Active Directory 中,更改恢复存储组数据库对象的 msExchOrigMDB 属性,使其指向邮箱目前所在的数据库。
    如果采用这一方法,则 ExMerge 将无法访问未移动到新数据库的所有邮箱,除非将 msExchOrigMDB 的属性改回其初始值。
    使用 Exchange 系统管理器或标准 Active Directory 管理程序无法更改 msExchOrigMDB 属性。但是,可以使用 ADSI Edit、LDIFDE 或 LDP 等工具来查看和更改原始的 Active Directory 属性。有关详细说明,请参阅如何使用 ADSI Edit 更改 msExchOrigMDB 属性