MSSQL Backup Folder

MsSQL 2012’de günlük yedek nasıl alınır?

MsSQL 2012 ve zamanlanmış görevleri kullanarak yedek alma nasıl yapılır? Soru çok basit ama çözümü o kadar basit değil. Hadi yedek alma SQL Server Management Studio kullanarak yapılabiliyor: İstenen veritabanına sağ tıkla “Tasks/Backup” linkine tıkla ve yedek al. Ama bunu otomatik yapmak, hele bir de her gün farklı bir dosyaya kaydetmek farklı mesele. “Şekil 1a” sonuç olarak elimizde nasıl bir yedek klasörü olacağını gösteriyor. Eğer siz de bunun nasıl yapılacağını merak ediyorsanız bu yazıyı okumaya devam edin.

MSSQL Backup Folder

MSSQL Backup Folder

Özet:

  1.  Bir yedek.sql dosyası oluşturulacak.
  2. yedekle.bat dosyası oluşturulacak, bu yedek.sql dosyasını çalıştıracak.
  3.  Son adımda bu yedek.bat dosyası zamanlanmış görev olarak yerleştirilecek.

Adım 1

İstenen herhangi bir yol ile bir not defteri açılır. İçine aşağıdaki kodlar yapıştırılır. Sonra da kaybolmayacak bir yere *.sql olarak kaydedilir. Ben not defteri olarak notepad++ kullanıyorum ve bu dosyayı “d:\yedek.sql” olarak kaydedeceğim.

DECLARE @pathName NVARCHAR(512) 
SET @pathName = 'D:\Backups\Gulistan-' + Convert(varchar(8), GETDATE(), 112) + '.bak' 
BACKUP DATABASE [Gulistan] TO DISK = @pathName WITH NOFORMAT, NOINIT, NAME = N'Gulistan-Full Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO

Açıklamalar

  1. “pathName” adında 512 karakter uzunluğunda bir değişken tanımlıyoruz.
  2. Bu değişkenin içeriğini yedeğin adresini yazıyoruz. Bu satırdaki Convert fonksiyonu ile bugünkü tarihi “yyyymmdd” olarak alıyoruz.
  3. Son satırlarda yedek alma işlemi için gerekli olan SQL kodlarını içeriyor.

Adım 2

Yeni bir dosyaya aşağıdaki kodlar yapıştırılır ve “d:\yedekle.bat” olarak keydedilir. Ama kaydetmeden önce mutlaka “SQLCMD.exe”nin adresinin doğru olduğundan emin olun. Bu kodu basitçe anlatmak gerekirse, tek yaptığı yedek.sql dosyasını lokal MsSQL sunucusunda “Integrated Security” kullanarak çalıştırmak.

"C:\Program Files\Microsoft SQL Server\110\Tools\Binn\SQLCMD.exe" -S (local)\GULISTAN -i D:\yedek.sql

Adım 3

Task Scheduler Library

Task Scheduler Library

Burası için en kolay yeri.

  1. “Server Manager” açılır.
  2. “Configuration > Task Scheduler > Task Scheduler Library” yolunu kullanarak var olan zamanlanmış görevler açılır.
  3. Sağ taraftaki menüden “Create Basic Task” seçilir. Açılan pencereye yedekleme işlemimiz için bir ad yazılır ve “Next” düğmesine basılır.
    Create Basic Task Wizard

    Create Basic Task Wizard

  4. İkinci sayfada “Daily”seçilir ve tekrar “Next” düğmesine basılır.
  5. Üçüncü sayfada yedek alınacak saat belirlenip iki defa “Next” düğmesine basılır.
  6. Burada çalıştırılacak programı seçmemiz gerekiyor. Biz de “Browse” düğmesine basıp “yedekle.bat” dosyasını seçiyoruz ve işlemi tamamlıyoruz.

Artık tek yapacağınız beklemek ve görmek. Eğer deneme yapmak istiyorsanız “yedekle.bat” dosyasını bir kere çalıştırın.  Hata vermezse sorun yok, günlük yedekleme mekanizmanız olmuş demektir.