Bu makalede Sql Server Agent Properties bölümündeki bölümlerin ne işe yaradığına değinmiş olacağız. Şimdi Sql Server Agent Properties ekranına girip ilgileri bakalım.

Service state: SQL Server Agent’ın mevcut durumu burada gösterilir. Görüldüğü gibi, Running(Çalışıyor) durumda. Bu, SQL Server Agent’ın aktif olduğu ve görevleri yürütebileceği anlamına gelir.
Auto restart SQL Server if it stops unexpectedly: Bu seçenek işaretli olduğunda, SQL Server beklenmedik bir şekilde kapanırsa, hizmet otomatik olarak yeniden başlatılır. Bu, hizmetin sürekli çalışabilirliğini sağlamak için önemli bir özelliktir.
Auto restart SQL Server Agent if it stops unexpectedly: Aynı şekilde, SQL Server Agent’ın beklenmedik bir kapanma durumunda otomatik olarak yeniden başlatılmasını sağlar. Bu, zamanlanmış görevlerin aksamasını önlemek için kullanışlıdır.
Error log: SQL Server Agent hata günlüğünün bulunduğu yeri gösterir. Günlük dosyaları, SQL Server Agent ile ilgili hataları ve olayları takip etmek için kullanılır. Burada, hata günlüğü dosyası şu konumda saklanıyor: C:\Program Files\Microsoft SQL Server\MSSQL15.TEST\MSSQL\Log\SQLAGENT.OUT Bu dosya, SQL Server Agent’ın çalışması sırasında karşılaşılan sorunlar ve diğer önemli bilgilerle ilgili kayıtları tutar.
Include execution trace messages: Bu seçenek, SQL Server Agent’ın izleme mesajlarını hata günlüğüne eklemek için kullanılır. Genellikle hata ayıklama ve ayrıntılı günlükle me için bu seçeneği işaretleyebilirsiniz. Sql Agent altında bulunan jobların çalışma durumlarını sql agent error log’a yazması için ilgili checkbox yapısının işaretlenmesi gerekmektedir.
Write OEM file: Bu seçenek genellikle geniş karakter desteği sunmayan eski sistemlerde kullanılır. Çoğu modern yapılandırmada gerekli değildir.
- General sekmesinde işlemlerimi bitirdikten sonra Advanced sekmesindeki kavramlara değinelim.

Yukarıdaki resimde SQL Server Agent’ın Advanced sekmesini gösteriyor. Bu sekmede SQL Server Agent’ın olay yönlendirmesi ve işlemci kullanım durumu gibi gelişmiş ayarlarını yapılandırabilirsiniz.
SQL Server event forwarding: Bu bölümde, SQL Server olaylarını başka bir sunucuya yönlendirme ayarları bulunur. Bu genellikle birden fazla sunucu arasında olay yönetimini merkezi hale getirmek için kullanılır.
Forward events to a different server: Bu kutucuğu işaretlerseniz, SQL Server Agent’ın olaylarını başka bir SQL Server’a iletebilirsiniz. Server kısmında yönlendirilecek sunucunun adını belirtmeniz gerekir. Events: Hangi olayların yönlendirileceğini seçebilirsiniz:
Unhandled events: Yalnızca SQL Server Agent tarafından işlenmeyen olaylar yönlendirilir.
All events: Tüm SQL Server Agent olayları yönlendirilir.
If event has severity at or above: Bu ayar, belirli bir şiddet düzeyine sahip olayları filtrelemek için kullanılır. Burada, hangi şiddet düzeyine sahip olayların yönlendirileceğini seçebilirsiniz.
SQL Server Agent Makalesinde bu değerlerin ne olduğunu öğrenebilirsiniz.

1. Define idle CPU condition
Bu kutucuğu işaretlemezsen, SQL Server sunucunun “boşta” olup olmadığını takip etmez. İşaretlediğinde ise aşağıdaki kurallar devreye girer.
2. Average CPU usage falls below (Ortalama CPU kullanımı şunun altına düştüğünde)
Sunucunun “boşta” sayılması için işlemci kullanımının yüzde kaçın altına düşmesi gerektiğini belirlersin.
- Örnek: Görseldeki %10 değeri, “İşlemci kullanımı %10’un altına inerse boşta sayılabilir” demektir.
3. And remains below this level for (Ve şu kadar süre bu seviyenin altında kalırsa)
CPU kullanımı belirlenen sınırın altına düştüğünde hemen “boşta” denmez; bir süre beklenir. Bu, anlık dalgalanmaları önlemek içindir.
- Örnek: Görseldeki 600 seconds (saniye) değeri, işlemcinin tam 10 dakika boyunca %10’un altında kalması gerektiğini söyler. Bu şart sağlanırsa sunucu resmi olarak “Boşta (Idle)” moduna geçer.
Diyelim ki sunucuyu yoracak bir veri yedekleme veya analiz işin var. Bu işin mesai saatlerinde çalışıp sistemi yavaşlatmasını istemiyorsun. İlgili işin (Job) zaman çizelgesini (Schedule) “Start when CPUs become idle” (CPU’lar boşta kaldığında başlat) olarak seçersen, iş ancak buradaki şartlar (mesela 10 dakika boyunca %10 altı kullanım) oluştuğunda kendiliğinden başlar.
Modern sunucularda CPU kullanımı genelde çok hareketli olduğu için bu ayarı tutturmak bazen zor olabilir. Eğer çok kritik bir işin varsa, bunu “boşta kalma” durumuna bağlamak yerine doğrudan gece saatlerine zamanlamak daha garanti bir yöntemdir.
- Advanced sekmesinde işlemlerimi bitirdikten sonra Alert System sekmesindeki kavramlara değinelim.

Mail Session Bölümü: “Enable mail profile” kutucuğu işaretli. Bu, SQL Server Ajanı’nın e-posta profili aracılığıyla uyarı gönderme işlemini etkinleştirir.
Mail system: “Database Mail” olarak seçilmiş, bu da SQL Server’ın yerleşik e-posta gönderme sistemini kullanacağını gösterir.
Mail profile: “123” adlı bir mail profili kullanılıyor. Sizde kendi profilinizi belirleyebilirsiniz.
“Save copies of the sent messages in the Sent Items folder” seçeneği işaretli değil, yani gönderilen mesajların kopyaları kaydedilmeyecek.
Pager E-mails Bölümü: Bu bölümde pager (çağrı cihazı) formatında e-posta gönderme seçenekleri bulunuyor.
Fail-safe Operator: “Enable fail-safe operator” seçeneği etkin. Bu, eğer varsayılan operatörler uyarıyı alamazsa bir güvenlik önlemi olarak fail-safe operatörün bilgilendirileceği anlamına gelir. Bu yapı sayesinde kullanıcımıza mail gönderim işlemi sağlanacaktır. Hangi kullanıcılara mail’in gideceğini belirlemiş olduğumuz operator sayesinde yapıyoruz.
Token Replacement: “Replace tokens for all job responses to alerts” bu da SQL Server Ajanı’nın iş yanıtlarına ilişkin tokenları değiştirmeyeceğini gösterir.
- Alert System sekmesinde işlemlerimi bitirdikten sonra Job System sekmesindeki kavramlara değinelim.

Yukarıdaki resim , SQL Server Agent özellikleri penceresinin bir başka kısmını göstermektedir. Bu kısımda agent hizmeti ile ilgili proxy hesapları ve zaman aşımı ayarları bulunuyor.
Shutdown Time-out Interval: Bu ayar, SQL Server Agent’ın kapanmadan önce ne kadar bekleyeceğini belirler. Eğer agent kapanma talimatı aldıysa, işlemleri tamamlamak için 15 saniye bekler ve ardından kapanır.
Job Step Proxy Account: Use a non-administrator proxy account kutucuğu işaretli değil, bu da varsayılan olarak bu agent için yönetici olmayan bir proxy hesabı kullanılmadığını gösterir. Proxy hesabı etkinleştirildiğinde, altında User name, Password ve Domain alanları doldurulabilir. Bu ekran, SQL Server Agent’ın nasıl çalışacağı ve hangi hesapların kullanılacağına dair ayarların yapıldığı bir bölümdür.
- Job System sekmesinde işlemlerimi bitirdikten sonra Connection sekmesindeki kavramlara değinelim.

Yukarıdaki resim, SQL Server Agent’ın SQL Server’a nasıl bağlanacağını ayarlamak için kullanılır.
1. Alias local host server
Normal şartlarda SQL Server Agent, üzerinde bulunduğu SQL Server’a doğrudan bağlanır. Ancak bazen ağ yapılandırması veya özel güvenlik ayarları nedeniyle sunucuya kendi ismiyle değil, bir Alias (takma ad) üzerinden bağlanması gerekebilir.
- Buraya bir isim yazarsan, Agent gerçek sunucu adı yerine bu takma adı kullanarak bağlanmaya çalışır. Genelde özel bir ağ senaryosu yoksa boş bırakılır.
2. SQL Server Connection
Bu kısım, Agent’ın hangi kimlik doğrulama yöntemini kullanarak “içeri gireceğini” belirler. Görselde bu seçeneklerin pasif (gri) olduğunu görebilirsin; çünkü modern SQL Server sürümlerinde Agent, genellikle kendi servis hesabı üzerinden otomatik bağlanır.
- Use Windows Authentication: Agent’ın çalıştığı Windows servis hesabını (örneğin NT Service\SQLSERVERAGENT) kullanarak bağlanmasını sağlar. En güvenli ve standart yöntem budur.
- Use SQL Server Authentication: Eğer Windows hesabı yetersizse veya özel bir durum varsa, buraya elle bir
sakullanıcısı veya başka bir SQL kullanıcısı tanımlanabilir. (Görselde kapalı durumdadır).
Özetle:
Bu sayfa, “SQL Server Agent, veritabanına hangi kapıdan ve hangi anahtarla girecek?” sorusunun cevabıdır. Çoğu standart kurulumda buradaki ayarlar varsayılan olarak bırakılır ve Agent kendi servis yetkileriyle sorunsuz çalışır.
Eğer SQL Server Agent servisini başlattığında “Bağlanılamadı” hatası alıyorsan, buradaki “Alias” kısmında yanlış bir giriş olup olmadığını kontrol etmek iyi bir fikirdir.
- Connection sekmesinde işlemlerimi bitirdikten sonra History sekmesindeki kavramlara değinelim.

Yukarı bölümdeki ekran resmi, SQL Server Agent’ın yürüttüğü işlerin geçmişi ile ilgili ayarların yapılandırıldığı yerdir. İşlerin geçmişine dair verilerin ne kadar süreyle saklanacağı ve ne kadar veri tutulacağı gibi sınırları belirleyebilirsiniz.
Paylaştığın görsel, SQL Server Agent‘ın iş geçmişi (Job History) günlüklerini nasıl yönettiğini gösteren ayarlar ekranıdır. Bu bölüm, SQL Server üzerinde çalışan otomatik görevlerin kayıtlarının ne kadar süreyle ve ne miktarda saklanacağını belirler.
İşte bu bölümlerin ne anlama geldiği:
1. Limit size of job history log (İş geçmişi günlük boyutunu sınırla)
Bu seçenek işaretlendiğinde, SQL Server geçmiş kayıtların sonsuza kadar birikmesini engeller. Eğer bu kutu seçili olmazsa, kayıtlar diskinizi doldurana kadar büyümeye devam edebilir.
- Maximum job history log size (in rows): Tüm işlerin (job) toplamda en fazla kaç satır kayıt tutacağını belirler. Görselde 1000 olarak ayarlanmış. Yani toplam kayıt sayısı 1000’e ulaştığında, en eski kayıtlar silinmeye başlar.
- Maximum job history rows per job: Her bir iş (job) için en fazla kaç satır geçmiş tutulacağını belirler. Default 100 olarak ayarlanmış. Bu, çok sık çalışan bir işin (örneğin her dakikada bir çalışan bir job), listenin tamamını kendi kayıtlarıyla doldurmasını engeller.
2. Remove agent history (Agent geçmişini sil)
Belirli bir süreden daha eski olan kayıtların otomatik olarak silinmesini sağlar. Görselde şu an kapalı (işaretsiz) görünüyor.
- Older than: Burada belirlediğiniz süre dolduğunda (örneğin 4 hafta), sistem bu süreden daha eski olan tüm geçmişi temizler. Bu, özellikle veri tabanı sunucusunun msdb veritabanının şişmemesi için önemlidir.
Özetle
- Sistemde toplamda sadece 1000 satır geçmiş kaydı tutar.
- Hiçbir görev (Job) kendi başına 100 satırdan fazla geçmişe sahip olamaz.
- Zaman bazlı bir silme (haftalık/aylık) şu an aktif değil; sadece satır sayısı dolunca eskileri siler.
Eğer çok sayıda işiniz (job) varsa ve bunlar sık çalışıyorsa, “1000 satır” çok az gelebilir. Önemli hataları kaçırmamak için genellikle bu değerler daha yüksek tutulur veya süre bazlı (örneğin son 4 hafta kalacak şekilde) temizleme tercih edilir.
Bu makalede Sql Server Agent Properties Kavramları hakkında detaylı bilgilendirme yapmış olduk. Başka bir makalede görüşmek dileğiyle.
Onlar – “Emanetlerine İhanet Etmezler. ” Mu’minun-8
