Its been a while since I have posted a Lync question sadly I’ve been really busy completing a Lync Server 2013 hosted deployment with integration into O365 for Exchange Online voicemail.
It been a couple months now since the big February 2013 Cumulative updates (CU1) which gave use the Mobility Updates, Location based routing and Group Call Pickup capabilities.
We are due another server update very shortly, so it is a good time to cover how to upgrade and update the Front-End server correctly as no doubt everyone just jumped straight in or this will be the first update you’ll be deploying since going into production.
The Front End Servers in an Enterprise Edition pool are organized into upgrade domains, these are subsets of Front End Servers in the pool and were created automatically by Topology Builder. It is recommended that when upgrading Front End Servers, the upgrades are performed one server at a time. Bring one server down, upgrade it, and then restart it before you upgrade another server.
Why is this important, well if you don’t upgrade the server one at a time or give enough time between updates then you could potentially not have sufficient active servers in the pool thus the whole pool will become unavailable. This is really easy to do! At any time you must have more than half or more than half of you Front-End server running at any one time.
In order to assist with upgrading and check the Pool Upgrade state in order to there are sufficient Active Front-End Server in an upgrade domain the Get-CsPoolUpgradeReadinessState cmdlet is recommended to be used. This is all documented in the operation guide with a nice flowchart.
I will add, you should drain each server in turn before you update it.
Once you’ve done updated the Front-End themselves then next you should update the back-end server. With Lync Server 2013, If a Back End Server is down for at least 30 minutes while you are upgrading it, users may then go into resiliency mode. When the upgrade is finished and the Back End Servers has again connected with the Front End Servers in the pool, users are returned to full functionality. If the upgrade takes less than 30 minutes, users will not be affected. This is a great improvement of Lync server 2010 when the Back End Server was much more critical to service.
If you have SQL mirroring deployed you will need to remove the mirror, apply the update and reinstall the SQL mirror.
First retrieve the mirror database state Get-CsDatabaseMirrorState -PoolFqdn Pool.FQDN -Verbose In the returned results, the value of the StateOnPrimary field should be “Principal” for all the databases that are associated with the server pool. If you have a witness server you might need to failback using the Invoke-CsDatabaseFailover cmdlet to failback the database from the mirror to the principle.
Run the following cmdlet to remove the mirror: Uninstall-CsMirrorDatabase -DatabaseType Application -SqlServerFQDN EEBE.FQDN -SqlInstanceName SQLInstanceName -DropExistingDatabasesOnMirror -Verbose
Run the following cmdlet to apply the changes: Install-CsDatabase -ConfiguredDatabases -SqlServerFqdn EEBE.Fqdn -Verbose Lync Server 2013 Enterprise Edition environment in which the archiving or monitoring services are collocated with an Enterprise Edition back end server, run this cmdlet on the Lync Server 2013 Enterprise Edition back end server.
Run the following cmdlet to reinstall the mirror: Install-CsMirrorDatabase -DatabaseType Application -SqlServerFQDN EEBE.Fqdn -SqlInstanceName SQLInstanceName -FileShare MirrorFileshare -Verbose
Finally run the following cmdlet to retrieve the mirror database state: Get-CsDatabaseMirrorState -PoolFqdn Pool.FQDN –Verbose In the results, the StateOnPrimary field should be Principal for all databases that are associated with the server pool.
If your Front-End pool hosts the CMS then you will additionally need to run: Install-CsDatabase -CentralManagementDatabase -SqlServerFqdn CMS.FQDN -SqlInstanceName DBInstanceName -Verbose to updates the CMS database
To update the monitoring you will need to run: Install-CsDatabase -ConfiguredDatabases -SqlServerFqdn ArchMonBE.FQDN -Verbose In a Lync Server 2013 Enterprise Edition environment in which the archiving or monitoring services are not collocated with an Enterprise Edition back end server, run this cmdlet on the Enterprise Edition front end server.
This is all based on the released February 2013 Cumulative updates (CU1) what we get with the next update who know what I’d be surprised if there isn’t any database updates. Check back as I will update this question with any changes.
Upgrade or Update Front End Servers
Description of the cumulative update 5.0.8308.291 for Lync Server 2013, Core Components: February 2013
Upgrade or Update a Back End Server or Standard Edition Server
Prevent Sessions for Services