How to apply service pack on Active / Active cluster Nodes?
Answer»
Make a note of all node names (and/or IP addresses), SQL Server virtual names along with preferred nodes. If there are more than THREE nodes you may need to also take note of possible owners for each SQL resource group. For my example assume that I have a cluster with node1 and node2, SQL1 normally lives on node1 and SQL2 normally lives on node2.
To start with a clean slate and ensure any previous updates are completed both nodes should be restarted if possible. Choose the physical node that you want to patch second and restart that node (in my example node2).
Restart the node you want to patch first (node1). This will MEAN that both active SQL instances are now running on node2. Some restarts will be essential, but you could avoid the first two restarts if you need to keep downtime to a minimum and just fail SQL1 over to node2. The main point here is to always patch a passive node.
In a cluster, the administrator removes node1 from the possible owner's lists of SQL1 and SQL2. This means that neither SQL instance can fail over to node1 while it is being patched.
Add node1 back into the possible owner's lists of SQL1 and SQL2 and fail both instances over to node1.
Repeat steps 4 – 6 on node2.
Add node2 back into the possible owner's lists of SQL1 and SQL2 and fail both instances over to node2. Check that the building level is CORRECT and review the SQL Server error logs.
Fail SQL1 over to node1. Check build levels and SQL Server error logs