系统极客一直在努力
专注于操作系统及软件使用教程

安装Exchange Server 2016积累更新(CU)最佳实践

Exchange Server 2016

随着微软发布首个 Exchange 2016 CU 更新,本文将向大家介绍安装部署 Exchange Server 2016 积累更新(CU)的最佳实践和注意事项。

准备工作

在正式开始部署 Exchange Server 2016 积累更新之前,首先需要注意:

  • 只通过微软官方网站下载积累更新程序,而不要从任何第三方站点进行下载。在部署时只需安装最新版本的 CU,不必依次安装当前版本到最新 CU 之前的所有积累更新。
  • 确认已对 Active Directory 进行了备份。
  • 确认已经备份了 Exchange 2016 服务器和数据库。
  • 确保对自定义设置如:OWA 登录界面、web.config 配置文件、注册表及第三方加载项等配置进行了记录。

已知问题

微软一般不会列出积累更新已知问题的全面清单,因此也不建议企业在微软发布 CU 之后立即进行更新。大家应该在阅读有关积累更新的博客文章及查看其它用户在 TechNet 论坛报告的问题之后再进行更新。

Exchange Server 2016积累更新顺序

请大家注意组织中 Exchange 2016 实施积累更新的顺序:

  • Mailbox Server 优先更新
  • Edge Transport Server 随后更新

对于负载均衡和 Exchange 2016 DAG 成员,会有一段时间 Exchange Server 2016 服务器处在不同版本。这是微软升级更新所提前预期和被支持的,但管理员应该对要升级的服务器按计划进行更新,以便所有成员在一段合理的时期内都得到更新。

从经验来看,不同成员可在数天、周内处于不同版本,但最好不要过「月」,因此对于大规则应用场景的管理员必需对升级进行周密计划。

部署Exchange Server 2016积累更新

安装部署如下:

  • 执行 Active Directory Schema 更改和更新,对于整个 Active Directory 林只需执行一次,无需在每台服务器升级时重复操作。
  • 更新服务器,依次在每台服务器:
    • 将服务器置于维护模式
    • 安装更新
    • 执行测试
    • 退出维护模式
  • 执行更新后任务:
    • 重新平衡 DAG
    • 恢复自定义设置
    • 执行环境健康检查

Active Directory Schema更改和更新

大多数的 Exhcange 积累更新都包括对 Active Directory 架构更改及其它更新,因此我们要事先进行考虑和计划。对于架构的更新可以不在 Exchange 2016 服务器上进行操作。

升级 Exchange Server 2016 积累更新的架构扩张过程与全新部署 Exchange 2016 时类似,步骤如下:

1 执行 setup.exe /PrepareSchema /IAcceptExchangeServerLicenseTerms

要求 Enterprise Admins 和 Schema Admins 权限,并且 Schema Master 所在服务器已经安装 RSAT-ADDS 组件

2 执行 setup.exe /PrepareAD /IAcceptExchangeServerLicenseTerms

3 在森林中的每个域中执行 setup.exe /PrepareDomain /IAcceptExchangeServerLicenseTerms

更新Exchange 2016服务器

对于 Exchange 2016 Mailbox Server 和 Edge Transport Server,无论其是否独立运行或是负载均衡、DAG 成员,都请使用如下步骤安装积累更新。

将 HubTransport 的队列重定向到另一台服务器上,如果你只有一台 Exchange 服务器,可以跳过重定向操作。

Set-ServerComponentState EX2016SRV1 –Component HubTransport –State Draining –Requester Maintenance
Redirect-Message -Server EX2016SRV1 -Target EX2016SRV2.sysgeek.cn

如果服务器是 DAG 成员,请执行如下命令:

Suspend-ClusterNode –Name EX2016SRV1

禁用数据库副本自动激活,如下命令会将活动数据库复制到其它健康的 DAG 成员。(该操作需要几分钟生效)

Set-MailboxServer EX2016SRV1 –DatabaseCopyActivationDisabledAndMoveNow $true

记下服务器上的数据库副本自动激活策略,这样你就可以在维护结束后设置回该值:

Get-MailboxServer EX2016SRV1 | Select DatabaseCopyAutoActivationPolicy

如果策略尚未设置为「Blocked」,可执行如下命令进行设置:

Set-MailboxServer EX2016SRV1 –DatabaseCopyAutoActivationPolicy Blocked

检查服务器上所挂载的所有数据库副本,如果仍有活动数据库,请手动将其切换到其它 DAG 成员:

Get-MailboxDatabaseCopyStatus -Server EX2016SRV1 | Where {$_.Status -eq "Mounted"}

将服务器置于维护模式:

Set-ServerComponentState EX2016SRV1 –Component ServerWideOffline –State InActive –Requester Maintenance

对于负载均衡池中的 Exchange 2016:

  • 验证负载均衡器的健康状态或将其标记为脱机/无效。
  • 若负载平衡器不能自动执行此操作,请手动标记服务器为脱机/无效。

对于采用 DNS 轮循的 Exchange 2016 在更新前请删除其对应的 DNS 记录。

重启 Exchange 服务器,已清除任何需要重启的挂起操作。在重启完成后,在 CMD 中执行如下命令开始积累更新的正式安装:

setup /m:upgrade /IAcceptExchangeServerLicenseTerms

在积累更新安装完成并再次重启服务器后,请管理员执行基本的健康检查:

  • 查看 Eventlog 中的错误和警告信息
  • 检查服务器上的 Exchange 相关服务是否已经正常启动

在确认无误之后,便可以将更新好的 Exchange Server 2016 从维护模式中恢复过来。

Set-ServerComponentState EX2016SRV1 –Component ServerWideOffline –State Active –Requester Maintenance
Resume-ClusterNode –Name EX2016SRV1
Set-MailboxServer EX2016SRV1 –DatabaseCopyAutoActivationPolicy Unrestricted
Set-MailboxServer EX2016SRV1 –DatabaseCopyActivationDisabledAndMoveNow $false
Set-ServerComponentState EX2016SRV1 –Component HubTransport –State Active –Requester Maintenance

注意:如果不是 DAG 成员,只有第一和最后一条命令是必要操作。

更新后任务

在部署 Exchange Server 2016 积累更新(CU)后还有一些更新后任务需要执行。

重新平衡DAG

在整个 Exchange 组织的更新过程中,DAG 数据库副本可能在各成员之间被多次移动和切换,如果你希望主动数据库副本回到最佳的 DAG 成员(又称再平衡 DAG),可以使用微软提供的脚本:

cd $exscripts
.\RedistributeActiveDatabases.ps1 -DagName EX2016DAG01 –BalanceDbsByActivationPreference

还原自定义设置

之前已经让大家对 OWA 登录界面、web.config 配置文件、注册表及第三方加载项等进行过自定义配置进行了记录,此时大家可以按原来的配置进行还原。

执行服务器健康检查

下面是整个组织的 Exchange 2016 都更新完 CU 之后的一些健康检查建议:

  • 检查所有群集节点:可在 DAG 成员之一使用 Get-ClusterNode cmdlet
  • 测试服务健康:在所有服务器上使用 Test-ServiceHealth cmdlet
  • 测试所有数据库的 MAPI 连接:在所有数据库服务器上会用 Test-MAPIConnectivity cmdlet
  • 检查 DAG 数据库副本状态:使用 Get-MailboxDatabaseCopyStatus cmdlet 验证所有数据库副本、复制/重播队列和索引健康
  • 测试 DAG 复制状态:在每个 DAG 成员使用 Test-ReplicationHealth cmdlet 验证复制运行状态
  • 检查服务器组件状态:使用 Get-ServerComponent 验证没有服务器还处于维护模式
分享到:更多 ()