SQL Server Job Hatalarını Bilgilendirme Maili Gönderme

Bumerang - Yazarkafe

Sql Server Job Hatalarını Bilgilendirme Maili Gönderme

Database Administrator olarak Sql server da örneğin SQL Backup alması için gerekli Job’ları oluşturdunuz. Full backup alması ve sonrasında diff yedek alması için gerekli tanımlamaları yaptınız. Herşeye buraya kadar güzel. Peki oluşturduğunuz Job’ların hata alması durumunda haberiniz oluyor mu? Bunun için Sql server Job hatalarını bilgilendirme maili gönderme yöntemini kullanabilirsiniz

Örneğin yedek alırken oluşabilecek hatalardan haberdar olacak, böylelikle geri yükleme esnasında problem yaşamadan önüne geçebilecekseniz.

Kafanızdaki tek bir saçı kaybetmeden tüm aşamaları, en kolay ve en hızlı yönden yapıyor olacağım.

Tüm Adımlar Sırasıyla:

  1. Database Maili Konfigürasyonu
  2. SQL Job oluşturma
  3. SQL Server Agent’in özelliklerini ayarlama
  4. Bir Operator Oluşturma
  5. Sql Server Job hatalarını bilgilendirme maili gönderme

1- Database Maili Konfigürasyonu

Bu adımı gerektiği gibi tamamlamak için, düzgün bir şekilde konfigürasyon yapılmış bir mail server’a ihtiyacınız olacak. Bunun için localhost’u kullanabilirsiniz ancak bu sefer SQL Server üzerine Microsoft IIS/SMTP yüklemeniz gerekir.

Sistem yöneticiniz yada Sql Server çalışan server üzerine IIS kurmak istemiyorsanız mail server kullanabilirsiniz.

1. Adım

SQL Server Management Studio (SSMS) açın, Database Engine‘a bağlanın, Management‘i “artı” işaretine basarak genişletin. Database Mail‘e sağ tıklayın ve sonra Configure Database Mail seçeneğine tıklayın.

Configure Database Mail

2.Adım

Aşağıda Açılan Pencereyi göreceksiniz. Next butonuna tıklayın.

Database Mail

3.Adım

Default seçenek olan “Set up Database Mail by performing the following tasks” seçeneğini olduğu gibi bırakarak Next butonuna tıklayın.

DatabaseMail

4.Adım

Henüz tanımlı bir mail konfigürasyonunun yapılmadığına dair aşağıdaki gibi pop-up penceresi açılacaktır. Yes butonuna tıklayın ve sonra Next.

Sql-Database-mail

5.Adım

Yeni profil için bir isim verin ve sonra Add butonuna tıklayın.

Yeni Profile

6.Adım

Boş alanları doğru bilgilerle aşağıda gösterilen yerelere girin,

· Email address– Gönderen mail adresini girin.

· Display name–  Email vardığında görüntülenen ismi girin.

· Reply email– Email’i alan kullanıcı, kendisine gelen email’i cevaplamak istediğinde, cevaplanan email’in farklı bir adrese gitmesini istiyorsanız kullanın.

· Server name– Mail server bilgilerini girin. Ör: “mail.sistemdestegi.com” veya IP adresi “192.168.10.10

· SMTP Authentication– Sql Server’in Mail Server’ınıza nasıl bağlanacağının bilgilerini girin.

Gerekli boş alanları doldurduktan sonra OK butonuna basın.

yeni database mail hesabı

7.Adım

Ve sonra Next butonuna tıklayın.

database mail konf

8.Adım

Public seçeneğini işaretlemek, eğer Sql server yönetimini birden fazla kişi yapıyorsa, bu profili başkasınında kullanmasını sağlamak anlamına gelir.

Profil Güvenliği Yönetimi

9.Adım

  • Belirtilen hesap için e-posta gönderim deneme sayısı.
  • Denemeler arasındaki, saniye cinsinden bekleme süresidir.
  • Gönderilebilecek dosya (veri) boyutunun maksimum değeri.
  • Gönderilecek olan e-postaya eklenmesine izin verilmeyen dosya tipleri.
  • Gönderilmek üzere sıraya giren e-postanın minimum aktif kalma süresidir ve saniye cinsindendir.
  • E-posta gönderimi ile ilgili yapılan log’lama işleminin seviyesi belirtilir.

sistem parametreleri

10.Adım

Finish tıklayın.

Complete Wizard

11.Adım

Her bir adımın “Success” olarak tamamlandığını göreceksiniz ve sonra Close butonuna tıklayın.

screen-shot-11-28-16-at-07-50-pm

Haydi Gelin Test Edelim

Database Mail üzerine sağ tıklayın Send Test E-Mail… seçeneğine tıklayın. Test için kullanılacak email adresini girin ve sonra Send Test E-Mail butonuna tıklayın.

sistemdestegi.com

Aşağıdaki gibi ekran göreceksiniz.

sistemdestegi.com

Eğer test email’i ulaşmazsa mail server ayarlarını doğru girdiğinizden emin olun.

2- Sql Server Job Oluşturma

Bu noktada Sql Server’ın mail gönderebildiğini biliyoruz. Şimdi ihtiyacımız olan bir SQL Job ve Job hata aldığında mail göndermesi. Test etmek için en kolay yol, bir Backup Jop oluşturmak ve bilgilendirme için “Success” olarak ayarlamak.Bir kez düzgün çalıştığını gördüğünüzde bilgilendirmeyi “Failure” olarak ayarlamayı unutmayın! Backup Jop oluşturmak için önceki yazım burada.

Not: Ayrıca Maintenance Plan Wizard‘ı hızlıca bir Backup Job oluşturmak için kullanabilirsiniz.

3- SQL Server Agent’in özelliklerini ayarlama

SQL Server Agent üzerine sağ click yapın ve Properties tıklayın.

Sql Server Agent

Select a page  altında Alert System tıklayın.

· Mail session altında Enable mail profile seçin, doğru mail profile’ı seçtiğinizden emin olun!

· Token replacement altında Replace tokens for all job responses to alerts seçeneğini işaretleyin.

OK butonuna basın ve sonra SQL Server Agent servisini yeniden başlatın.

screen-shot-11-28-16-at-08-39-pm

4- Bir Operator Oluşturma

SQL Server Agent altında Operators üzerinde sağ click yapın ve New Operator… seçeneğini işaretleyin.

clip_image01

Alıcı email adresini E-mail name alanına yazın ve OK butonuna tıklayın.

screen-shot-11-28-16-at-08-49-pm

SQL Server Job’un hata alması durumunda mail göndermesi için;

SQL Server Agent altında Jobs’a tıklayın ve sonra açılan listeden oluşturduğunuz Job’ı bulun ve sağ click yapın Properties seçeneğini işaretleyin.

screen-shot-11-28-16-at-08-54-pm

Select a page altında Notifications seçin. İlk seçenek E-mail aktif duruma getirin ve sonra oluşturduğunuz Operator’u seçin OK butonuna tıklayın.

screen-shot-11-28-16-at-08-57-pm

İşte bu kadar! Artık Oluşturduğunuz Job hata verirse SQL Server size mail bildirimi gönderecektir.

Eğer mail bildirimi gelmiyorsa SQL Server Agent servisini bir kez restart edin ve sonra tekrar deneyin.

SQL Server, bir Job hata alırsa size e-mail bildirimi göndermesi için nasıl ayarlanır bahsetmeye çalıştım. Umarım size yeni bir şeyler öğretme konusunda yardımcı olabilmişimdir. Diğer yandan katıldığınız veya katılmadığınız görüşler ile sorularınızı da yorum kısmından belirtirseniz elimden geldiğince yanıtlamaya çalışırım.