I don't want to get off on a rant here, but....

Avatar

Technology, Programming, Complaints, etc.

Recovering SQL Server Cluster Resource Types using cluster.exe on the command line

At work we had an issue with a SQL cluster that mysteriously went down, due to the SQL Resources having been deleted.  As part of the Server team's efforts to restore functionality, the SQL Resource Types were also deleted.  Among the litany of issues we had to work through to get SQL back up and running, we had to piece together how to get the Resource Types back so we could successfully setup the Resources again.  
The following steps document what we needed to do and in no way do I promise this will work for you, not break things worse, etc.  You should use values from another working SQL cluster if you have one, the ones here were copied from another SQL cluster that was similarly configured. 
  1. cluster.exe RESTYPE "SQL Server" /CREATE /DLLNAME:SQSRVRES.DLL /ISALIVE:60000 /LOOKSALIVE:5000
  2. cluster.exe RESTYPE "SQL Server Agent" /CREATE /DLLNAME:SQAGTRES.DLL /ISALIVE:60000 /LOOKSALIVE:5000
  3. Add the SQL Server Resource via the Cluster GUI including the proper dependencies etc.
  4. Add the SQL Server Agent Resource via the Cluster GUI
  5. Follow the MS documented registry hacks to get the proper information back to allow the Clustered instances to start.  NOTE: This has to be added on all nodes in the cluster individually.
  6. Verify it runs from the command line: C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn>sqlservr.exe -sMSSQLSERVER
  7. Verify it runs from the command line as the service account using runas. 
  8. The Services should now start correctly on the local machine (not in the cluster).
  9. Stop the Services and bring them up via the Cluster.