SJCFL-Admin
asked on
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.Config uration.Cl uster.Rule s.ClusterS erviceFace t
(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 \CurrentVe rsion\Clus terAwareUp dating
(01) 2015-10-20 10:39:12 Slp: Rule 'Cluster_IsOnlineIfCluster ed' 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_IsOnlineIfClustere d
(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.Config uration.Cl uster.Rule s.NodeClus terGroupFa cet
(01) 2015-10-20 10:39:13 Slp: Rule 'Cluster_IsLocalNodeGroupO wner' detection result: NodeOwnsClusterGroup=False
(01) 2015-10-20 10:39:13 Slp: Evaluating rule : Cluster_IsLocalNodeGroupOw ner
(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_103 702\System Configurat ionCheck_R eport.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_103 702\resour ces
(01) 2015-10-20 10:39:13 Slp: Sco: Attempting to create directory C:\Program Files\Microsoft SQL Server\110\Setup Bootstrap\Log\20151020_103 702\resour ces, security descriptor
(01) 2015-10-20 10:39:13 Slp: Sco: Directory 'C:\Program Files\Microsoft SQL Server\110\Setup Bootstrap\Log\20151020_103 702\resour ces' 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_103 702\resour ces, security descriptor
(01) 2015-10-20 10:39:14 Slp: Sco: SDDL is NULL/empty and overwriteSecurityDescripto r 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_103 702\System Configurat ionCheck_R eport.htm
(01) 2015-10-20 10:39:15 Slp: Error: Action "Microsoft.SqlServer.Confi guration.R ulesEngine Extension. RunRulesAc tion" threw an exception during execution.
(01) 2015-10-20 10:39:15 Slp: Microsoft.SqlServer.Setup. Chainer.Wo rkflow.Act ionExecuti onExceptio n: 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.Config uration.Ru lesEngineE xtension.R ulesEngine RuleFailur eException : 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.Config uration.Ru lesEngineE xtension.R unRulesAct ion.Execut eAction(St ring actionId)
(01) 2015-10-20 10:39:15 Slp: at Microsoft.SqlServer.Chaine r.Infrastr ucture.Act ion.Execut e(String actionId, TextWriter errorStream)
(01) 2015-10-20 10:39:15 Slp: at Microsoft.SqlServer.Setup. Chainer.Wo rkflow.Act ionInvocat ion.Execut eActionHel per(TextWr iter 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.Wo rkflow.Act ionInvocat ion.Execut eActionHel per(TextWr iter 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.tm p
(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.Config uration.Ru lesEngineE xtension.R ulesEngine RuleFailur eException
(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.Config uration.Ru lesEngineE xtension.R unRulesAct ion.Execut eAction(St ring actionId)
(01) 2015-10-20 10:39:24 Slp: at Microsoft.SqlServer.Chaine r.Infrastr ucture.Act ion.Execut e(String actionId, TextWriter errorStream)
(01) 2015-10-20 10:39:24 Slp: at Microsoft.SqlServer.Setup. Chainer.Wo rkflow.Act ionInvocat ion.Execut eActionHel per(TextWr iter 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\Cluste r.exe log /g /copy:"C:\Program Files\Microsoft SQL Server\110\Setup Bootstrap\Log\20151020_103 702" /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.
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_
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.Config
(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
(01) 2015-10-20 10:39:12 Slp: Rule 'Cluster_IsOnlineIfCluster
(01) 2015-10-20 10:39:12 Slp: Evaluating rule : Cluster_IsOnlineIfClustere
(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.Config
(01) 2015-10-20 10:39:13 Slp: Rule 'Cluster_IsLocalNodeGroupO
(01) 2015-10-20 10:39:13 Slp: Evaluating rule : Cluster_IsLocalNodeGroupOw
(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
(01) 2015-10-20 10:39:13 Slp: Sco: Attempting to create directory C:\Program Files\Microsoft SQL Server\110\Setup Bootstrap\Log\20151020_103
(01) 2015-10-20 10:39:13 Slp: Sco: Attempting to create directory C:\Program Files\Microsoft SQL Server\110\Setup Bootstrap\Log\20151020_103
(01) 2015-10-20 10:39:13 Slp: Sco: Directory 'C:\Program Files\Microsoft SQL Server\110\Setup Bootstrap\Log\20151020_103
(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_103
(01) 2015-10-20 10:39:14 Slp: Sco: SDDL is NULL/empty and overwriteSecurityDescripto
(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_103
(01) 2015-10-20 10:39:15 Slp: Error: Action "Microsoft.SqlServer.Confi
(01) 2015-10-20 10:39:15 Slp: Microsoft.SqlServer.Setup.
(01) 2015-10-20 10:39:15 Slp: at Microsoft.SqlServer.Config
(01) 2015-10-20 10:39:15 Slp: at Microsoft.SqlServer.Chaine
(01) 2015-10-20 10:39:15 Slp: at Microsoft.SqlServer.Setup.
(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.
(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.Config
(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.Config
(01) 2015-10-20 10:39:24 Slp: at Microsoft.SqlServer.Chaine
(01) 2015-10-20 10:39:24 Slp: at Microsoft.SqlServer.Setup.
(01) 2015-10-20 10:39:24 Slp: Collecting Cluster Logs:
(01) 2015-10-20 10:39:24 Slp: Running: C:\Windows\system32\Cluste
(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.
have you tried to apply the patch with the node active?
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
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
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
ASKER
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.
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:You 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.
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.
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.
ASKER
I am scheduled to reattempt patch on Monday. Will provide update.
Any news? :)