SQL Express sürümlerinde agent kullanılamadığı için direk maintenance task üzerinden SQL Backup schedule edemiyoruz bildiğiniz gibi. Eğer online SQL backup alabileceğiniz bir backup çözümünüz yok ise ; SQL query’inizi BAT dosyası üzerinden çalıştırıp istediğiniz lokasyona backup’larınızı çıkartabilir, bunu otomatize etmek için ise Windows Task Scheduler’ı kullanabilirsiniz.
1- Ilk olarak elinizde bulunması gereken şey; SQL üzerinde çalışarak backup’ları dışarı export edecek olan query’yi bulmak. Buraya tıklayarak daha önce blogumda paylaştığım scripti kullanabilirsiniz.
2- Backup ları otomatik olarak çıkartacağımız dizini belirleyelim. Ben bu örnekte backup’ları C:\Test path’i altına çıkartmak istiyorum. Yukarıdaki linke tıkladıktan sonra aldığınız query’i notepad’e yapıştırın ve backupdb.sql olarak backup lokasyonu olan C:\Test altına save as edin.
3- SQL scriptimizi çalıştıracak olan batch dosyasını oluşturmak için. Notepad üzerinde aşağıdaki komutu yapıştırın ve SQLCMD.exe dosyasının yolunu kullandığınız SQL versiyonuna göre düzenleyin. Save as “backup.bat” diyerek c:\Test altına kaydedin.
"C:\Program Files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.EXE" -S .\VIM_SQLEXP -i C:\test\backupdb.sql
Nasıl düzenleyebilirim;
- SQL versiyonlarına göre sqlcmd.exe dosyasının bulunduğu path listesini aşağıda görebilirsiniz.
- .\VIM_SQLEXP olarak belirtilen kısım SQL Instance bilgisinin girileceği yer. Eger default instance ise direk “.” olarak bırakabilirsiniz.
- C:\test\backupdb.sql ise daha önce hazırladığım SQL query’in yolu
SQL Versions | Location |
SQL 2008 R2 | C:\Program Files\Microsoft SQL Server\100\Tools\Binn\ |
SQL 2012 | C:\Program Files\Microsoft SQL Server\110\Tools\Binn\ |
SQL 2014 | C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\110\Tools\Binn\ |
SQL 2016 | C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\110\Tools\Binn\ |
4- Task Scheduler’ı açarak, yeni bir task create ederek bat dosyasını çalıştırmak istediğiniz aralığı triggers altında belirledikten sonra, Actions altında New\Start Program Seçerek Program/Script altındaki kısma BAT dosyasınızın yolunu ekleyerek kaydedin.
5- Belirlediğiniz zaman aralığında schedule ettiğiniz task execute ettiğinde BAT dosyası üzerindne ilgili SQL query çalışarak backup’ları belirttiğiniz dizine çıkartıyor olacak.
Merhaba,
İlk defa yukarıdaki işlemi yapıyorum , ‘ Task Scheduler’ı açarak’ demişsiniz ama nerden açacağımı bulamıyorum, yardımcı olabilir misiniz?
Merhaba , sunucu üzerinde start’a tıklayarak arama kutucuğuna” task scheduler” yazın karsınıza gelecektir.
peki yedek alınacak gün sayısı ve sonrasi eskileri silmek
birde yedek aldıktan sonra eski yılları exclude etmek seklinde nasıl revize edebiliriz
Merhabalar,
1- task scheduler üzerinden hangi günlerde çalıştırmak isterseniz o şekilde konfigüre edilebilir, yani backup sıklılğını böyle ayarlayabilirsiniz.
2- Backup’ları hep standard bir folder’a alıyorsunuz ayrı bir batch file o folder içerisindeki XXX tarihindne önceki dosyaları sil yada buraya taşı tarzında bir otomasyon yapılabilir