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

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

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

E:\setup.exe /PrepareSchema /IAcceptExchangeServerLicenseTerms
E:\setup.exe /PrepareAD /IAcceptExchangeServerLicenseTerms
E:\ setup.exe /PrepareDomain /IAcceptExchangeServerLicenseTerms

安装Exchange 2016/2019累积更新,依次在每台服务器:

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

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

Set-ServerComponentState B-EX02 -Component HubTransport -State Draining -Requester Maintenance

Redirect-Message -Server B-EX02 -Target B-EX01.beiou.biz  [这里必须是目标服务器FQDN]

 

服务器B-EX02 版本升级到Exchange 2019 CU9

Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn;

Get-ExchangeServer | select Name,AdminDisplayVersion

Exchange 2016/2019 DAG安装累积更新_服务器\

1.将EX02上 HubTransport 的队列重定向到另一台服务器EX01,

Set-ServerComponentState B-EX02 -Component HubTransport -State Draining -Requester Maintenance

Redirect-Message -Server B-EX02 -Target B-EX01.beiou.biz

 

Exchange 2016/2019 DAG安装累积更新_服务器_02

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

Suspend-ClusterNode -Name B-EX02
禁用数据库副本自动激活,将活动数据库复制到其它健康的 DAG 成员:该操作需要等待几分钟生效

Set-MailboxServer B-EX02 -DatabaseCopyActivationDisabledAndMoveNow $true

Get-MailboxServer B-EX02 | Select DatabaseCopyAutoActivationPolicy

Exchange 2016/2019 DAG安装累积更新_服务器_03

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

以上策略尚未设置为「Blocked」,而是Unrestricted 所以要将这个策略设置成:Blocked

Set-MailboxServer B-EX02 -DatabaseCopyAutoActivationPolicy Blocked

Exchange 2016/2019 DAG安装累积更新_服务器_04

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

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

Exchange 2016/2019 DAG安装累积更新_服务器_05

 

2.将服务器置于维护模式:

Set-ServerComponentState B-EX02 -Component ServerWideOffline -State InActive -Requester Maintenance

Exchange 2016/2019 DAG安装累积更新_Exchange_06

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

验证负载均衡器的健康状态或将其标记为脱机/无效。
若负载平衡器不能自动执行此操作,请手动标记服务器为脱机/无效。
对于采用 DNS 轮循的 Exchange 2016/19 在更新前请删除其对应的 DNS 记录。

重启 Exchange 服务器,已清除任何需要重启的挂起操作。

Restart-Computer

3.在重启完成后,在 CMD 中执行如下命令开始积累更新的正式安装:

E:\setup.exe /m:upgrade /IAcceptExchangeServerLicenseTerms

Exchange 2016/2019 DAG安装累积更新_服务器_07

升级完成,再次查看版本确认:

Get-ExchangeServer | select Name,AdminDisplayVersion

Exchange 2016/2019 DAG安装累积更新_Exchange_08

在积累更新安装完成并再次重启服务器,

Restart-Computer

 

请管理员执行基本的健康检查:

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

Get-Services

Exchange 2016/2019 DAG安装累积更新_Exchange_09

4.在确认无误之后,便可以将更新好的 Exchange Server 2016/19 从维护模式中恢复过来。
将服务器退出维护模式:

Set-ServerComponentState B-EX02 -Component ServerWideOffline -State Active -Requester Maintenance

Exchange 2016/2019 DAG安装累积更新_Exchange_10
Resume-ClusterNode -Name B-EX02

Exchange 2016/2019 DAG安装累积更新_服务器_11
Set-MailboxServer B-EX02 -DatabaseCopyAutoActivationPolicy Unrestricted

Get-MailboxServer B-EX02 | Select DatabaseCopyAutoActivationPolicy

Exchange 2016/2019 DAG安装累积更新_Exchange_12


Set-MailboxServer B-EX02 -DatabaseCopyActivationDisabledAndMoveNow $false


Set-ServerComponentState B-EX02 -Component HubTransport -State Active -Requester Maintenance

 

更新后任务

在部署 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 验证没有服务器还处于维护模式