SQL Server / SQL Server Agent Service
Bizim adımıza işleri programatize eden MS SQL Server Agent Service'in kullanımı hakkında genel bilgiler verilmiştir.
Bu makalemde sizlere MSSQL Server 2000 veritabanı yönetimi sistemi içerisinde bizim adımıza işleri biraz daha programatize eden bir servisten bahsedeceğim sizlere SQL Server Agent Service.
SQL Server Agent Service veritabanı yönetim sistemimiz içerisinde veritabanı ajanı olarak da anılır.Bu servisin yaptığı iş sizlerin zamanını belirterekten belli saatlerde şöyle bir iş yap ve işte tanımladığın şu kişiye mail ve başka yolla haber ver şeklinde veya da sizin belirttiğiniz bazı değerler arasında sizin ve veritabanı yönetim sisteminiz için sıkıntılı olabileceği durumlarda şu davranışlarda bulun ve sonuçlarını göster diyebileceğimiz bir servistir.
En genel ifadelerle yukarıdaki söylediklerimle özetleyebiliriz agent service'i ancak gelin yukarıda anlattığım olayları bir senaryo itibariyle nasıl yapabiliriz bunu inceleyelim. Günümüzde biliyorsunuz şirketleri ön plana çıkaran en önemli sonuçlardan bir taneside şüphesiz ki şirketimizin verileridir.Düşünün ki büyük bir şirketin DBA(Database Administrator) veritabanı yöneticisiyiz ve işimiz şirketin verilerinin bakımını yapmak ve uygun zamanlarda uygun şekillerde yedekleme işlemini yapmaktır .
Anlatacağımız senaryo itibariyle şunu hedefliyoruz.Hangi zaman sürecinde yapmasını bizim belirleyeceğimiz bir job(iş) tanımlayarak ve ne iş yapmasını söyleyerek bizim adımıza birtakım işlemleri gerçekleştirmesini isteyeceğiz.Bu işlemin sonucunda bir operator ile eğer sonuç olumlu,olumsuz yada her iki durumda da bize haber vermesini isteyeceğiz .
Burada yapacağımız uygulamaya başlamadan önce söylenecek en önemli konu ise sistemimiz SQL Server Agent Service modda çalışıyor olmalıdır. Bu kısmı unutursak zaten job ve operator ve de alert yapmayalım hiç:)))
İşe bir job tanımlayarak başlayabiliriz.Bunun için Enterprise Manager > Server Adı > Management > SQL Server Agent düğümünün altından Jobs Sekmesi seçilir.
Sağ tarafta ki ekranda sağ tıklayarak New Job seçilerek karşımıza açılan ekrandan Job'ımıza bir isim verilir.Yazacağımız job'ımızı herhangi bir kategoride olup olmayacağını Category tarafından seçebiliriz.	İstersek eğer job'ımızla ilgili bir açıklama yapmak için Description denilen kısım kullanılır.
Steps tabına geçerek artık uygulanacak olan job'ımızın adımlarını yazmaya başlıyoruz.New diyerek karşımıza çıkan ekranda step bir isim verilir.Step tipine ise T-SQL script yazacağımızı söyledikten sonra hangi veritabanı için işlem yapacağımız seçilir.T-SQL komutunu yazdıktan sonra Parse diyerek yazdığımız işlem tamamlanır.Alt tarafta bulunan Start Step kısmında ise birden fazla adım yazdı isek job'ımızın hangi adımdan başlayacağını söyleyebiliriz.
Schedule tabında ise belli bir zaman vererekten işimizi aktif ederiz eğer bunu kullanmayacaksak job'ımızı ilk ana ekran üzerinden ilgili job seçilerek sağ tıklayarak Start Job denilebilir.Ancak biz belli bir zamanda yapmasını istiyoruz.
Adına Backap dediğimiz job'ımızın çalışma zamanını New Schedule diyerek gerekli değerleri set ederek 15:00 olarak belirledik.Ve de job'ımıza bir isim verdik.	Notifications tabında ise yapılması gereken operator ile job'ın durumunun bize bildirilmesini sağlamaktır.Bunun için yapılması gereken Operator tanımlamaktır.Bunun için New Operator seçeneğinden operatorumuze bir isim vermektir.Operatorumuze bir isim verdikten sonra E-mail adresini tanımlamak varsa Pager operatoru tanımlamak ve net send adres seceneğine ise bilgisayarımızın adresini yazabiliriz.
Operator tarafında adres ve mail bilgilerini yazdıktan sonra istersen çalıştığından emin olmak için Test tuşuna basarak kontrol edebilirsiniz.
Notifications tabında E-mail operatorunun tanımlanan ismiyle seçilir.Ben bunu soner olarak tanımladım.Pager operatoru yapmadım ancak bunun yerine bilgisayarımın adını set ettim.İsterseniz en altta bulunan Automatically delete job seçeneğini seçerek job'ınızın bundan sonra ki davranışını belirleyebilirsiniz.
Artık job'ımızı oluşturduk ve yapmamız gereken bizim tarafımızdan belirtilen zamanda çalışması beklemek... İşte Sonuçlar hem outlook'ta ki belirttiğim adresime gelen mail hem de net send üzerinden messenger service yardımıyla gelen cevap...
Bu makalemde sizlerle MSSQL içerisinde kullanılan SQL Server Agent Service'ten bahsetmeye çalıştım. Bu çalışma makaleye örnek teşkil ettiği ve öğrenme amaçlı olduğundan hata testleri ve hata yakalama fonksiyonları yazılmamıştır.