Wednesday, 25 March 2015

Applying Cumulative Updates to Exchange 2013

Before we perform any updating we must make sure the following pre-equisites are performed:

- Backup Active Directory: To do this we will take a system state backup of the domain controller (with the Schema Master FSMO role on!) and if in the event that something goes wrong we can peform an authorative restore.

To do the backup we can simpl use ntbackup (or use the wizard):
ntbackup backup systemstate /J "AD Backup" /F "F:\ADbackup.bkf"

It is reccomended you make sure that the upgrade is tested in a development environment before attempting the update. This is because if the schema get's bodged you will have to restore your old DC and re-build all of the other DC's - as an authorative restore will not work on the schema!

- We will also require a backup of the Exchange server and its databases.

Make sure the user is a member of the Enterpise Admins and Schema Admins.

Remove any UM Language packs (apart from en-US) e.g. :

Setup.exe /RemoveUmLanguagePack:en-GB

Upon updating, we can then install the language pack again:

http://www.microsoft.com/en-us/download/details.aspx?id=35368

Dependent on your Exchange topology will determine on how you apply the updates.

If your Exchange server is not part of a DAG:

Assuming that you have separated the mailbox and CAS roles you will have a single mailbox server and a separate CAS. If we were to upgrade the mailbox server we

Set-ServerComponentState <mailbox-server> –Component HubTransport –State Draining –Requester Maintenance

We also have the ability to setup a mail re-direct o another mailbox server (if available):
Redirect-Message -Server <mailbox-server> -Target <fqdn-of-the-target-server>

Finally we put the server into maintainence mode:
Set-ServerComponentState <mailbox-server> –Component ServerWideOffline –State InActive –Requester Maintenance

If your Exchange server IS part of a DAG:

You will also need to do the following (but don't put the server into maintaince mode just yet):

Suspend-ClusterNode –Name <mailbox-server> // Which suspends the node within the SAG

Set-MailboxServer <mailbox-server> –DatabaseCopyActivationDisabledAndMoveNow $true // Disable database copy activation

We need to determine the data auto copy activation policy is so we can se it back accordingly after the upgrade:
Get-MailboxServer <mailbox-server> | Select DatabaseCopyAutoActivationPolicy

And now we can set the auto activation policy to "Blocked":
Set-MailboxServer E15MB1 –DatabaseCopyAutoActivationPolicy Blocked

And finally put the server into maintainence mode:
Set-ServerComponentState <mailbox-server> –Component ServerWideOffline –State InActive –Requester Maintenance

Perform your updates and then simply bring the server out of maintainence mode:
Set-ServerComponentState <mailbox-server> –Component ServerWideOffline –State Active –Requester Maintenanc

And if it's part of a DAG you will additional need to reset the settings we modified prior:

Resume-ClusterNode –Name <mailbox-server> // Resume the node in the DAG
Set-MailboxServer <mailbox-server> –DatabaseCopyAutoActivationPolicy Unrestricted
Set-MailboxServer <mailbox-server> –DatabaseCopyActivationDisabledAndMoveNow $false
Set-ServerComponentState <mailbox-server>  –Component HubTransport –State Active –Requester Maintenance

And finally put the server in maintainence mode:
Set-ServerComponentState <mailbox-server> –Component ServerWideOffline –State InActive –Requester Maintenance

And to help the services pickup the changes immideately we can restart the relevent services:
Restart-Service MSExchangeTransport // On the mailbox server
Restart-Service MSExchangeFrontEndTransport // On the CAS

Method for client access server:

We can simpl put the server into maintainence mode:
Set-ServerComponentState <mailbox-server> -Component ServerWideOffline -State InActive -Requester Maintenance

To bring the server out of maintainence mode we can use:
Set-ServerComponentState <server-name> -Component ServerWideOffline -State Active -Requester Maintenance

We must also remember to bring the HubTransport out of draining state!:
Set-ServerComponentState <server-name> -Component HubTransport -State Active -Requester Maintenance

And to help the services pickup the changes immideately we can restart the relevent services:
Restart-Service MSExchangeTransport // On the mailbox server
Restart-Service MSExchangeFrontEndTransport // On the CAS

0 comments:

Post a Comment