SQL SERVER – Service Pack Failure: MissingRegistryKeyException

To fix something, it should be broken first. I keep playing with my lab and eventually end up breaking stuff. This time, while patching my own lab environment with latest service pack, I ran into below error about MissingRegistryKeyException.

The registry key System\CurrentControlSet\Services\MSSQLSERVER\Performance is missing.

I opened the error stack from detail.txt. It goes from bottom to top. If I arrange them in the right order, it looks like below.

  • SqlServer.Configuration.SqlConfigBase.SlpConfigAction.Execute
  • SqlServer.Configuration.SqlConfigBase.SlpConfigAction.ExecuteAction
  • SqlServer.Configuration.SqlEngine.SqlEngineSetupPrivate.Patch
  • SqlServer.Configuration.SqlEngine.SqlEngineSetupPrivate.PatchPerfmonCounters
  • SqlServer.Configuration.SqlEngine.PerfmonRegistration.NeedToPatch
  • SqlServer.Configuration.SqlEngine.PerfmonRegistration.GetDLLNameFromRegistry
  • SqlServer.Configuration.SqlEngine.Globals.GetSqlRegistryKeyHKLM

Here is the exception:

Microsoft.SqlServer.Configuration.SqlEngine.MissingRegistryKeyException: The registry key System\CurrentControlSet\Services\MSSQLSERVER\Performance is missing.

If we read the function names, it’s clear that the setup is trying to patch performance counters and error message also makes sense.

WORKAROUND/SOLUTION

  • User regedit.exe (Start > Run > RegEdit) and go to System\CurrentControlSet\Services\MSSQLSERVER\Performance to verify if this registry key is missing. If it is missing, take a backup of the whole registry (just to be on the safer side) and manually create the registry key as shown below:
    Registry Editor window.
  • Follow below blog to recreate the performance counters. SQL SERVER – Performance Counter Missing: How to Get Them Back?

After that I installed patch again and it worked like a charm.

Let me know if you have faced any such issues in the future.

Published by Pinal Dave on SQLAuthority. More of my work at pinaldave.com.

Registry, SQL Error Messages, SQL Server
Previous Post
SQL SERVER – Startup Error: 17190, Severity: 16 – Initializing the FallBack Certificate Failed with Error Code: 1, State: 20
Next Post
Installation Error – Updating Permission Setting for File Failed

Related Posts

2 Comments. Leave new

  • Thanks for sharing this. Simply adding the registry key worked like a charm for the March 2020 SQL 2012 SP4 Cumulative Update.

    Reply
  • Got the error with SQL Server 2016 and 2017 and it worked straight away. Thank you for this information.

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

Fill out this field
Fill out this field
Please enter a valid email address.