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!