Aslında bu konuyu video çekerek anlatmayı düşünüyordum fakat bunun için yeterli vaktim olmadığı ve kendimi video çekmeye hazır hissetmediğim için yazacağım. Bu yazımda MSSQL içerisinde işimizi ciddi şekilde kolaylaştıracak bir özellikten bahsedeceğim. Özellikle çoğumuzun yedekleme konusunda farklı istekleri olabilir: “Her gün/her x haftada/her x ayda/her x saniyede veritabanımdaki verileri yedekleyim” diyebilirsiniz. Alınan bu yedeğide size mail atmasını isteyebilirsiniz… Bunun için oldukça kullanışlı ve başarılı bir özellik olan SQL Server Agent kullabiliriz. Yazımın içeriğini giriş seviyesinde sunmaya çalışacağım ama sonraki yazılarımda biraz daha ileri düzeye doğru çıkmayı planlıyorum.
Giriş
Öncelikle veritabanımıza SQL Server Authentication da sa (System Admin) kullanıcı adı ile giriş yapacağız. Aşağıdaki gibi giriş yapabiliriz. Eğer sa şifrenizi bilmiyorsanız o zaman bir sonraki görseldeki gibi şifrenizi değiştirebilirsiniz.
Öncelikli Windows Authentication olarak giriş yapıyoruz. Sonrasında ilk aşama olarak:
Daha sonra şifrenizi değiştirebilirsiniz
Yeniden SQL Server Authentication da kullanıcı adı yeirne “sa” ve şifre yerinede az önce belirlediğimiz şifreyi yazarak giriş yapabiliriz.
Diğer önemli nokta ise SQL Server Agent servisin açık olması gerekiyor. Denetim Masası > Yönetim Araçları > Servisler > buradan SQL Server Agent üzerine gelip sağ click ile start diyebilirsiniz. Bu işlemi yapmak için bir kaç yol var ama benim tercih ettiğim yol bu.
SQL Server Agent Kullanarak Job(Görev, İş) Oluşturmak
Öncelikli olarak aşağıdaki gibi SQL Server Agent > Jobs a sağ tıklatıp New Job ı seçiyoruz.
Gelen pencere aşağıdaki gibi olacaktır.
Sol taraftaki “Select a Page” bölümünden şu işlemleri yapıyoruz:
- General > Name yerine bu job ın adını yazıyorsunuz. Owner kısmının sa (system admin) olduğundan emin olun.
- Steps > Esas işlemi yaptıracağımız yer burası. New dedikten sonra açılan pencereden Step Name yerine step adımızı yazıyoruz. Type olarak T-SQL i seçiyoruz. Command yerine:
backup database Yedekleme
to disk = ‘C:\backups\Yedegim.bak’
with description = ‘Otomatik olarak eklenen database’
“Yedekleme” yerine kendi database isminizi yazabilirsiniz. Ayrıca her defasında veritabanının tamamını almak yerine sadece farkları almak isterseniz proc yazabilirsiniz.
- Schedule > Haftalık mı aylık mı günlük mü buradan ayarlayabiliyorsunuz. Min 10 saniyede bir işlem yaptırabilirsiniz.
Bu işlemler sonucunda oluşturmuş olursunuz. Daha fazla detaya girmem şu aşamada kafa karışıklığına sebep olabilir.
SQL Server Agent Kullanarak Job(Görev, İş) Silmek
SQL Authentication olarak girdikten sonra SQL Server Agent > Jobs > Oluşturduğunuz Job’a sağ tıklayıp silebilirsiniz.
Umarım faydalı bir yazı olmuştur. İyi çalışmalar
#1 by Ufuk on January 3, 2012 - 3:06 pm
Üstat Job’ları yedeklemenin bir yolu var mıdır?
#2 by Mahmut Can Sözeri on January 10, 2012 - 7:29 pm
Merhaba,
Evet var. Bunun için ister Powershell ister SSIS istersen Sql komutu kullanabilirsiniz. En basit anlamda tüm Job’lar MSDB’de durur. MSDB’nin backup’ını alırsanız işinize yarayacaktır.
İyi çalışmalar
#3 by UfukArt on January 10, 2012 - 7:40 pm
Veritabanı yedeğinde stored procedur’ler, view’ler ve job’lar da bulunuyor denilebilir değil mi?
Yanıtınız için teşekkürler…
#4 by Mahmut Can Sözeri on January 10, 2012 - 7:46 pm
Merhaba,
Oluşturduğunuz Function’lar, View’ler ve Stored Procedure’ler ilgili DB üzerinde durur. Fakat Job’ler MSDB üzerinde durur.
Rica ediyorum. İlginiz için teşekkürler.