-- SQL Server

SQL Server Agent ile Yedekleme Görevi(Job) Oluşturmak

SQL Server veritabanında belirli işleri otomatik ve zamanlanmış hale getirmek için  SQL Server Agent kullanılır. Bu işlemlere örnek olarak, veritabanı yedekleme işlemleri, mail işlemleri, zamanlanmış raporlama işlemleri gösterilebilir. Bu makalemde, bir çok geliştirici ve DBA’in kullandığı otomatik-zamanlanmış yedekleme görevi oluşturmaya değineceğim.

SQL Server Management Studio aracına giriş yaparak Object Explorer ekranının  en altındaki SQL Server Agent sekmesine odaklanalım.

Ekran Alıntısı

En alttaki SQL Server Agent’ın sol alt kısmında kırmızı ikon olduğunu görebiliyoruz. Bu durum, Agent servisinin hazır olmadığını gösterir.  Agent’i kullanabilmek için üzerine sağ tıklayıp Start butonuna basıyoruz.

Adsız

Bir uyarı ekranı açılacak. Bu ekranı OK butonuna basarak geçelim.

Ekran Alıntısı

Bu işlem sonrasında, SQL Server’da yeni bir job oluşturmak için gerekli alt yapımız hazır demektir.

Northwind Veritabanını Yedekleyen Job Oluşturmak

Northwind isimli veritabanımızı her gün belirli zaman dilimlerinde yedeklemek istiyoruz. Bunu da manuel olarak yapmak yerine SQL Server Agent ile bir ajan oluşturarak yapacağız.

Object Explorer -> SQL Server Agent -> Jobs -> [SağTık] -> New Job

Ekran Alıntısı

Name : NorthwindOtomatikYedekle
Owner : sa
Category : [Uncategorized (Local)]
Description : Northwind veritabanını yedekleme adımı.

Sonrasında sol listedeki General’in altında bulunan Steps sekmesini açıyoruz. Burada, yedekleme işlemini basamaklar halinde yönetme işlemlerini yapabiliyoruz. Örneğin, yedeği al, sonra X işlemini de yap ve sonrasında Y işlemini gerçekleştir gibi.

Steps -> New butonuna bastım ve açılan pencere aşağıdaki gibi görüntülendi.

Ekran Alıntısı

Ekrandaki değerleri açıklamak gerekirse;

Step name : Bu adıma verilen isim.
Type : Hangi tür-teknik-komut yapısıyla bu işlemi gerçekleştireceğimizi belirtiyoruz. Örneğin PowerShell ile de bu işlem gerçekleştirilebilirken biz T-SQL kullanacağız. Bu nedenle Transact-SQL Script seçeneğini seçiyoruz.
Database : Üzerinde işlem yapılacak veritabanını belirtir. Basit veritabanı yedekleme işlemlerinde master seçili olabilir. Ancak, örneğin X veritabanının içerisindeki nesnelere erişmek istendiğinde X veritabanı seçilmelidir.
Command : Job adımının yapması gereken işlemi belirten T-SQL cümleciği yazılır. Bu örnekte yedekleme işlemi komutları yazdık.

Sol alandaki Open, Parse gibi butonlar ise;

Open : Command alanına herhangi bir T-SQL Script’ini seçerek kodların bu alana eklenmesini sağlar.
Parse : Command alanına yazılan komutların T-SQL kurallarına uygun olup olmadığını kontrol eder. Sorgular çalıştırılmaz, sadece söz dizimi olarak doğru olup olmadığını kontrol eder.

Şimdi, soldaki Advanced sekmesini seçeklim ve detaylı ayarları yapmaya başlayalım. Menüyü seçtiğimizde aşağıdaki ekranla karşılaşacağız.

Ekran Alıntısı

On success action : Bu adım(step) başarıyla çalıştığında ne yapılsın?
-> Go to nex step : Sonraki adıma geç(sonraki adım oluşturulduysa, yoksa hiç bir şey yapılmaz)
-> Quit the job reporting success
-> Quit the job reporting failure
Retry attempts : Hata ile karşılaşırsa bu işlem kaç kez denensin?
Retry Interval(minutes) : Tekrar denemeleri kaç dakika arayla yapılsın?

On failure action : Bu adım(step) hata ile sonuçlanırsa ne yapılsın?

Bu işlemleri belirledikten sonra OK butonuyla bu ekranı onaylayıp kapatıyoruz. Eğer yeni bir işlem daha gerçekleştirmek istiyorsanız yeni bir adım oluşturarak onu da belirtebilirsiniz.

Şimdi, soldaki Schedules seçeneğiyle bir zamanlama gerçekleştireceğiz.

Ekran Alıntısı

Name : Schedule’e verilen isim
Schedule type : Schedule nasıl bir davranış sergilesin?
-> Start Automatically when SQL Server Agent starts : SQL Server Agent başladığında otomatik olarak çalışsın
-> Start whenever the CPUs become idle : CPU boş(idle) duruma geldiğinde çalışsın
-> Recurring : Sürekli tekrar etsin
-> One time : Bir kez çalışsın

Frequency : Hangi sıklıkla yapılsın?
-> Daily : Her gün yapılsın(Bunu seçtik)
Not : Burada hergün, ayda istenen gün, her hafta istenen günler gibi seçenekler belirtilebilir. Biz her gün için oluşturacağız.

Daily Frequency : Her gün hangi zaman diliminde yapılsın?
-> Accors once at : Saat kaçta yapılsın?
-> Accors every : Hangi gün hangi saatte başlasın hangi saate kadar sürsün?

Bu işlemler sonrasında benim hazırladığım bilgilere göre aşağıdaki ekran görüntüsü oluştu.

Ekran Alıntısı

Job’ın çalıştığını görmek için ya saati kısa bir zamana alın ve test edin ya da aşağıdaki menüden çalıştırın.

Adsız

Eğer başarılı bir job oluşturduysanız aşağıdaki ekranla Success mesajı alırsınız.

Ekran Alıntısı

Hatalı bir işlem yaptıysanız Execute kısmında Error mesajı alırsınız. Bu hatanın detayını ise aşağıdaki ekrandan görebilirsiniz.

Oluşturduğunuz Job’a sağ tıklayıp Properties ya da üzerine çift tıklayın, açılan ekrandaki View Job History linkine tıklayın.

Ekran Alıntısı

İyi çalışmalar
Cihan

Yorumla

Yorum