SQL Server Agent neden başlatılamıyor?

SQL Server servisinin “The request failed or the service did not respond in a timely fashion” hatası ile başlatılamaması, veritabanı yöneticilerinin sıkça karşılaştığı sorunlardan biridir. Bu yazıda, bu sorunu hızlıca tespit etmenize ve çözmenize yardımcı olacak adımları inceleyeceğiz. Bu hata mesajı, genellikle SQL Server servisinin belirli bir süre içinde başlatılamaması durumunda görülür. Timeout süresi dolduktan sonra Windows, servisin başlatılamadığı sonucuna varır ve bu hata mesajını gösterir. Sorunun internet üzerinde bir çok çözümü paylaşılmış kimi çözüm sonuca ulaşmış ancak çözüme kavuşmaması durumunda aşağıdaki ihtiyaç olan ODBC driverı kurarark sorunu çözebilirsiniz 🙂 bilgi birikim çözüm..

"The request failed or the service did not respond in a timely fashion.
Consult the event log or other applicable error logs for details."

Servis Bağımlılıkları

SQL Server, başka servislere bağımlı olabilir. Bu servislerin çalışır durumda olduğundan emin olun:

  • SQL Server Network Configuration
  • Windows Management Instrumentation (WMI)
  • Remote Procedure Call (RPC)

— Mevcut port ayarını kontrol etmek için

XEC xp_readerrorlog 0, 1, N'Server is listening on'

Yetersiz Sistem Kaynakları

SQL Server, başlatma sırasında yeterli bellek ve CPU kaynağına ihtiyaç duyar. Sistem kaynaklarınızı kontrol edin ve gerekirse artırın.

Bozuk Sistem Dosyaları

Master veritabanı veya diğer sistem dosyaları bozulmuş olabilir. SQL Server’ı -f (minimal configuration) modunda başlatmayı deneyin:

NET START MSSQLSERVER /f

 

Çözüm Yolları


Çözüm 999996

SQL Server Express kullanıyorsanız, çıkmadan önce, SQL Server sürümlerinin (Express dahil) sp_procoption adlı bir sistem saklı yordamı sunduğunu bilmelisiniz, bu da SQL Server örneği başlatıldığında yürütülecek bir kullanıcı saklı yordam adı tanımlamanıza olanak tanır ve SQL Server hizmetiniz boyunca çalışır. Bu kullanıcı saklı yordamı, onwn zamanlama döngünüzü içerebilir.

EXEC sp_procoption @ProcName = 'DailyMaintenanceTask', @OptionName = 'STARTUP', @OptionValue = 'on'

Bu komut, ‘DailyMaintenanceTask’ adlı saklı yordamın SQL Server her başlatıldığında otomatik olarak çalıştırılmasını sağlar.

Not: Otomatik başlatılan saklı yordamlar master veritabanında bulunmalıdır ve yalnızca sistem yöneticisi (sysadmin) rolüne sahip kullanıcılar tarafından ayarlanabilir.

sp_procoption sistem saklı yordamı, SQL Server’ın başlangıcında otomatik olarak çalıştırılacak saklı yordamları yapılandırmanızı sağlar. Komuttaki parametreler şu şekilde açıklanabilir:

  • @ProcName: Yapılandırmak istediğiniz saklı yordamın adı. Köşeli parantezler içindeki “[put your procedure name]” ifadesi, kendi saklı yordam adınızla değiştirmeniz gereken bir yer tutucudur.
  • @OptionName: Ayarlanacak seçeneğin adı. Bu örnekte ‘STARTUP’ olarak belirtilmiş, yani SQL Server başlatıldığında yordamın otomatik çalıştırılıp çalıştırılmayacağını belirliyoruz.
  • @OptionValue: Seçeneğin değeri. “[on|off]” ifadesi, ‘on’ veya ‘off’ değerlerinden birini seçmeniz gerektiğini belirtir. ‘on’ değeri saklı yordamın SQL Server başlatıldığında otomatik olarak çalıştırılacağını, ‘off’ değeri ise otomatik çalıştırılmayacağını belirtir.

Çözüm 999997

USE msdb;EXEC sp_helpdbfixedrole;SELECT * FROM sys .database_principals WHERE name- ‘NT SERVICE\SQLSERVERAGENT

  • USE msdb; komutuyla msdb veritabanını seçiyor
  • EXEC sp_helpdbfixedrole; komutuyla sabit veritabanı rollerini listeleyen bir saklı yordamı çalıştırıyor
  • SELECT * FROM sys.database_principals WHERE name = 'NT SERVICE\SQLSERVERAGENT' komutuyla SQL Server Agent servisinin veritabanı üzerindeki izinlerini sorguluyor

Alt kısımda görülen sonuçlar, SQL Server’daki yerleşik veritabanı rollerini listelemektedir:

  1. db_owner – Veritabanı Sahipleri
  2. db_accessadmin – Veritabanı Erişim Yöneticileri
  3. db_securityadmin – Veritabanı Güvenlik Yöneticileri
  4. db_ddladmin – Veritabanı DDL Yöneticileri
  5. db_backupoperator – Veritabanı Yedekleme Operatörü
  6. db_datareader – Veritabanı Veri Okuyucusu
  7. db_datawriter – Veritabanı Veri Yazıcısı
  8. db_denydatareader – Veritabanı Veri Okuma Engelleyicisi
  9. db_denydatawriter – Veritabanı Veri Yazma Engelleyicisi

Bu roller, SQL Server veritabanlarında kullanıcılara veya gruplara atanabilecek standart izin setlerini tanımlar.


Çözüm 999998


sp_configure 'show advanced options','1'
RECONFIGURE
go

sp_configure 'Agent XPs','1'
RECONFIGURE
go


Bu SQL komutları, SQL Server’da belirli gelişmiş özellikleri etkinleştirmek için kullanılmaktadır:

İlk bölüm:

sp_configure 'show advanced options','1'
RECONFIGURE
go

Bu komutlar, SQL Server’da gelişmiş yapılandırma seçeneklerini görüntülemeyi etkinleştirir:

  • sp_configure 'show advanced options','1' komutu, gelişmiş yapılandırma seçeneklerinin görünmesini sağlar
  • RECONFIGURE komutu, değişikliği uygulamak için sistem yapılandırmasını günceller
  • go komutu, SQL Server Management Studio’da komut grubunu sonlandırır

İkinci bölüm:

sp_configure 'Agent XPs','1'
RECONFIGURE
go

Bu komutlar, SQL Server Agent’ın genişletilmiş saklı yordamlarını (extended stored procedures) etkinleştirir:

  • sp_configure 'Agent XPs','1' komutu, SQL Server Agent XPs’i açar
  • RECONFIGURE komutu bu değişikliği uygular
  • go komutu bu komut grubunu sonlandırır

Bu yapılandırma değişiklikleri tipik olarak SQL Server Agent’ı kullanmak istediğinizde gereklidir. SQL Server Agent, zamanlanmış işleri, uyarıları ve operatörleri yönetmenizi sağlayan bir SQL Server bileşenidir. Agent XPs’in etkinleştirilmesi, SQL Server Agent’ın düzgün çalışması için gereken genişletilmiş özelliklere erişim sağlar.


Çözüm 999999

  1. SQL Server Yapılandırma Yöneticisi’ni başlatın
  2. Özellikleri getirmek için SQL Server Agent (INSTANCE_NAME) hizmetine sağ tıklayın.
  3. Özelliklerde, hizmet hesabını Windows hesabınızla başlayacak şekilde değiştirin veya “Yerel Sistem” e geçin.
  4. Özellikleri kapatın
  5. Hizmeti Configuration Manager’da başlatın.

Not:
Bu ayarları, normal Windows Hizmetleri Yönetim Konsolu ile değil, SQL Server Yapılandırma Yöneticisi’ni kullanarak değiştirmek önemlidir. Bunun nedeni, SQL Server Yapılandırma Yöneticisi’nin tüm dizin/dosya izinlerinin ve SQL Server izinlerinin doğru şekilde ayarlanmasını sağlamasıdır.


Çözüm 1000000

  1. Çalıştır’a dcomcnfg girin ve Bileşen Hizmetleri’ni açacaktır
  2. Bileşen hizmetlerini genişletin, bilgisayarları genişletin, Bilgisayarım’ı genişletin
  3. Bilgisayarım’ı sağ tıklatın ve sonra Özellikler’i tıklatın
  4. COM Güvenliği sekmesini tıklatın ve Erişim İzinleri ile Başlatma ve Etkinleştirme İzinleri özelliklerinin doğru ayarlandığını onaylayın.

Çözüm 1000001

SQl sunucusu zamanında başlatılamıyor. Hata günlüğü, “d:” sürücüsündeki bazı dosyaların konumlarını bulamadığını söylüyor. İşin komik yanı, yalnızca tek bir bölüm diskim var “C:” – Microsoft Q&A


Çözüm 1000002

Kayıt defteri anahtarının iznini kontrol edin,  bunu yapmanın yollarından biri aşağıdaki gibidir.

-“regedit” komutunu çalıştırın

-Kayıt defteri anahtarına gidin

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\SQLServerAgent]

-“SQLServerAgent” tuşuna sağ tıklayın

-“İzin”i seçin

Agent grubunun üzerinde TAM izne sahip olması beklenir. İzin TAM değilse VEYA Aracı grubu yoksa, TAM izni verin VEYA sırasıyla TAM izinli grubu ekleyin.


Çözüm 1000003 -SON-

SQL Server bağlantı sorunlarında regedit’te bir parametre değerinin 60000 ms’den yüksek olması gerekiyor.

Registry Timeout Değeri

Windows Registry’de SQL Server başlatma timeout değerini artırabilirsiniz:

  1. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control yoluna gidin
  2. ServicesPipeTimeout değerini 60000 ms’den daha yüksek bir değere ayarlayın

 

Önceki çözümler işe yaramadıysa, SQL Server sürümünüzle uyumlu ODBC sürücüsünü belirtilen linkten indirmenizi öneririm. Bu da sonuç vermezse benimle iletişime geçebilirsiniz, yardımcı olmaya çalışırım. Yazıyı okuduğunuz için teşekkürler.

Microsoft SQL Server ODBC Driver Versions