Hjälp – SQL tjänsten startar inte efter omstart av servern

Oopps! Upgrade your browser pretty please. Oopps! Upgrade your browser pretty please.

När våra datacenter och virtuella miljöer blir snabbare och snabbare kan intressanta situationer uppstå för SQL Serverns tjänster vid omstart av servern. En server kan t ex starta för snabbt, så att SQL tjänsterna inte kan starta.

Detta kan t ex hända när man har beroenden till AD (oftast i form av ad-konton som servicekonton för SQL tjänsterna) och SQL tjänsterna försöker starta innan servern har fått kontakt med domänkontrollanterna. Det skapas ingen SQL errorlog för den tjänsten startade aldrig så man hittar felmeddelandet i Eventloggen i windows och meddelandet kan se ut så här:

Event ID Source Details
7038 Service Control Manager The MSSQL$MSSQLSERVER service was unable to log on as Mydomain\ServiceAccount with the currently configured password due to the following error:
The specified domain either does not exist or could not be contacted.

 

Hur löser man då detta enklast ?

 

Det finns två relativt enkla lösningar. Man kan sätta SQL tjänsten till “Delayed Start” och öka antalet gånger som tjänster ska försöka starta igen och hoppas att det hjälper. Högerklicka på tjänsten i Services och välj startup type:

 

Men vill man vara helt säker så rekommenderar jag att man konfigurerar SQL tjänsten att vara beroende av att två andra windowstjänster är startade innan den försöker starta själv. Två tjänster som är domänkopplade och inte startar förrän servern har kontakt med domänkontrollanterna.

Tjänsterna det handlar om är NetLogon W32Time

Lättaste sättet att lägga till dessa tycker jag är via en Command Promt som körs med Administratorbehörighet. För att visa om det finns några dependencies kör man först:

sc qc ServiceName MSSQL$Test01  – (ex för en namgiven instans som heter Test01)

För att lägga till beroenden måste man definiera alla tjänster i scriptet (både nya och befintliga):

sc config MSSQL$TEST01 depend= ServiceA/ServiceB/ServiceC

Kontrollera att det ser bra ut via antingen script (se ovan) eller genom att högerklicka på tjänsten i Services och kolla under fliken Dependecies.

Det går även att lägga till dependencies via Regedit.

  1. Öppna Regedit och gåt till HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSSQLSERVER (eller där din SQL tjänst finns)
  2. Titta efter “DependOnService” på högra sidan (finns den inte får man skapa ett nytt värde av typen Multi-String och döpa det till “DependOnService”
  3. Lägg till W32Time och NetLogon (KEYISO fanns redan där på den här servern)
  4. Stäng Regedit och kolla via services på SQL tjänsten att det ser rätt ut, under fliken “Dependecies”

 

Hoppas detta kan lösa ditt problem med att SQL Tjänsten inte startar som den skall efter en omstart av servern och du kan slappna av i sommar utan att vara orolig för din SQL Server!