SQL Server’da Full Backup Nasıl Alınır? (Adım Adım Anlatım + Demo)

Bu videoda SQL Server üzerinde Full Backup (tam yedek) nasıl alınır, adım adım ve uygulamalı olarak gösteriyorum. Veritabanınızı nasıl güvenli şekilde yedekleyeceğinizi, SSMS arayüzünde ve T-SQL komutlarıyla nasıl backup alabileceğinizi net bir şekilde öğrenebilirsiniz.

Veri tabanlarının yedeklenmesi çok önemlidir.
Çünkü veriler kaybolduğunda bizi kurtaracak olan tek şey yedektir. Bu nedenle yedekleme yapmak bir tercih değil, bir zorunluluktur.

Yedekleme yaparken şu sorulara mutlaka cevap vermeliyiz:

Yedekleme nasıl yapılmalı?

Yedekleme planlı, düzenli ve otomatik bir şekilde yapılmalıdır. Verilerin tam, artımlı veya diferansiyel olarak yedeklenmesine karar verilmelidir.

Yedekleme ne zaman yapılmalı?

Verinin önemine ve güncellenme sıklığına göre günlük, haftalık veya aylık periyotlarla yedekleme yapılmalıdır. Kritik veriler için daha sık yedekleme tercih edilmelidir.

Yedekleme nereye yapılmalı?

Yedekler farklı bir fiziksel konuma, harici disklere, ağ üzerindeki bir sunucuya veya bulut ortamına alınmalıdır. Böylece olası bir afet durumunda veri kurtarılabilir.

Yedekleme doğru yapıldı mı?

Yedeklerin doğruluğu düzenli olarak test edilmelidir. Yedek dosyaları bütünlük kontrolünden geçirilmeli ve başarıyla geri yüklenebilir olduğu teyit edilmelidir.

Yedekten geri dönüş yapabilecek miyiz?

Yedekten veri geri yükleme (restore) işlemi mutlaka denenmeli ve acil bir durumda çalışacağından emin olunmalıdır. Yedek almak kadar, bu yedekten sorunsuz bir şekilde dönüş yapabilmek de çok önemlidir.

Yedekten geri dönüş yapabilecek miyiz?

Veri tabanını seçerek sağ tuşa basıyorum. Burada Task (Görevler) altında Backup (Yedekleme) var.

Yedekleme penceresi açıldığında veritabanı adı, Backup Type yedekleme tipi ve varsayılan konumda yedekleme dosyasının adını verir.

Backup Type Full Backup (Tam Yedekleme) Differential Backup (Full Backuptan sonra değişenleri alır).

Benim tercihim Full Backup tır.

Yedeklemeyi varsayılan konuma değil, kendi istediğimiz bir konuma yedekleme almalıyız.

Önce varsayılan konumdaki yedekleme dosyasını remove ederek kaldırıyorum. Daha sonra yedek alacağım yeri seçiyorum.

Yedek alacağım klasör için bir klasör oluşturuyorum.

Tekrardan yedek alacağım klasörü seçiyorum. Burada Dosya adını yazıyorum. Uzantı olarak .bak yazmalıyız. Bunu unutmayın.

Yedekleme doğru yapıldı mı?

Media Option kısmında 2 seçenek karşımıza gelir.

Append to daha önce alınan yedeği bozmaz üzerine ilave eder.
Overwrite to is daha önce alınan yedeği siler şuan ki durumun yedeğini alır.

Ayrıca aşağıda Verify backup when finised vardır. Yedekleme bitince yedeğin doğru alındığını kontrol eder.

Artık yedekleme ayarlarımız bitti SQL veri tabanımızın yedeğini alabiliriz.
Buraya kadar basit anlamda SQL Veri Tabanı yedeklemesinin nasıl yapıldığını anlattım.

Yedeklemeyi SQL komutu olarak ta verebiliriz.

Yedeklemeyi SQL komutu olarak ta verebiliriz.
Bunun için C: Diskinde Yedek adında bir klasör oluşturalım.

Yeni bir Sorgu oluşturalım. Bu sorgu içine

BACKUP DATABASE Uretim TO DISK=’C:\Yedek\Uretim.bak’

yazalım ve çalıştıralım.
Yedek klasörü içinde Uretim.bak dosyasını yaratacaktır. Bu şekilde yedekleme sürekli olarak yedek dosyasına yeni yedeği ekler.
Uretim.bak dosyası zaman içinde büyük bir dosya olur.

Şimdi bu SQL komutunu biraz geliştirip Uretim.bak dosya adına tarih ekleyelim.

Şimdi bu SQL komutunu biraz geliştirip Uretim.bak dosya adına tarih ekleyelim.
Bunun için DosyaAdı tanımı ve Tarih tanımı yapacağız.
Bu tanımlara değerlerini atacağız.
SQL backup sorgusunu düzenleyeceğiz.
Çalıştırdığımızda Uretim_yilaygun.bak formatında yedek dosyası oluşturacaktır.

DECLARE @DosyaAdi NVARCHAR(200)
DECLARE @Tarih NVARCHAR(20)

— YYYYMMDD formatında tarih alalım
SET @Date = CONVERT(VARCHAR(8), GETDATE(), 112)

— Dosya adını birleştir
SET @FileName = N’C:\Yedek\Gunluk_’ + @Date + ‘.bak’

— Backup al
BACKUP DATABASE Uretim
TO DISK = @FileName
WITH FORMAT, INIT, NAME = N’Üretim Database Yedek’

Burada gördüğünüz gibi Uretim.bak dosyası her yedek aldığımızda büyüyor.

SQL komutunu geliştirerek WITH Format, Init ve Name ekleyelim.
Bu ise dosyayı yeniden yaratır ve yedeklemeye açıklama ekler.

Bu yazdığımız SQL komutlarını kayıt edelim. Dosya adı olarak günlük.sql diyelim.

SQL komutunu geliştirerek WITH Format, Init ve Name ekleyelim.

Daha önce oluşturduğumuz yedek dosyasını silelim.

CMD yani Komut sistemine geçerek SQLCMD ile gunluk.sql dosyasını çalıştıralım.

Burada büyük-küçük harf önemlidir.

SQLCMD -S .\SQLExpress -E -i C:\Yedek\gunluk.sql

yazalım.

Burada
-S Sunucuyu
-E Windows kimlik doğrulama
yerine -U kullanıcı -P şifre SQL kimlik doğrulama kullanılabilir.
-i çalışacak dosya anlamındadır.

Bundan sonra yapılacak olan bat dosyası yazmaktır.

Bundan sonra yapılacak olan bat dosyası yazmaktır.
Yani cmd de yazdıklarımızı .bat uzantılı dosya haline getirirsek.
Windows ta direk olarak çalışır.
Bu dosyayı da Görev Zamanlayıcıda bir görev olarak tanımlarsak,
Otomatik olarak günlük yedekleme alabiliriz.

Burada kritik nokta bu aldığımız yedeği, sunucu üzerinde değil harici bir yere veya buluta yedeklemektir.

Şimdi Görev Zamanlayıcıda görev olarak tanımlayalım.
En sonunda da Kullanıcı Login olmasa dahi çalışsın yapalım.
Böylece sunucu açık olduğu sürece hergün SQL database yedeği alınır.

Yedeğin ne zaman alınacağına siz karar vereceksiniz.
En başta sorduğumuz Yedekleme nasıl yapılmalı?
Yedekleme ne zaman yapılmalı?
Yedekleme nereye yapılmalı?
Sorularına cevap vermiş olduk.
Burada kritik nokta bu aldığımız yedeği,
sunucu üzerinde değil harici bir yere veya buluta yedeklemektir.

Paylaş

Kingston Yetkili Satıcı
Sandisk Yetkili Satıcı
Samsung Yetkili Satıcı
WesternDigital Yetkili Satıcı