SQL SERVER – Patch Install Rule Error – Not Clustered or the Cluster Service is Up and Online

SQL
1 Comment

As they say, there are many ways to bell a cat. But in my consulting career, I have seen the same error due to multiple causes. In this blog, we would talk about one such error which can be seen during the installation of a service pack or cumulative update of SQL Server in a clustered environment. The error which we observed was a failure of a rule – Patch Install Rule Error – Not clustered or the cluster service is up and online.

SQL SERVER - Patch Install Rule Error - Not Clustered or the Cluster Service is Up and Online patchinstall-800x332

Here is the image of what we saw on the installation screen.

SQL SERVER - Patch Install Rule Error - Not Clustered or the Cluster Service is Up and Online patch-clu-error-01

As I mentioned earlier, I had an earlier blog on the same error which you can read below. SQL SERVER – Patch Rule Failure: Not Clustered or the Cluster Service is Up and Online

The solution given in that blog didn’t help. We looked into Detail.txt which is one of the log file generated by setup. The place where it failed was below:

Solarwinds

Slp: Initializing rule : Not clustered or the cluster service is up and online.
Slp: Rule is will be executed : True
Slp: Init rule target object: Microsoft.SqlServer.Configuration.Cluster.Rules.ClusterServiceFacet
Slp: Invalid class
Slp: at System.Management.ManagementException.ThrowWithExtendedInfo(ManagementStatus errorCode)
at System.Management.ManagementObjectCollection.ManagementObjectEnumerator.MoveNext()
at Microsoft.SqlServer.Configuration.Cluster.Rules.WMIInterop.Service.ServiceCollection.ServiceEnumerator.MoveNext()
at Microsoft.SqlServer.Configuration.Cluster.Rules.ClusterServiceFacet.Microsoft.SqlServer.Configuration.RulesEngineExtension.IRuleInitialize.Init(String ruleId)
at Microsoft.SqlServer.Configuration.RulesEngineExtension.RulesEngine.Execute(Boolean stopOnFailure)
Slp: Rule initialization failed – hence the rule result is assigned as Failed
Slp: Send result to channel : RulesEngineNotificationChannel

Even the error message is similar, but the stack is different. Here is the simplified version.

Microsoft.SqlServer.Configuration.Cluster.Rules.ClusterServiceFacet
Invalid class
System.Management.ManagementException.ThrowWithExtendedInfo
System.Management.ManagementObjectCollection.ManagementObjectEnumerator.MoveNext
Microsoft.SqlServer.Configuration.Cluster.Rules.WMIInterop.Service.ServiceCollection.ServiceEnumerator.MoveNext
Microsoft.SqlServer.Configuration.Cluster.Rules.ClusterServiceFacet.Microsoft.SqlServer.Configuration.RulesEngineExtension.IRuleInitialize.Init
Microsoft.SqlServer.Configuration.RulesEngineExtension.RulesEngine.Execute

When I saw “Invalid Class” this looked like an issue with WMI state on the machine. Here are the steps you can do to confirm the issue. Launch the WMI MMC snap-in by Start -> Run -> type WMIMGMT.MSC -> hit enter. It would open a window. In that right-click “WMI Control (Local)” and click Properties. If you see below then you can fix the issue by following further.

SQL SERVER - Patch Install Rule Error - Not Clustered or the Cluster Service is Up and Online patch-clu-error-02

This confirms that Windows WMI is broken, and we need to recompile MOF files. For my client, below worked.

mofcomp C:\Windows\System32\WBEM\cimwin32.mof

SQL SERVER - Patch Install Rule Error - Not Clustered or the Cluster Service is Up and Online patch-clu-error-03

If it doesn’t work then you may try compiling all mof files using the below script.

CD C:\Windows\System32\WBEM

dir /b *.mof *.mfl | findstr /v /i uninstall > allmoflist.txt & for /F %s in (allmoflist.txt) do mofcomp %s

Please let me know via comments if it helped you.

Reference: Pinal Dave (https://blog.sqlauthority.com)

Solarwinds
, , , , , ,
Previous Post
SQL SERVER – DBCC CHECKDB WITH PHYSICAL_ONLY Failing and DBCC CHECKDB Succeeding – Bug
Next Post
MySQL Preferred Engine – MyISAM or InnoDB

Related Posts

1 Comment. Leave new

Leave a Reply

Menu