SQL: SQL Agent nie startuje, ma focha i nawet nie powie co go boli!

16-Lut-2016

Zatrzymany SQL Agent – pestka! Start service i po sprawie… Ale co to? Agent nie startuje. Cała sytuacja ma miejsce na clustrze, a w logach zbyt wiele śladów znaleźć nie można:

Cluster resource ‚SQL Server Agent’ in clustered service or application ‚******’ failed.

StartResourceService: Failed to start SQLSERVERAGENT service.  CurrentState: 1

OnlineThread: ResUtilsStartResourceService failed (status 435)

OnlineThread: Error 435 bringing resource online.

Niestety SQLAgent.OUT jest pusty.  Jedno z rozwiązań, kiedy nie wiadomo o co chodzi, jest próba uruchomienia usługi jako administrator. Ponieważ w tym przypadku Agent uruchomił się bez problemu, to przyczyną musi być brak uprawnień. Zazwyczaj chodzi np o brakujące prawo LogOnAsService. Te uprawnienia były jednak nadane. Co pomogło?

Uruchomiłem Process Monitor z sysinternals. Włączyłem filtr na proces agenta. W zebranych logach zobaczyłem, że SQL Agent próbuje otworzyć plik SQLAGENT.OUT i na tym etapie dostaje ACCESS DENIED. Rzeczywiście. Dziedziczenie uprawnień do folderu Log było zerwane i agent nie miał tam dostępu. Co ważne Effective Permissions sprawdzaj po usunięciu konta agenta z lokalnych administratorów.

Nadanie uprawnień i start Agenta się powiódł. Niech żyje Process Monitor, który opowie o procesie coś więcej, gdy ten proces sam o sobie nic powiedzieć nie chce!

Dodaj komentarz:

Autor: Rafał Kraik