在安装每月的Windows安全和功能更新时,必须将Exchange Server置于维护模式。Exchange Server累积更新(CU),或任何其他软件更新,以及进行硬件升级或更换。否则,它将导致数据库损坏,甚至导致服务器故障。下面,我们将讨论逐步将Exchange Server置于维护模式的过程。
将Exchange Server置于维护模式的步骤
要将服务器置于维护模式,您需要在Exchange中的另一台Exchange服务器上使用Exchange Management Shell (EMS)中的PowerShell命令数据库可用性组(DAG)。
让我们从这个过程开始。
耗尽消息队列
第一步是耗尽消息队列。为此,您需要使用Set-ServerComponentStatePowerShell命令,如下所示。
设置servercomponentstate -Identity“服务器名放入维护模式”-组件HubTransport -状态抽取-请求者维护
这将使服务器处于维护模式以消耗所有消息。接下来,您需要使用以下命令将所有排队的消息重定向到另一个服务器。
重定向-消息-服务器“维护中的服务器名称”-目标“重定向到的服务器名称”
上面的命令将把所有排队的消息重定向到新主机。
从集群挂起服务器
下一步是暂停或挂起集群和数据库可用性组(DAG)中的服务器,以减少集群服务出现问题的风险。要从集群中挂起服务器,需要挂起集群中的节点。要做到这一点,请使用Suspend-ClusterNodePowerShell命令如下所示。
Suspend-ClusterNode "处于维护模式的服务器名称"
从服务器上移动任何活动副本
辅助服务器仍然可以托管活动数据库副本。因此,您需要将其移动到另一个服务器。可以使用Set-MailboxServer命令如下所示。
设置mailboxserver“维护模式下的服务器名称”-DatabaseCopyActivationDisabledAndMoveNow $true
这可能需要一些时间来完成,因为它不是实例更改。
设置激活策略
您还需要记录服务器上的激活策略,以确保退出维护模式后保留该值。使用以下命令获取激活策略。
Get-MailboxServer“处于维护模式的服务器名称”|选择DatabaseCopyAutoActivationPolicy
现在,您需要确保将激活策略设置为阻止。这可确保在执行维护时,目标服务器上没有数据库联机。
设置mailboxserver "处于维护模式的服务器名称" -DatabaseCopyAutoActivationPolicy Blocked
验证
您需要确认服务器上没有活动数据库。为此,运行以下命令。
Get-MailboxDatabaseCopyStatus -Server“处于维护模式的服务器名”| Where {$_.}Status -eq "Mounted"} | ft -AutoSize
您还需要确保服务器的队列中没有电子邮件。如果存在任何队列,则在消息计数中应该显示为零。
为此,您需要运行Get-Queue命令。
设置服务器进入维护模式
如果要将服务器设置为维护模式,请使用Set-ServerComponentState命令如下所示。
Set-ServerComponentState“服务器名称处于维护模式”-Component ServerWideOffline -State Inactive -Requester maintenance
要验证服务器是否处于非活动状态并处于维护模式,您需要使用相同的命令(如下所示)并确认所有服务,除了监控和RecoveryActionEnabled,是不活跃的。
Get-ServerComponentState“处于维护模式的服务器名称”|选择组件、状态
建议完成以上步骤后,重新启动服务器。这将释放所有正在运行的进程,并清除所有已启动的挂起更新。
结论
您必须在营业时间以外进行此类操作,以确保业务不会中断。您还需要确保,如果出现任何问题,您可以在不丢失数据的情况下恢复数据库。在安装CU (Cumulative Updates,累积更新)或将服务器置于维护模式期间,可能会由于突然断电、配置错误或进程未按顺序运行而导致Exchange server损坏。数据库或事务日志可能会损坏。
在这种情况下,重要的是要有合适的工具,可以帮助您从这种情况下恢复最少的停机时间和没有数据丢失。其中一个应用程序是星修交换。此应用程序可以在任何版本的Exchange Server和任何状态下打开损坏的EDB文件。它允许您浏览EDB文件,并将数据导出为PST和其他格式。它还可以将恢复的数据库直接导出到新的Exchange Server数据库或Microsoft 365。