Zero Downtime Patching in SharePoint Server 2016



  1. Remove the Front-end web server (SPWEB01) from the Load balancer.
  2. Patch the front-end web server (SPWEB01) by using the STS & WSS Packages.
  3. Restart the front-end web server (SPWEB01).
  4. Add the front-end web server (SPWEB01) back into the Load balancer.
  5. Remove the front-end web server (SPWEB02) from the Load balancer.
  6. Patch the front-end web server (SPWEB02).
  7. Restart the front-end web server (SPWEB02) computer.
  8. Patch the following Application servers: SPAPP01, SPDCH01, and SPSRCH01 in parallel, and then restart the computers.
  9. Patch the following Application servers: SPAPP02, SPDCH02, and SPSRCH02 in parallel, and then restart the computers.
  10. With the front-end web server (SPWEB02) out of the Load balancer (See step 7), Open the SharePoint 2016 Management Shell, and then run following PSConfig command: PSConfig.exe -cmd upgrade -inplace b2b -wait -cmd applicationcontent -install -cmd installfeatures -cmd secureresources -cmd services -install
  1. Once the upgrade is complete, add the front-end web server (SPWEB02) back into the Load balancer. Once the front-end web server (SPWEB02) has been added to the Load balancer, remove the front-end web server (SPWEB01).
  2. On the front-end web server (SPWEB01) computer, run the PSConfig command from step 10.
  3. Add the front-end web server (SPWEB01) back into the Load balancer.
  4. On the Application server (SPAPP01), run the PSConfig command from Step 10.
  5. On the Distributed Cache server (SPDCH01), run the PSConfig command from Step 10.
  6. On the Search server (SPSRCH01), run the PSConfig command from Step10.
  7. Once the upgrade has completed run the same steps (14-16) on 02 series servers (SPAPP02, SPDCH02, SPSRCH02).

#Remove the SPWEB01 Azure Load Balanced EndPoint
$svc=<"NameYourLBService">
$vmname=<"NameofYourVM">
Note$epname="TCP-80-80"
Note
Get-AzureVM -ServiceName $svc -Name $vmname | Remove-AzureEndpoint -Name $epname | Update-AzureVM
#Add the SPWEB01 AzureEndpoint back
$ilb="minroleilb"
$prot="tcp"
$locport=80
$pubport=80
$epname="TCP-80-80"
$lbsetname=<"NameYourLB">
$vmname=<"NameofYourVM">
Get-AzureVM -ServiceName $svc -Name $vmname | Add-AzureEndpoint -Name $epname -LbSetName $lbsetname -Protocol $prot -LocalPort $locport -PublicPort $pubport -DefaultProbe -InternalLoadBalancerName $ilb | Update-AzureVM
# Remove the SPWEB02 Azure Load Balanced EndPoint for the patch install and build to build (B2B) phase
$vmname=<"NameofYourVM">
$epname="TCP-80-80-2"
Get-AzureVM -ServiceName $svc -Name $vmname | Remove-AzureEndpoint -Name $epname | Update-AzureVM
#Add for the B2B SPWEB02 AzureEndPoint to ILB
$prot="tcp"
$locport=80
$pubport=80
$epname="TCP-80-80-2"
$lbsetname=<"NameYourLB">
$vmname=<"NameofYourVM">
Get-AzureVM -ServiceName $svc -Name $vmname | Add-AzureEndpoint -Name $epname -LbSetName $lbsetname -Protocol $prot -LocalPort $locport -PublicPort $pubport -DefaultProbe -InternalLoadBalancerName $ilb | Update-AzureVM
# B2B for SPWEB01::::: Phase Remove the SPWEB01 Azure Load Balanced EndPoint
$svc=<"NameYourLBService">
$vmname=<"NameofYourVM">
$epname="TCP-80-80"
Get-AzureVM -ServiceName $svc -Name $vmname | Remove-AzureEndpoint -Name $epname | Update-AzureVM
#Add the SPWEB01 AzureEndpoint back
$ilb="minroleilb"
$prot="tcp"
$locport=80
$pubport=80
$epname="TCP-80-80"
$lbsetname=<"NameYourLB">
$vmname=<"NameofYourVM">
Get-AzureVM -ServiceName $svc -Name $vmname | Add-AzureEndpoint -Name $epname -LbSetName $lbsetname -Protocol $prot -LocalPort $locport -PublicPort $pubport -DefaultProbe -InternalLoadBalancerName $ilb | Update-AzureVM

Comments