How to install KB3045318 patch on AlwaysOn two node multi-subnet failover cluster

Problem:   KB3045318 patch fails on AlwaysOn  two node multi-subnet failover cluster

Environment:

   Two node multi-subnet failover cluster (no shared storage)
  Sql Server 2012 SP1
  Windows Server 2008 R2 SP1

Prior to initiating the windows update process (it is set to manual), I paused the node (the node was in secondary status).  From all I have read, this is the correct procedure for applying sql patches and/or service packs to instances participating in an AlwaysOn cluster of this type.  

Error:  
The machine is clustered, but the cluster is not online or cannot be accessed from one of its nodes. To continue determine why the cluster is not online and rerun setup instead of rerunning the rule since the rule can no longer detect a cluster environment correctly.
I located instructions for running a service pack using a switch that will bypass this check. The problem here is that this KB is running from windows update and I am not aware of an override option to the check.  Nor am I sure that I should be overriding a check placed into the KB by Microsoft.

From the Bootstrap Log’s ‘SystemConfigurationCheck_Report’ file

 
From the Summary text file:
Overall summary:
  Final result:                  The patch installer has failed to update the following instance:. To determine the reason for failure, review the log files.
  Exit code (Decimal):           -2067919922
  Exit facility code:            1214
  Exit error code:               3022
  Exit message:                  The machine is clustered, but the cluster is not online or cannot be accessed from one of its nodes. To continue determine why the cluster is not online and rerun setup instead of rerunning the rule since the rule can no longer detect a cluster environment correctly.
  Start time:                    2015-10-20 10:37:21
  End time:                      2015-10-20 10:40:01
  Requested action:              Patch


From ‘Detail’ file

(01) 2015-10-20 10:39:06 Slp: Initializing rule      : Not clustered or the cluster service is up and online.
(01) 2015-10-20 10:39:06 Slp: Rule is will be executed  : True
(01) 2015-10-20 10:39:06 Slp: Init rule target object: Microsoft.SqlServer.Configuration.Cluster.Rules.ClusterServiceFacet
(01) 2015-10-20 10:39:12 Slp: Detected a patch / remove patch operation on a paused node.
(01) 2015-10-20 10:39:12 Slp: Sco: Attempting to create base registry key HKEY_LOCAL_MACHINE, machine
(01) 2015-10-20 10:39:12 Slp: Sco: Attempting to open registry subkey Software\Microsoft\Windows\CurrentVersion\ClusterAwareUpdating
(01) 2015-10-20 10:39:12 Slp: Rule 'Cluster_IsOnlineIfClustered' detection result: Is Cluster Online Results = False; Is Cluster Verfication complete = False; Verfication Has Warnings = True; Verification Has Errors = True; on Machine XXXXYYYY
(01) 2015-10-20 10:39:12 Slp: Evaluating rule        : Cluster_IsOnlineIfClustered
(01) 2015-10-20 10:39:12 Slp: Rule running on machine: XXXXYYYY
(01) 2015-10-20 10:39:12 Slp: Rule evaluation done   : Failed
(01) 2015-10-20 10:39:12 Slp: Rule evaluation message: The machine is clustered, but the cluster is not online or cannot be accessed from one of its nodes. To continue determine why the cluster is not online and rerun setup instead of rerunning the rule since the rule can no longer detect a cluster environment correctly.
(01) 2015-10-20 10:39:12 Slp: Initializing rule      : Cluster group owned by local computer
(01) 2015-10-20 10:39:12 Slp: Rule is will be executed  : True
(01) 2015-10-20 10:39:12 Slp: Init rule target object: Microsoft.SqlServer.Configuration.Cluster.Rules.NodeClusterGroupFacet
(01) 2015-10-20 10:39:13 Slp: Rule 'Cluster_IsLocalNodeGroupOwner' detection result: NodeOwnsClusterGroup=False
(01) 2015-10-20 10:39:13 Slp: Evaluating rule        : Cluster_IsLocalNodeGroupOwner
(01) 2015-10-20 10:39:13 Slp: Rule running on machine: XXXXYYYY
(01) 2015-10-20 10:39:13 Slp: Rule evaluation done   : Succeeded
(01) 2015-10-20 10:39:13 Slp: Rule evaluation message: The local computer is not an owner of an online cluster group for a failover cluster instance that contains the SQL Server service, Analysis Services service or a generic service. The SQL Server instances do not need to be taken offline.
(01) 2015-10-20 10:39:13 Slp: Saved to directory.......C:\Program Files\Microsoft SQL Server\110\Setup Bootstrap\Log\20151020_103702\SystemConfigurationCheck_Report.htm
(01) 2015-10-20 10:39:13 Slp: Sco: Attempting to create directory C:\Program Files\Microsoft SQL Server\110\Setup Bootstrap\Log\20151020_103702\resources
(01) 2015-10-20 10:39:13 Slp: Sco: Attempting to create directory C:\Program Files\Microsoft SQL Server\110\Setup Bootstrap\Log\20151020_103702\resources, security descriptor
(01) 2015-10-20 10:39:13 Slp: Sco: Directory 'C:\Program Files\Microsoft SQL Server\110\Setup Bootstrap\Log\20151020_103702\resources' already exists, skipping creation, moving to set security descriptor.
(01) 2015-10-20 10:39:14 Slp: Sco: Attempting to set security descriptor for directory C:\Program Files\Microsoft SQL Server\110\Setup Bootstrap\Log\20151020_103702\resources, security descriptor
(01) 2015-10-20 10:39:14 Slp: Sco: SDDL is NULL/empty and overwriteSecurityDescriptor is false, so nothing to do, return.
(01) 2015-10-20 10:39:15 Slp: Rules evaluation report is available now at C:\Program Files\Microsoft SQL Server\110\Setup Bootstrap\Log\20151020_103702\SystemConfigurationCheck_Report.htm
(01) 2015-10-20 10:39:15 Slp: Error: Action "Microsoft.SqlServer.Configuration.RulesEngineExtension.RunRulesAction" threw an exception during execution.
(01) 2015-10-20 10:39:15 Slp: Microsoft.SqlServer.Setup.Chainer.Workflow.ActionExecutionException: The machine is clustered, but the cluster is not online or cannot be accessed from one of its nodes. To continue determine why the cluster is not online and rerun setup instead of rerunning the rule since the rule can no longer detect a cluster environment correctly. ---> Microsoft.SqlServer.Configuration.RulesEngineExtension.RulesEngineRuleFailureException: The machine is clustered, but the cluster is not online or cannot be accessed from one of its nodes. To continue determine why the cluster is not online and rerun setup instead of rerunning the rule since the rule can no longer detect a cluster environment correctly.
(01) 2015-10-20 10:39:15 Slp:    at Microsoft.SqlServer.Configuration.RulesEngineExtension.RunRulesAction.ExecuteAction(String actionId)
(01) 2015-10-20 10:39:15 Slp:    at Microsoft.SqlServer.Chainer.Infrastructure.Action.Execute(String actionId, TextWriter errorStream)
(01) 2015-10-20 10:39:15 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.ExecuteActionHelper(TextWriter statusStream, ISequencedAction actionToRun, ServiceContainer context)
(01) 2015-10-20 10:39:15 Slp:    --- End of inner exception stack trace ---
(01) 2015-10-20 10:39:15 Slp:    at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.ExecuteActionHelper(TextWriter statusStream, ISequencedAction actionToRun, ServiceContainer context) (01) 2015-10-20 10:39:24 Slp: Received request to add the following file to Watson reporting: C:\Windows\TEMP\tmp5388.tmp
(01) 2015-10-20 10:39:24 Slp: The following is an exception stack listing the exceptions in outermost to innermost order
(01) 2015-10-20 10:39:24 Slp: Inner exceptions are being indented
(01) 2015-10-20 10:39:24 Slp:
(01) 2015-10-20 10:39:24 Slp: Exception type: Microsoft.SqlServer.Configuration.RulesEngineExtension.RulesEngineRuleFailureException
(01) 2015-10-20 10:39:24 Slp:     Message:
(01) 2015-10-20 10:39:24 Slp:         The machine is clustered, but the cluster is not online or cannot be accessed from one of its nodes. To continue determine why the cluster is not online and rerun setup instead of rerunning the rule since the rule can no longer detect a cluster environment correctly.
(01) 2015-10-20 10:39:24 Slp:     HResult : 0x84be0bce
(01) 2015-10-20 10:39:24 Slp:         FacilityCode : 1214 (4be)
(01) 2015-10-20 10:39:24 Slp:         ErrorCode : 3022 (0bce)
(01) 2015-10-20 10:39:24 Slp:     Data:
(01) 2015-10-20 10:39:24 Slp:       SQL.Setup.FailureCategory = RuleViolationFailure
(01) 2015-10-20 10:39:24 Slp:       DisableWatson = true
(01) 2015-10-20 10:39:24 Slp:     Stack:
(01) 2015-10-20 10:39:24 Slp:         at Microsoft.SqlServer.Configuration.RulesEngineExtension.RunRulesAction.ExecuteAction(String actionId)
(01) 2015-10-20 10:39:24 Slp:         at Microsoft.SqlServer.Chainer.Infrastructure.Action.Execute(String actionId, TextWriter errorStream)
(01) 2015-10-20 10:39:24 Slp:         at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.ExecuteActionHelper(TextWriter statusStream, ISequencedAction actionToRun, ServiceContainer context)
(01) 2015-10-20 10:39:24 Slp: Collecting Cluster Logs:
(01) 2015-10-20 10:39:24 Slp: Running: C:\Windows\system32\Cluster.exe log /g /copy:"C:\Program Files\Microsoft SQL Server\110\Setup Bootstrap\Log\20151020_103702" /node:"XXXXYYYY" /span:"3"
(01) 2015-10-20 10:39:48 Slp: Process returned 0
(01) 2015-10-20 10:39:48 Slp: Cluster log generation completed successfully
(01) 2015-10-20 10:39:48 Slp: Dumping final cluster state.
(01) 2015-10-20 10:40:00 Slp: Completed dumping final cluster state.
(01) 2015-10-20 10:40:03 Slp:
(01) 2015-10-20 10:40:03 Slp: ----------------------------------------------------------------------
(01) 2015-10-20 10:40:03 Slp:
(01) 2015-10-20 10:40:03 Slp: Error result: -2067919922
(01) 2015-10-20 10:40:03 Slp: Result facility code: 1214
(01) 2015-10-20 10:40:03 Slp: Result error code: 3022
(01) 2015-10-20 10:40:03 Slp: SQM Service: Sqm does not have active session.
LVL 6
SJCFL-AdminAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

ZberteocCommented:
have you tried to apply the patch with the node active?
0
ZberteocCommented:
Here doesn't say you need to pause any node:

https://msdn.microsoft.com/en-us/library/dn178483.aspx
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
SJCFL-AdminAuthor Commented:
What is missing in the write-up is detailed instructions on how best to accomplish step 1.

       1.Remove automatic failover on all synchronous-commit replicas.

Here are the missing instructions:

    Expand AlwaysOn HighAvailability
    Expand Availability Groups
    Right-Click on your availability group name
    Change the Failover Mode to MANUAL for BOTH INSTANCES

And then after the patch/upgrade is applied follow the same process and Change the Failover Mode to MANUAL for BOTH INSTANCES
0
Ultimate Tool Kit for Technology Solution Provider

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy now.

SJCFL-AdminAuthor Commented:
The expert provided a write-up from Microsoft, but I still needed to create an incident with them understand what process needed to be followed to accomplish the step that was recommended. But the expert did point me to the correct article and I do very much appreciate the assist.
0
ZberteocCommented:
1.Remove automatic failover on all synchronous-commit replicas.

In order to change this you will have to open the Management STudio on the primary replicat and do this:

1. Expand the server node
2. Expand the AwaysON High Availability node
3. Expand Availability Groups node
4. Right click on the Availability Group node > Properties

You will get this screen:alwayson_properties.JPGYou can see the at the bottom panel where you can change the Availability Mode from Synchronous commit to Asynchronous commit and the Failover Mode from Automatic to Manual. Afte the change both nodes should say Async and Manual.
1
ZberteocCommented:
Actually you only need to change the Failover Mode from Automatic to Manual and you can leave the Availability Mode in Synchronous commit. This is only to make sure that the primary will not failover by itself to secondary while you do the update. After update you can switch back to Automatic.
0
ZberteocCommented:
Just let me know how it went if is not too much trouble. I myself need to update from SP1 to last SP2 CP pretty soon.
0
SJCFL-AdminAuthor Commented:
I am scheduled to reattempt patch on Monday.  Will provide update.
0
ZberteocCommented:
Any news? :)
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Microsoft SQL Server

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.