Broken SQL Server node – [sqsrvres] ODBC sqldriverconnect failed
April 11, 2011 Leave a comment
I came across an issue that I wanted to share because I wasn’t able to find much on the web when I needed some pointers.
A bit of background info:
SQL Server 2005 Standard Edition (x64) 9.00.2035.00
Windows Server 2003 (Build 3790: SP2)
Active / Passive cluster.
The problem was that the SQL Server services wouldn’t start on node 1 and these are the errors from the Application Event Log:
00000ca0.000012ac::2011/03/29-10:19:36.983 ERR SQL Server <SQL Server>: [sqsrvres] ODBC sqldriverconnect failed
00000ca0.000012ac::2011/03/29-10:19:36.983 ERR SQL Server <SQL Server>: [sqsrvres] checkODBCConnectError: sqlstate = 08001; native error = 80090331; message = [Microsoft][SQL Native Client]Client unable to establish connection
00000ca0.000012ac::2011/03/29-10:19:36.998 ERR SQL Server <SQL Server>: [sqsrvres] ODBC sqldriverconnect failed
00000ca0.000012ac::2011/03/29-10:19:36.998 ERR SQL Server <SQL Server>: [sqsrvres] checkODBCConnectError: sqlstate = 08001; native error = 80090331; message = [Microsoft][SQL Native Client]SSL Provider: The client and server cannot communicate, because they do not possess a common algorithm.
The fix is relatively straight-forward but be aware that it requires a modification to the registry so back up the key first!
Here is the fix:
Backup the following -
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL
Then rename
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL to
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNELold
(You may get an error indicating that this key already exists. This is a common ‘feature’ and can be ignored).
Now fail the SQL cluster group over to the passive (broken) node and it should start without issue.