How to install update packages on a SharePoint farm where search component and high availability search topologies are enabled

The March Public Update (PU) for SharePoint Server 2013 and SharePoint Foundation
2013 is available. Here's information to help you install it on SharePoint farms where
search components and high availability search topologies are enabled. For servers that include search
components, you have to follow specific steps to ensure that you install the PU
correctly. For a high availability search topology, you use Windows PowerShell
cmdlets to patch a Search service application.

Note: The Server packages for the Feb CU are contained in the March PU and is available for download here:

SharePoint Server 2013: https://support.microsoft.com/kb/2767999

SharePoint Foundation 2013: https://support.microsoft.com/kb/2768000

 

Install the SharePoint March PU on servers running search components

When you install the update package on servers running search components, you have to
follow these high-level steps:

1) If you are running a mission-critical multiple-server search topology, we recommend that you
complete the update in a specific sequence  that is indicated in the best practices part later in this article.

This will help to minimize query downtime during the update process.

 2) For each server running search components, follow these steps:

a. On the server running SharePoint Server 2013, stop the following Windows Services in this order:

SPTimerV4

OSearch15

SPSearchHostController

 Note: The reason why you need to stop the SPTimerV4 service first is because the SPTimerV4 service monitors the SPSearchHostController service. The SPTimerV4 service will start the SPSearchHostController service it if it finds that the SPSearchHostController is stopped. Therefore, if the SPTimerV4 service is running after you stop the SPSearchHostController service, the SPTimerV4 service might start the SPSearchHostController without you noticing it.

b. Install the update package on the server by following the instructions that come with the update package.
c. Restart the Windows Services in the following order:

SPSearchHostController

OSearch15

SPTimerV4

 

Best practices to perform server patching for a high availability search topology by using Windows PowerShell

To minimize the query downtime during the patching process, you divide the servers that host search
components into three groups and patch these server groups in a specific order as
described in the procedure later in this section.

 

Important: The steps in this section apply only to SharePoint Server 2013.

This procedure assumes that you have a system with only one Search service application. If you have multiple Search service applications, you have to consider all the Search service applications when you
determine the sequence of servers to patch.

To perform server patching on a high availability search topology by using Windows PowerShell.

1. Verify that you have the following memberships and roles:

•securityadmin fixed server role on the SQL Server instance.
•db_owner fixed database role on all databases that are to be updated.
•Administrators group on the server on which you are running the Windows PowerShell cmdlets.

An administrator can use the Add-SPShellAdmin cmdlet to grant permissions to use SharePoint 2013 cmdlets.

Note: If you do not have permissions, contact your Setup administrator or SQL Server administrator to request permissions. For additional information about Windows PowerShell permissions, see Add-SPShellAdmin

•Start the SharePoint 2013 Management Shell.
•For Windows Server 2008 R2:
a. On the Start menu, click All Programs, click Microsoft SharePoint 2013 Products, and then click SharePoint 2013 Management Shell.
•For Windows Server 2012:◦ On the Start screen, click SharePoint 2013 Management Shell.

If SharePoint 2013 Management Shell is not on the Start screen:
•Right-click Computer, click All apps, and then click SharePoint 2013 Management Shell.

For more information about how to interact with Windows Server 2012, see Common Management Tasks and Navigation in Windows Server 2012.

•Assign a variable for the Search service application.

At the Windows PowerShell command prompt, type the following command:

$ssa=Get-SPEnterpriseSearchServiceApplication

4. Determine the server groups for patching. You split the servers associated with the search topology
into three groups, where there is a checkpoint between each group of servers.

a) To determine the primary search administration component and the server
where the component runs, type the following command at the Windows PowerShell command prompt:

Get-SPEnterpriseSearchStatus -SearchApplication $ssa | where { (($_.State
-ne "Unknown") -and ($_.Name -match "Admin")) } | ForEach { if (Get-SPEnterpriseSearchStatus -SearchApplication $ssa -Component $_.Name
-Primary) { Get-SPEnterpriseSearchTopology -SearchApplication $ssa -active | Get-SPEnterpriseSearchComponent -identity $($_.Name) } }

b) Determine the servers in group 1.

The set of servers must fulfill the following requirements:

•The set must contain one or more, but not all, of the following types of search components:

◦Content processing component
◦Query processing component
◦Analytics processing component
◦Crawl component
◦Index component
◦The set must contain one or more, but not all, of the index components for each index partition.
◦The set must contain the non-primary search administration component

c) Determine the servers in group 2.

This group must contain all remaining servers except the server that hosts the primary search administration component.

d) Group 3 consists of the server that hosts the primary search administration component.

5. Perform the required patching of servers in group 1. See the procedure “Install the SharePoint March PU on servers running search components” earlier in this article.

6. After you complete the patching, wait until all search components are running.

From a Windows PowerShell command prompt, type the following command until the output no longer lists any search components . The command will only list search components that are not in the “Active” state:

Get-SPEnterpriseSearchStatus -SearchApplication $ssa | where {$_.State -ne "Active"} | fl

7. Perform the required patching of servers in group 2. See the procedure “Install the SharePoint March PU on servers running search components” earlier in this article.

8. After you complete the patching, wait until all search components are running.

From a Windows PowerShell command prompt, type the following command until the output no longer lists any search components. The command will only list search components that are not in the “Active” state:

Get-SPEnterpriseSearchStatus -SearchApplication $ssa | where {$_.State -ne "Active"} | fl

9. Perform the required patching of servers in group 3. See the procedure “Install the SharePoint March PU on servers running search components” earlier in this article.

Note: During this step, you will experience a few minutes of query downtime while a search administration component failover takes place.

10. After you complete the patching, wait until all search components are running.

From a Windows PowerShell command prompt, type the following command until the output no longer lists any search components. The command will only list search components that are not in the “Active” state:

Get-SPEnterpriseSearchStatus -SearchApplication $ssa | where {$_.State -ne "Active"} | fl

 

Any questions, let us know.

 Knut Brandrud, Program Manager, Search Team