Quantcast
Channel: Doyensys Allappsdba Blog..
Viewing all articles
Browse latest Browse all 1640

SQL SERVER – Unable to Start SQL Service Error: 17172 – SNIInitialize() Failed with Error 0x2

$
0
0


I was trying to failover the cluster. While doing that I was in a situation where I was unable to start SQL Service.
I looked into SQL Server ERRORLOG to see the cause of SQL Startup failure. Here were the last messages logged in the ERRORLOG.

2018-01-28 15:29:54.27 Server SNIInitialize() failed with error 0x2.
2018-01-28 15:29:54.27 Server SQL Server shutdown has been initiated

The error code mentioned is 0x2 which is 2 in decimal. Error Number 2 in windows means “The system cannot find the file specified.” Interesting, same error appears when I try to start SQL Service using services.msc.



Now, to find what is missing, I captured registry access while starting SQL Service using Process Monitor tool.



As we can see above, SQL Server was looking for a key called “ClusterName” in the registry and that is missing. Once we see “NAME NOT FOUND” then we see two “WriteFile” in SQL Server ERRORLOG followed by a “CloseFile” for ERRORLOG. This confirms that this is the right reason for SQL Startup failure. In my case, there was no SQL cluster and I was just trying to fool SQL Server by showing it as cluster but looks like there are more keys needed.


WORKAROUND/SOLUTION

Below is the registry key which should not be there if SQL is standalone. So we should take a backup and delete the “Cluster” key. Here is the complete path for my instance in case the image is not clear.
HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL14.MSSQLSERVER\Cluster




The path would change based on SQL Server version and instance name. Here is the list of SQL versions (relevant as of today) and the respective keys in the registry.

SQL Server 2008
MSSQL10
SQL Server 2008 R2
MSSQL10_50
SQL Server 2012
MSSQL11
SQL Server 2014
MSSQL12
SQL Server 2016
MSSQL13
SQL Server 2017
MSSQL14


We need to append Instance Name (MSSQLSERVER for default instance) to make the complete registry key. By going with about logic, for my server SQL 2017, default instance it is MSSQL14.MSSQLSERVER.

Hope this blog helps someone who faces the similar issue.



Viewing all articles
Browse latest Browse all 1640

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>