将 Windows Server 2003 上的 Exchange 2007 迁移到 Windows Server 2008 上的 Exchange 2007 SP1

 

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

作者:Scott Schnoll

Microsoft Exchange Server 2007 Service Pack1 (SP1) 包括了许多新增功能和对 Exchange 2007 正式发布 (RTM) 版本的改进。一项新的改进是支持 Windows Server 2008 操作系统,该操作系统最近已公开发行并批量生产。尽管 Exchange 2007 的 RTM 版本不能安装在 Windows Server 2008 上,但 Exchange 2007 SP1 支持在 Windows Server 2008 上进行安装。下表总结了 Exchange 2007 RTM 和 SP1 的操作系统支持情况。

Exchange Server 2007 产品发布 Windows Server 2003 支持 Windows Server 2008 支持

Exchange 2007 RTM

Windows Server 2003 SP1 或更高版本

Windows Server 2003 R2

不支持

Exchange 2007 SP1

Windows Server 2003 SP2

Windows Server 2008 RTM

有关 Microsoft Exchange(包括更早版本)和 Windows Server 2008 的详细信息,请参阅 Exchange 团队博客文章 Exchange Server 和 Windows Server 2008

note注意:
UNRESOLVED_TOKEN_VAL(exBlog) 

将运行 Exchange 2007 的计算机迁移到 Windows Server 2008 操作系统需要进行细致的规划,因为无法执行从 Windows Server 2003 到 Windows Server 2008 操作系统的就地升级。而必须新立服务器并迁移您的数据,或者保留您的数据并重新建立现有服务器。

如果您的组织创建和维护服务器建立文档并更改管理记录和日志,我们建议您在执行本主题介绍的步骤时参考这些材料。如果您的组织不创建和维护这些材料,则我们强烈建议您考虑做这些工作。

不支持的迁移过程

在 Exchange 团队博客文章不可能的任务:从 Windows Server 2003 到 Windows Server 2008 就地升级 Microsoft Exchange Server 2007中写道,在计算机上安装 Exchange 2007(RTM 或 SP1)时,不能就地升级操作系统。有多种技术原因会导致该情况。总结:

  • 不能将在 Windows Server 2003 上运行的现有 Exchange 2007 服务器(RTM 或 SP1)的操作系统就地升级到 Windows Server 2008。

  • 由于 Windows Server 2008 故障转移群集中引入了重大更改,因此不可能将带群集邮箱服务器的故障转移群集从 Windows Server 2003 滚动升级到 Windows Server 2008。

  • 升级独立服务器时,不支持将操作系统升级到 Windows Server 2008,然后再将 Exchange 2007 升级到 SP1。也不支持先将 Exchange 2007 升级到 SP1,然后再将操作系统升级到 Windows Server 2008。

  • 不支持在安装中跨操作系统使用任何一种服务器恢复功能。不能使用 Setup /m:RecoverServer 或 Setup /RecoverCMS 来更改 Exchange 服务器所使用的操作系统。例如,不能在 Windows Server 2008 上使用 Setup /m:RecoverServer 恢复在 Windows Server 2003 上运行的 Exchange 服务器。

支持的迁移过程

将正在 Windows Server 2003 上运行 Exchange 2007 或 Exchange 2007 SP1 的计算机迁移到 Windows Server 2008 的受支持过程有两种:安装新服务器并迁移数据,或者重建现有服务器并迁移或还原数据。

安装新服务器或群集

该过程包含建立新服务器或群集,然后使用数据迁移机制(比如邮箱移动和公用文件夹复制),将数据从旧服务器迁移到新服务器。移动邮箱通常意味着不必手动修改用户的桌面邮件配置文件。但是,在某些环境中,使用数据库可移植性(而不是移动邮箱过程)可能减少用户的停机时间。例如,如果可以将包含数据库的存储与原始服务器断开,并重新连接到新服务器,那么数据库可移植性可能会更快些,而且造成的停机时间比移动邮箱操作更少。最终,各个组织必须自行确定哪个数据迁移过程最能满足其需要。

重建现有服务器或群集

对于独立服务器,该过程包含的步骤为保留现有数据、删除所有第三方应用程序、卸载 Exchange、卸载 Windows PowerShell、将 Windows Server 2003 升级到 Windows Server 2008、安装 PowerShell 和 Windows Server 2008 的其他先决条件、安装 Exchange 2007 SP1、使用数据库可移植性或者备份和还原功能迁移数据、重新配置服务器、最后重新安装第三方应用程序。

在该过程中,如何保留数据取决于您拥有的服务器数。在多邮箱服务器环境中,可以将所有邮箱和数据移动到另一个服务器,然后卸载 Exchange。在单服务器环境中,可以禁用所有邮箱,然后卸载 Exchange。

对于群集邮箱服务器,该过程包含的步骤为从群集中的被动节点上卸载 Exchange 和 Windows PowerShell,然后从群集中删除该节点。当节点已删除后,可以执行 Windows Server 2008 的全新安装,接着安装先决条件,然后用该节点创建新的故障转移群集。

将服务器角色从 Windows Server 2003 迁移到 Windows Server 2008

将各个服务器角色从 Windows Server 2003 移动到 Windows Server 2008 的过程对于所有角色都非常相似,但是每个服务器角色都有各自的特定任务。以下几部分详细介绍将各个服务器角色移动到 Windows Server 2008 的过程。

迁移各个服务器角色时,迁移角色所遵循的顺序很重要,这尤其是因为,除非已经在整个组织中部署了 Exchange 2007 SP1,否则迁移到 Windows Server 2008 将始终涉及从 Exchange 2007 RTM 转换到 Exchange 2007 SP1。因此,必须以在您的环境中部署 SP1 的相同顺序迁移服务器角色:客户端访问、集线器传输、边缘传输、统一消息,然后是邮箱。

因此,必须考虑用 Exchange 2007 SP1 要求来规划 Windows Server 2008 部署。在一台计算机上用 Windows Server 2008 部署 Exchange 2007 SP1 可能会影响或驱动在其他计算机上用 Windows Server 2008 部署 Exchange 2007 SP1。其原因将在以下几部分进行说明。

传输服务器和边缘同步

参与 EdgeSync 进程的所有传输服务器都必须运行相同版本的 Exchange 2007(例如,全部是 RTM 或全部是 SP1)。因此,在将第一个集线器传输服务器迁移到 Windows Server 2008 之后,必须在参与 EdgeSync 进程的任何传输服务器第一次升级到 Exchange 2007 SP1 的 15 天内,在相同 Active Directory 站点中升级所有其他集线器传输服务器,并升级所有订阅 Active Directory 站点的边缘传输服务器。这并不意味着这些服务器也必须迁移到 Windows Server 2008。但意味着它们必须升级到 Exchange 2007 SP1。

不支持跨操作系统的功能

Exchange 2007 的某些功能不支持跨操作系统;即单一副本群集 (SCC) 和群集连续复制 (CCR) 环境下的备用连续复制 (SCR) 和故障转移群集的管理:

  • 使用 SCR 时,SCR 源计算机及其所有 SCR 目标计算机都必须运行相同操作系统。因此,在迁移现有 SCR 源或目标计算机之前,必须首先禁用要迁移的计算机的 SCR。

  • Windows Server 2008 与 Windows Server 的更早版本中包括的群集 API 完全分割。由于群集服务不允许使用群集管理工具对跨不同操作系统的故障转移群集进行远程管理,因此不能使用 Exchange 管理工具对跨不同操作系统的故障转移群集进行远程管理。例如,不能进行以下操作:

    • 从运行 Windows Server 2003 或 Windows XP 的计算机管理在 Windows Server 2008 上运行的群集邮箱服务器。

    • 从运行 Windows Server 2008 的计算机管理在 Windows Server 2003 上运行的群集邮箱服务器。

    除上述限制之外,不能在同一计算机上安装不同操作系统版本的群集管理工具。因此,如果 Exchange 环境中运行有多个客户端和服务器操作系统,则可能需要使用备用方法(例如,远程桌面协议工具)管理部分或全部 Exchange 服务器。

note注意:
在编写本文时,Windows Vista 的远程服务器管理工具尚不可用。这些工具必须安装在 Windows Vista 上,才能启用对运行 Windows Server 2008 的故障转移群集的远程管理。

单个服务器角色迁移的步骤

该主题中的步骤讨论如何将单个服务器角色从 Windows Server 2003 上的 Exchange 2007(RTM 或 SP1)迁移到 Windows Server 2008 上的 Exchange 2007 SP1。有关如何将单个服务器环境从 Windows Server 2003 迁移到 Windows Server 2008 的详细信息,请参阅本主题后面的“单个服务器环境的步骤”部分。

客户端访问服务器角色

客户端访问服务器将其配置数据存储在多个位置。

  • Active Directory 用于存储与可用性服务、Exchange ActiveSync 和 Outlook Web Access 虚拟目录相关的配置信息。

  • Internet Information Services (IIS) 元数据库还存储 Exchange ActiveSync、自动发现和 Exchange Web 服务的配置信息。

  • 本地配置文件(比如 Web.config 文件)和 Windows 注册表用于存储与 Outlook Web Access、IMAP、POP3、可用性服务、Exchange ActiveSync 相关的配置数据,以及 Exchange 设置所使用的信息。

客户端访问服务器的迁移过程主要是手动过程,因为不能以编程方式将配置设置从一个客户端访问服务器迁移到另一个客户端访问服务器。但是,若要自动执行大部分配置设置收集过程,可以使用名为 ExportCASConfig.ps1 的 Exchange 命令行管理程序脚本。该脚本可以从 Exchange 团队博客文章是否要导出 CAS 角色设置?下载。

note注意:
UNRESOLVED_TOKEN_VAL(exBlog)

ExportCASConfig.ps1 可以用于导出 Outlook Web Access、Exchange ActiveSync、统一消息、Web 服务、脱机通讯簿、POP3 和 IMAP4 的虚拟目录信息。它还可以导出客户端访问服务器的安装和脚本路径设置。脚本将收集到的信息导出到 XML 文件,然后在新建立的客户端访问服务器上手动重新创建所捕获的设置时,可以使用该文件作为参考。

通过使用以下步骤可以将客户端访问服务器从运行 Windows Server 2003 的服务器迁移到运行 Windows Server 2008 的新服务器。

note注意:
如果迁移到 Windows Server 2008 的客户端访问服务器是 Windows 网络负载平衡 (NLB) 群集的一部分,则我们建议在执行迁移过程时临时从 NLB 群集中删除它们。在迁移期间,NLB 群集将在相同 NLB 群集中同时有 Windows Server 2003 和 Windows Server 2008 节点。这种混合模式部署仅在升级安装正在进行时受支持,并且不应当用于部署时的时间延长期。有关如何将 NLB 群集从 Windows Server 2003 升级到 Windows Server 2008 的详细信息,请参阅升级现有网络负载平衡群集(英文)。
  1. 收集和记录所有自定义配置设置。该过程分两个阶段:部分自动(第 1 阶段)和部分手动(第 2 阶段)。

    1. 下载并运行 ExportCASConfig.ps1 脚本,以便在 XML 文件中收集上面描述的配置信息。

    2. 通过在 Web.config 文件中和在 Windows 注册表中检查和记录信息,手动收集剩余的配置设置(脚本不收集这些设置)。此外,必须手动收集和记录不作为导出过程的一部分收集的 IIS 配置和设置,比如必需的 SSL 设置、网站绑定、证书和证书映射以及 HTTP 重定向。

  2. 建立和配置运行 Exchange 2007 SP1 和 Windows Server 2008 的新客户端访问服务器。有关安装客户端访问服务器角色的详细步骤,请参阅部署服务器角色。我们还建议您访问 Microsoft 更新,为新服务器下载任何关键或推荐的更新。

  3. 在新服务器上运行 ExportCASConfig.ps1 脚本,以便在第二个 XML 文件中收集其配置信息。

  4. 使用 Microsoft WinDiff (Windiff.exe) 比较两个 XML 文件,Windows Server 2003 和 Windows Server 2008 都带有该工具。WinDiff 将比较文件或目录,并以图形显示结果。例如,以红色突出显示比较文件中没有而另一个文件中有的信息,以黄色突出显示一个文件中与比较文件不同的信息,等等。有关使用 WinDiff 的详细信息,请参阅 Microsoft 知识库文章 159214 如何使用 Windiff.exe 实用程序。通过比较从每个系统捕获的配置文件,将能够更容易辨别更改和丢失的设置,然后可以在新服务器上手动重新配置它们。

  5. 在手动重新配置收集到的配置信息所对应的设置之后,必须在新服务器上手动重新配置脚本未捕获的剩余设置,包括:

    • Web.config 文件中的信息

    • SSL 设置

    • 网站绑定

    • 证书和证书映射

    • HTTP 重定向

    可以使用 Windiff 比较原始服务器和新服务器上的 Web.config 文件。

    如果原始服务器上的 SSL 证书的私钥标记为可导出,则可以导出证书,然后将它们导入到新服务器中。有关从 IIS 6.0 导出证书的详细步骤,请参阅导出服务器证书 (IIS 6.0)。有关将证书导入到 IIS 7.0 中的详细步骤,请参阅 IIS 7.0:导入服务器证书(英文)。

    手动收集任何剩余的自定义设置,然后在新服务器上重新创建它们。

  6. Active Directory 复制在整个组织中复制新服务器及其配置设置之后,可以从原始服务器卸载客户端访问服务器角色。有关卸载 Exchange 2007 的详细步骤,请参阅如何从服务器上完全删除 Exchange 2007

集线器传输服务器角色

集线器传输服务器角色的迁移过程是服务器角色迁移中最简单的一个。有两个必须手动收集和记录的配置元素,然后需要在新服务器上重新创它们:接收连接器和边缘订阅。接收连接器和边缘订阅不能在系统之间迁移。因此,必须手动重新创建它们。此外,如果将即将退役的集线器传输服务器指定为任何发送连接器或任何外部连接器的源传输服务器,则需要从连接器的源服务器列表中删除旧的集线器传输服务器名称,并将新的集线器传输服务器添加到源服务器列表中。可以使用以下命令收集发送连接器信息:

Get-SendConnector |  where { $_.SourceTransportServers -match <NameofHubTransportServer> }

可以通过使用以下步骤执行迁移过程:

  1. 安装一个运行 Exchange 2007 SP1 和 Windows Server 2008 的新 Exchange 2007 集线器传输服务器。我们还建议您访问 Microsoft 更新,为新服务器下载任何关键或推荐的更新。有关在 Windows Server 2008 上安装集线器传输服务器角色的详细步骤,请参阅部署服务器角色

  2. 新集线器传输服务器将包括两个接收连接器:客户端连接器和默认连接器。

    1. 在原始集线器传输服务器上对客户端连接器和默认连接器进行的任何自定义更改,都必须在新集线器传输服务器上手动重新创建。

    2. 在原始集线器传输服务器上创建的任何自定义连接器也必须在新集线器传输服务器上手动重新创建。

  3. 在新服务器上运行 EdgeSync 进程,使边缘传输服务器订阅新集线器传输服务器。必须让边缘传输服务器订阅它原先订阅的相同 Active Directory 站点。不必先删除原来的边缘订阅。订阅过程将覆盖现有的边缘订阅。若要订阅边缘传输服务器,请执行以下操作:

    1. 在边缘传输服务器上导出新的 XML 文件

    2. 在新集线器传输服务器上导入 XML 文件。

    有关 EdgeSync 进程的详细信息,请参阅为边缘传输服务器订阅 Exchange 组织

  4. 根据需要重新配置发送连接器。有关重新配置发送连接器的详细步骤,请参阅如何修改发送连接器的配置

  5. 配置和订阅新集线器传输服务器后,可以从原始集线器传输服务器上删除边缘订阅,然后卸载集线器传输服务器角色。有关删除边缘订阅的详细步骤,请参阅如何删除边缘订阅。有关卸载 Exchange 2007 的详细步骤,请参阅如何从服务器上完全删除 Exchange 2007

邮箱服务器角色

邮箱服务器的迁移过程涉及移动邮箱或使用数据库可移植性移动邮箱数据、捕获和迁移自定义配置设置和公用文件夹内容、移动脱机通讯簿 (OAB) 生成过程和从原始邮箱服务器上删除 Exchange 2007。

note注意:
不能在服务器之间迁移内容索引。在完成迁移过程之后,将在新服务器上为数据库重新建立索引。

可以通过使用以下步骤执行该迁移过程:

  1. 安装运行 Exchange 2007 SP1 和 Windows Server 2008 的新 Exchange 2007 邮箱服务器或群集邮箱服务器。我们还建议您访问 Microsoft 更新,为新服务器下载任何关键或推荐的更新。有关在 Windows Server 2008 上安装邮箱服务器角色或群集邮箱服务器的详细步骤,请参阅以下主题:

  2. 用在旧服务器上使用的任何自定义的设置配置新服务器。可以使用 Exchange 服务器最佳实践分析器工具收集服务器的各种配置设置。此外,可以在 Exchange 命令行管理程序中使用以下命令,以收集服务器配置设置:

    Get-ExchangeAdministrator OriginalServerName | FL
    Get-MailboxServer OriginalServerName | FL
    Get-ExchangeServer OriginalServerName | FL
    Get-StorageGroup -Server OriginalServerName | FL
    Get-MailboxDatabase -Server OriginalServerName | FL
    Get-PublicFolderDatabase -Server OriginalServerName | FL
    

    也可以通过运行下面的命令将这些命令的输出分别重定向到单个文件:

    Get-ExchangeAdministrator OriginalServerName | FL > C:\OriginalServerName.txt
    Get-MailboxServer OriginalServerName | FL >> C:\ OriginalServerName.txt
    Get-ExchangeServer OriginalServerName | FL >> C:\ OriginalServerName.txt
    Get-StorageGroup -Server OriginalServerName | FL >> C:\ OriginalServerName.txt
    Get-MailboxDatabase -Server OriginalServerName | FL >> C:\ OriginalServerName.txt
    Get-PublicFolderDatabase -Server OriginalServerName | FL >> C:\ OriginalServerName.txt
    
  3. 如果原始服务器包含公用文件夹数据库,则可以将公用文件夹移动到新服务器。有关将公用文件夹副本从一个服务器移动到另一个服务器的详细信息,请参阅如何将公用文件夹内容从一个公用文件夹数据库移动到另一个公用文件夹数据库

  4. 将脱机通讯簿 (OAB) 生成过程移动到新服务器。有关执行此任务的详细步骤,请参阅如何将脱机通讯簿生成进程移动至另一台服务器

  5. 迁移完公用文件夹和 OAB 生成过程后,可以选择邮箱数据库迁移方法。

    1. 通过使用“移动邮箱”任务,可以将所有邮箱移动到新服务器。有关如何移动邮箱的详细信息,请参阅移动邮箱

    2. 也可以使用数据库可移植性将邮箱数据库从旧服务器移动到新服务器。有关如何使用数据库可移植性的详细信息,请参阅数据库可移植性

    如果对原始邮箱服务器上的任何存储组启用了本地连续复制 (LCR) 或 SCR,则在使用移动邮箱或数据库可移植性将任何邮箱移动到新邮箱服务器之前,应当禁用 LCR/SCR。

  6. 在邮箱已移动到新服务器之后,可以对新服务器上的一个或多个存储组启用 LCR 或 SCR。但要知道,在使用 SCR 时,所有 SCR 目标上的操作系统都必须与 SCR 源上的操作系统相匹配。由于新邮箱服务器现在正在运行 Windows Server 2008,因此新邮箱服务器上的存储组所使用的任何 SCR 目标也必须正在运行 Windows Server 2008。

  7. 若要终止原始服务器,请首先验证所有数据(包括邮箱、公用文件夹、OAB 生成和任何第三方应用程序)是否已成功迁移到新服务器。验证完整后,则可以卸载 Exchange。有关卸载 Exchange 2007 的详细步骤,请参阅如何从服务器上完全删除 Exchange 2007。有关在混合组织中卸载第一个 Exchange 2007 服务器的信息,请参阅如何删除共存方案中的第一台 Exchange 2007 服务器

边缘传输服务器角色

边缘传输服务器的迁移过程是最容易的服务器角色迁移。在 Windows Server 2003 上,边缘传输服务器角色将其配置信息存储在 Active Directory 应用程序模式 (ADAM) 中,而在 Windows Server 2008 上,则存储在 Active Directory 轻型目录服务 (AD LDS) 中。Exchange 2007 和 Exchange 2007 SP1 包含名为 ExportEdgeConfig.ps1 和 ImportEdgeConfig.ps1 的脚本,它们可以用于将边缘传输服务器配置设置从一个服务器上的 ADAM 实例导出,然后分别将这些设置导入另一个边缘传输服务器上的 ADAM 实例中。这些脚本已经过完全测试,并且支持跨操作系统使用。例如,这些脚本可以用于从 Windows Server 2003 上的 Exchange 2007 迁移到 Windows Server 2008 上的 Exchange 2007 SP1。有关这些脚本的详细信息,请参阅使用边缘传输服务器克隆配置

可以使用以下步骤执行迁移过程:

  1. 安装运行 Exchange 2007 SP1 和 Windows Server 2008 的新 Exchange 2007 边缘传输服务器。我们还建议您访问 Microsoft 更新,为新服务器下载任何关键或推荐的更新。有关在 Windows Server 2008 上安装边缘传输服务器角色的详细步骤,请参阅部署服务器角色。我们还建议您访问 Microsoft 更新,为新服务器下载任何关键或推荐的更新。

  2. 通过使用前面描述的导出和导入脚本,执行克隆配置过程。有关执行克隆配置过程的详细步骤,请参阅如何使用克隆配置任务配置边缘传输服务器角色

    important要点:
    克隆配置过程不检查或迁移任何自定义权限设置。必须在新边缘传输服务器上手动收集和重新创建这些设置。此外,克隆配置过程不复制服务器的边缘订阅设置。而且不克隆 Microsoft Exchange EdgeSync 服务使用的证书。必须对每个新边缘传输服务器单独运行 EdgeSync 进程。EdgeSync 服务会覆盖包含在克隆配置信息和 EdgeSync 复制信息中的所有设置。
  3. 从原始边缘传输服务器导出配置信息时,传输配置对象不会写入中间 XML 文件。因此,该对象的配置信息不会克隆到新边缘传输服务器。传输配置对象的设置为边缘传输服务器定义服务器范围内的电子邮件传输设置。将中间 XML 文件导入到目标服务器后,传输配置对象的设置将采用默认值。若要在新边缘传输服务器上还原传输配置对象设置,则在导入过程完成后,必须执行以下步骤以配置这些设置:

    1. 对原始服务器运行 Get-TransportConfig cmdlet 以收集传输配置设置。

    2. 在新服务器上运行 Set-TransportConfig cmdlet,将设置从原始服务器重新创建到新服务器。

  4. 根据情况更新域名系统 (DNS) 记录。例如,应当从邮件交换器 (MX) 记录中删除原始边缘传输服务器的 IP 地址,并将新边缘传输服务器的 IP 地址添加到 MX 记录中。

  5. 验证所有邮件队列是否均为空。如果任何队列包含邮件,则继续该过程前,应当处理完该队列。可以使用以下命令确定每个邮件队列中的邮件数:

    Get-Queue -Server OriginalServerName | fl Identity,MessageCount
    

    MessageCount 的值为 0 指示队列为空。如果任何队列包含必须传递的邮件,则通过使用 Set-ReceiveConnector cmdlet,在服务器上禁用所有接收连接器,可以处理完该队列。这可以防止服务器接受新连接。有关禁用接收连接器的详细步骤,请参阅如何启用或禁用接收连接器。在禁用所有接收连接器后,请等待队列清空。

  6. 通过使用 Remove-EdgeSubscription cmdlet,从集线器传输服务器上删除它订阅的边缘订阅。有关删除边缘订阅的详细步骤,请参阅如何删除边缘订阅

  7. 在新服务器上运行 EdgeSync 进程,以便在新边缘传输服务器上建立从 Active Directory 到 Active Directory 轻型目录服务实例的收件人和配置信息的单向复制。有关 EdgeSync 进程的详细信息,请参阅为边缘传输服务器订阅 Exchange 组织

  8. 配置和订阅新边缘传输服务器后,可以从原始服务器上卸载边缘传输服务器角色。有关卸载 Exchange 2007 的详细步骤,请参阅如何从服务器上完全删除 Exchange 2007

统一消息服务器角色

统一消息 (UM) 服务器的迁移过程涉及将提示语发布点从原始服务器移动到新服务器。其他 UM 配置设置(比如启用 UM 的用户的录音名称和个人问候)分别存储在 Active Directory 和用户邮箱中。因此,不需要迁移该数据。

拨号计划和自动助理的自定义问候将发布到 UM 提示语发布点,并且拨号计划中的每个 UM 服务器将从那里获得自己的副本。默认情况下,拨号计划的提示语发布点位于加入拨号计划的第一个 UM 服务器上。通过使用 Exchange 命令行管理程序,可以确定提示语发布点的位置。例如,如果您有名为 DialPlan1 的拨号计划,则可以在 Exchange 命令行管理程序中运行以下命令确定提示语发布点的路径:

$dp = Get-UMDialPlan DialPlan1
$dp.PromptPublishingPoint

输出将是一个全局命名约定 (UNC) 路径,它包括第一个加入 DialPlan1 的 UM 服务器的完全限定的域名 (FQDN)。例如,如果加入 DialPlan1 的第一个 UM 服务器的名称为 UMSVR1 并位于 fabrikam.com 域中,则输出是:

\\umsvr1.fabrikam.com\ExchangeUM

如果 UMSVR1 将在迁移后继续提供 UM 服务,则可以让它们保持不变。但是,如果计划让 UMSVR1 退役,并且需要继续更新自定义拨号计划和自动助理提示,则必须将提示语发布点移动到其他地方。新位置不必是 UM 服务器,但它需要是每次发布提示时都可以使用的计算机。假设您想将提示语发布点移动到 newserv.fabrikam.com。要完成该任务,需要执行以下步骤:

  1. 建立和配置运行 Exchange 2007 SP1 和 Windows Server 2008 的新统一消息服务器。有关安装统一消息服务器角色的详细步骤,请参阅部署服务器角色。我们还建议您访问 Microsoft 更新,为新服务器下载任何关键或推荐的更新。

  2. 配置新的统一消息服务器,使其加入现有统一消息服务器所属的拨号计划。

  3. 使用以下命令,将旧提示语发布点下面的所有内容复制到新提示语发布点:

    xcopy \\umsvr1\ExchangeUM \\newserv\ExchangeUM /s /e
    
  4. 在新统一消息服务器上,运行 Update-FileDistributionService cmdlet,这将强制立即执行文件复制。

  5. 更新拨号计划配置,以引用新发布点:

    $dp = Get-UMDialPlan MyDP
    $dp.PromptPublishingPoint = \\newserv.fabrikam.com\ExchangeUM
    $dp | Set-UMDialPlan
    
  6. Active Directory 复制已在整个组织中复制该更改之后,可以从原始服务器卸载统一消息服务器角色。有关卸载 Exchange 2007 的详细步骤,请参阅如何从服务器上完全删除 Exchange 2007

单个服务器环境的步骤

尽管前面介绍的移动五个服务器角色的过程在多服务器环境中可以正常使用,但由于明显的原因,在运行安装了集线器传输、客户端访问和邮箱服务器角色的 Exchange 2007 的单个计算机的环境中,和在没有用于建立新服务器的硬件的情况下,这些过程不能正常使用。因此,在单个服务器环境中,必须保留现有数据,然后重建现有服务器。

important要点:
本文中的单个服务器环境是指运行多个服务器角色的单个成员服务器。如果您的单个服务器环境是运行多个服务器角色的目录服务器,并且它是环境中唯一的目录服务器,则不应当执行 Windows Server 2008 的全新安装。而应当执行操作系统的就地升级,这将保留您的目录服务器设置和数据。有关如何将 Active Directory 从 Windows Server 2003 升级到 Windows Server 2008 的详细信息,请参阅 Active Directory 域服务
如果在该过程中丢失了用户帐户信息,可以在 Active Directory 中根据邮箱数据库中的用户信息重新创建帐户。有关如何根据邮箱数据库中的信息创建用户帐户的详细信息,请参阅如何使用邮箱数据库中的邮箱信息生成 Active Directory 帐户
此外,本文中的单个服务器环境不包含任何边缘传输服务器。如果您的单个服务器环境包括边缘传输服务器,则在迁移多角色服务器后,应当迁移边缘传输服务器。有关边缘传输服务器角色迁移过程的信息,请参阅本文前面介绍的“边缘传输服务器角色”。

将在 Windows Server 2003 上运行 Exchange 2007 的计算机迁移到在 Windows Server 2008 上运行 Exchange 2007 SP1, 需要从基本上重新配置新服务器,但使用数据库可移植性则可以将邮箱数据从原始服务器很容易地迁移到重建的新服务器。

将包含客户端访问、集线器传输、邮箱和统一消息服务器角色的单个服务器环境从 Windows Server 2003 迁移到 Windows Server 2008 的过程如下:

  1. 通过使用 Windows 备份 (aka NTBackup.exe),对系统进行完整备份。如果服务器有公用文件夹数据库,则为公用文件夹数据库及其日志文件建立脱机副本尤其重要,因为随后在该过程中它们将被复制到最新重建的服务器上。

  2. 从现有服务器收集尽可能多的配置信息。可以在 Exchange 命令行管理程序中使用以下命令,收集服务器配置设置:

    Get-ExchangeAdministrator OriginalServerName | FL
    Get-MailboxServer OriginalServerName | FL
    Get-ExchangeServer OriginalServerName | FL
    Get-StorageGroup -Server OriginalServerName | FL
    Get-MailboxDatabase -Server OriginalServerName | FL
    Get-PublicFolderDatabase -Server OriginalServerName | FL
    Get-SendConnector |  where { $_.SourceTransportServers -match <NameofHubTransportServer> } | FL
    

    也可以通过运行下面的命令将这些命令的输出分别重定向到单个文件:

    Get-ExchangeAdministrator OriginalServerName | FL > C:\OriginalServerName.txt
    Get-MailboxServer OriginalServerName | FL >> C:\ OriginalServerName.txt
    Get-ExchangeServer OriginalServerName | FL >> C:\ OriginalServerName.txt
    Get-StorageGroup -Server OriginalServerName | FL >> C:\ OriginalServerName.txt
    Get-MailboxDatabase -Server OriginalServerName | FL >> C:\ OriginalServerName.txt
    Get-PublicFolderDatabase -Server OriginalServerName | FL >> C:\ OriginalServerName.txt
    Get-SendConnector |  where { $_.SourceTransportServers -match <NameofHubTransportServer> } | FL >> C:\ OriginalServerName.txt
    

    但是,若要对客户端访问服务器角色自动执行大部分配置设置收集过程,可以使用名为 ExportCASConfig.ps1 的 Exchange 命令行管理程序脚本。该脚本可以从 Exchange 团队博客文章是否要导出 CAS 角色设置?(英文)下载。

    还应当通过在 Web.config 文件中和在 Windows 注册表中检查和记录信息,手动收集剩余的配置设置(ExportCASConfig.ps1 不收集这些设置)。此外,必须手动收集未收集的 IIS 配置和设置,比如必需的 SSL 设置、网站绑定、证书和证书映射以及 HTTP 重定向。

    如果服务器正在运行统一消息服务器角色,则我们建议将现有提示语发布点下的所有文件复制到安全位置。例如,使用以下命令可以将名为 Server1 的服务器上的现有提示语发布点下的所有文件,复制到名为 Server2 的服务器上的名为 UMSave 的共享中:

    xcopy \\Server1\ExchangeUM \\Server2\UMSave /s /e
    
  3. 在收集完服务器的配置信息之后,将包含所收集的配置设置(例如,OriginalServerName.txt)的所有文件复制到安全位置。

  4. 如果对服务器上的存储组启用了 LCR,则必须在重建服务器前运行以下命令禁用它:

    Get-StorageGroup -Server <ServerName> | Disable-StorageGroupCopy -Confirm:$False
    
  5. 禁用服务器上邮箱数据库中的所有用户邮箱。可通过在 Exchange 命令行管理程序中运行以下命令完成该操作:

    Get-Mailbox -Server <ServerName> | Disable-Mailbox -Confirm:$False
    
  6. 如果服务器包含公用文件夹数据库,则通过运行以下命令删除公用文件夹数据库:

    Get-PublicFolder -Server <ServerName> "\" -Recurse -ResultSize:Unlimited | Remove-PublicFolder -Server <ServerName> -Recurse -ErrorAction:SilentlyContinue
    Get-PublicFolder -Server <ServerName> "\Non_Ipm_Subtree" -Recurse -ResultSize:Unlimited | Remove-PublicFolder -Server <ServerName> -Recurse -ErrorAction:SilentlyContinue
    
  7. 通过运行以下命令卸除所有邮箱数据库,然后停止 Microsoft Exchange Information Store 服务(和所有依存关系服务):

    Get-MailboxDatabase -Server <ServerName> | Dismount-Database -Confirm:$False
    net stop msexchangeis /y
    
  8. 停止 Microsoft Exchange Information Store 服务后,将包含邮箱数据库和日志文件的存储组文件夹复制到安全位置。然后,将包含公用文件夹数据库及其日志文件的存储组复制到安全位置。

  9. 按照应用程序供应商的删除说明卸载所有与 Exchange 集成的应用程序。如果删除与 Exchange 集成的应用程序时需要使用该服务,则可以通过使用 net start msexchangeis 重新启动 Microsoft Exchange Information Store 服务。

  10. 从服务器卸载 Exchange。有关卸载 Exchange 2007 的详细步骤,请参阅如何从服务器上完全删除 Exchange 2007

  11. 在 Exchange 安装程序已经完成删除过程之后,重新启动计算机,然后用具有本地管理权限的帐户登录到该计算机。

  12. 如果计划执行操作系统的就地升级,则必须首先从服务器卸载 Windows PowerShell。要完成该任务,请执行以下操作:

    1. 打开 Windows 控制面板,并导航到“添加或删除程序”。

    2. 选中“显示更新”复选框。

    3. 向下滚动已安装应用程序和更新的列表,选择名为“Windows Server 2003 更新 (KB926139)”的更新,然后单击“删除”。

    note注意:
    如果“Windows Server 2003 更新 (KB926139)”条目尚未出现,则在安装 Windows PowerShell 之后,它可能指示已安装 Windows Server 2003 的 Service Pack 2。在该事件中,必须首先卸载 Windows Server 2003 的 Service Pack 2,然后才能卸载 Windows PowerShell。
    note注意:
    可能还有其他应用程序或 Windows 组件必须在 Windows Server 2003 就地升级到 Windows Server 2008 之前进行安装。在安装 Windows Server 2008 期间将执行兼容性检查,它将告诉您是否必须删除其他应用程序或组件。
  13. 此时,您可以继续执行操作系统的就地升级,也可以重新格式化驱动器并执行 Windows Server 2008 的全新安装。我们建议选择全新安装 Windows Server 2008,而不是就地升级。但是,两种方案都支持。

    note注意:
    如果要执行全新安装,则我们建议为新服务器使用原始服务器的名称。此外,如果原始服务器有将还原到新服务器的公用文件夹数据库,则必须使用原始服务器名称来建立新服务器,否则将无法在新服务器上重新提供该公用文件夹数据库。
  14. 在安装 Windows Server 2008 之后,可以安装在 Windows Server 2008 上运行 Exchange 2007 SP1 所必需的先决条件。有关安装每个服务器角色的先决条件的详细步骤,请参阅如何在 Windows Server 2008 或 Windows Vista 上安装 Exchange 2007 SP1 和 SP2 先决条件

  15. 安装了在 Windows Server 2008 上运行 Exchange 2007 SP1 的先决条件后,可以安装 Exchange 2007 服务器角色。有关安装一个或多个服务器角色的详细步骤,请参阅部署服务器角色。我们还建议您访问 Microsoft 更新,为新服务器下载任何关键或推荐的更新。

  16. 在安装了必需的服务器角色并且系统已重新启动之后,可以继续对每个服务器角色的设置进行重新配置,并使数据库恢复生产状态。重新创建配置设置时,请确保引用在该过程的步骤 2 中创建的 OriginalServerName.txt 文件。

    客户端访问服务器角色:

    1. 在新服务器上运行 ExportCASConfig.ps1 脚本,以便在第二个 XML 文件中收集其配置信息。

    2. 使用 Microsoft WinDiff (Windiff.exe) 比较两个 XML 文件,Windows Server 2003 和 Windows Server 2008 都带有该工具。有关如何使用 WinDiff 的详细信息,请参阅 Microsoft 知识库文章 159214 如何使用 Windiff.exe 实用程序。通过比较从每个系统捕获的配置文件,将能够更容易辨别更改和丢失的设置,然后可以在新服务器上手动重新配置它们。

    3. 在手动重新配置收集到的配置信息所对应的设置之后,必须在新服务器上手动重新配置脚本未捕获的剩余设置包括在 Web.config 文件中的信息、SSL 设置、网站绑定、证书和证书映射以及 HTTP 重定向。

    4. 如果原始服务器上的 SSL 证书的私钥标记为可导出,则可以导出证书,然后将它们导入到新服务器中。有关从 IIS 6.0 导出证书的详细步骤,请参阅导出服务器证书 (IIS 6.0)。有关将证书导入到 IIS 7.0 中的详细步骤,请参阅 IIS 7.0:导入服务器证书

    集线器传输服务器角色:

    1. 在原始集线器传输服务器上对客户端连接器和默认连接器进行的任何自定义更改,都必须在新集线器传输服务器上手动重新创建。

    2. 在原始集线器传输服务器上创建的任何自定义连接器也必须在新集线器传输服务器上手动重新创建。

    3. 根据需要重新配置发送连接器。有关重新配置发送连接器的详细步骤,请参阅如何修改发送连接器的配置

    邮箱服务器角色:

    1. 根据需要重新配置存储组,以使它们与原始服务器所使用的存储组相匹配。

    2. 使用数据库可移植性将邮箱数据库迁移到新生产环境中。有关数据库可移植性的详细信息,请参阅数据库可移植性

    3. 使用数据库可移植性迁移所有邮箱数据库后,应当装入这些邮箱数据库,以便让用户重新连接到他们的邮箱。可以使用 Mount-Database cmdlet 装入邮箱数据库。有关 Mount-Database cmdlet 的详细信息,请参阅 Mount-Database

    4. 重新连接每个邮箱数据库上的所有邮箱。可以使用 Exchange 命令行管理程序获得特定数据库的断开统计数据,然后将这些结果通过管线传输到 Connect-Mailbox cmdlet。例如,若要重新连接服务器 Server01 上的存储组 SG1 中的邮箱数据库 MBX1 中存储的所有邮箱:

      Get-MailboxStatistics | Where {$_.DisconnectDate -ne $null} | Connect-Mailbox -Database "Server01\SG1\MBX1"
      
    5. 通过使用原始邮箱服务器上使用的相同存储组和数据库名称和路径,创建新的存储组和公用文件夹数据库。在创建新公用文件夹数据库之后,请将其卸除,然后删除公用文件夹存储组和数据库文件夹中的所有文件。将原始公用文件夹数据库和日志文件复制到公用文件夹数据库的相应存储组和数据库位置。

    6. 在将公用文件夹数据库和日志文件复制到相应的目标文件夹之后,可以使用 Mount-Database cmdlet 装入数据库。

    统一消息服务器角色:

    1. 根据需要重新创建拨号计划,并配置服务器以加入新的拨号计划。

    2. 从安全位置将提示语发布点的所有文件复制到 UM 服务器上的 ExchangeUM 共享。例如,使用以下命令可以从 Server2 上的 UMSave 将现有提示语发布点的所有文件复制到最新重建的 Server1:

      xcopy \\Server2\UMSave \\Server1\ExchangeUM /s /e
      
    3. 在新统一消息服务器上,运行 Update-FileDistributionService cmdlet,这将强制立即执行文件复制。

    4. 更新拨号计划配置,以引用新发布点。例如,如果 domain.com 中的 Server1 包含提示语发布点,则运行以下命令:

      $dp = Get-UMDialPlan MyDP
      $dp.PromptPublishingPoint = \\server1.domain.com\ExchangeUM
      $dp | Set-UMDialPlan
      
  17. 在新服务器上重新创建各个服务器角色之后,使服务器恢复生产状态之前,我们建议执行以下操作:

    1. 运行 Exchange 服务器最佳实践分析器工具,并检查是否有任何配置警告或错误

    2. 为服务器建立完整备份。

    note注意:
    Windows Server 2008 中的 Windows 服务器备份不再支持感知 Exchange 的备份或还原。与 Windows 备份的更早版本有所不同,您无法使用 Windows 服务器备份来建立或还原 Exchange 的流备份。若要在 Windows Server 2008 上备份和还原 Exchange 2007 SP1,必须使用支持 Exchange 2007 的卷影复制服务 (VSS) 书写器的 Exchange 感知应用程序(比如 Microsoft 系统中心数据保护管理器)、基于 VSS 的第三方 Exchange 感知应用程序、或在 Exchange 服务器上以本地方式使用流式备份 API 以在 Exchange 服务器上进行本地备份的第三方 Exchange 感知应用程序,。

详细信息

有关 Exchange 2007 SP1 和 Windows Server 2008 的详细信息,请参阅以下链接和资源:

c3bb668a-52ea-48e3-9baf-651eeeb86f99 Scott Schnoll - 主要技术撰稿人,Microsoft Exchange Server