SQL Server Veritabanı Yedeği Nasıl Alınır? BACKUP Rehberi

SQL Server veritabanı yedeği nasıl alınır? SSMS ve T-SQL BACKUP DATABASE ile tam yedek almayı, doğrulamayı ve güvenli saklamayı adım adım öğrenin.

Önemli not: Yedek dosyasının oluşması tek başına geri yüklenebilir olduğunu kanıtlamaz; üretim dışı bir ortamda düzenli geri yükleme testi yapın.

SQL Server veritabanı yedeği nasıl alınır sorusunun kısa yanıtı şudur: SQL Server Management Studio (SSMS) arayüzünden veya T-SQL ile BACKUP DATABASE komutunu çalıştırarak tam yedek alırsınız. Komut, veritabanının o anki durumunu bir .bak dosyasına yazar. Ancak dosyanın oluşması tek başına yeterli değildir; yedeği doğrulamalı ve üretim dışı bir ortamda geri yükleme testi yapmalısınız.

Bu rehber yalnızca Microsoft SQL Server ve T-SQL kapsamındadır. Adımlar resmi Microsoft Learn belgelerindeki BACKUP ve RESTORE ifadeleriyle uyumludur. Sürüm ve menü adları kurulumunuza göre küçük farklılıklar gösterebilir; kendi ortamınızda kontrol edin.

Tam yedek ve işlem günlüğü yedeği farkı

Tam yedek, veritabanının tamamını tek bir yedek kümesinde kopyalar. Geri yükleme için başlangıç noktasıdır. İşlem günlüğü yedeği ise yalnızca son yedekten bu yana oluşan değişiklikleri saklar ve veritabanının kurtarma modeli FULL veya BULK_LOGGED olmalıdır.

Basit kurtarma modelinde işlem günlüğü yedeği alamazsınız. Bu modelde günlük yedek yerine daha sık tam veya fark yedeği planlayın. Kurtarma modelini değiştirmek yedekleme stratejinizi doğrudan etkiler; üretimde bu değişikliği bilinçli yapın.

  • Tam yedek: Veritabanının tamamını içerir, geri yüklemenin temelidir.
  • Fark yedeği: Son tam yedekten sonraki değişiklikleri alır, daha küçüktür.
  • İşlem günlüğü yedeği: FULL veya BULK_LOGGED modelde noktasal kurtarma sağlar.
  • Basit kurtarma modeli: Günlük yedek alınamaz, tam ve fark yedeğine odaklanın.

Ön koşullar ve hazırlık kontrolü

Yedek almadan önce hedef klasörün SQL Server hizmet hesabı tarafından yazılabilir olduğundan emin olun. Yedek dosyasını veritabanı veri dosyalarıyla aynı diske yazmayın. Disk doluluğunu ve yedek boyutunu önceden kontrol edin.

  • SQL Server hizmetinin çalıştığını ve veritabanına bağlanabildiğinizi doğrulayın.
  • Yedek klasörünün hizmet hesabı için yazma izni olduğunu kontrol edin.
  • Hedef diskte yeterli boş alan bulunduğundan emin olun.
  • Yedek dosyası için benzersiz bir ad ve tarih-saat biçimi belirleyin.
  • Üretim verisine karşı işlem yapmadan önce test ortamında deneyin.

SSMS üzerinden yedek alma

SSMS, yedek almayı görsel adımlarla kolaylaştırır. Aşağıdaki akış, tipik bir tam yedek alma sürecini gösterir. Menü adları SSMS sürümüne göre değişebilir; kendi ekranınızda doğrulayın.

  1. SSMS ile ilgili SQL Server örneğine bağlanın.
  2. Object Explorer'da Databases düğümünü genişletin.
  3. Yedek almak istediğiniz veritabanına sağ tıklayın.
  4. Tasks menüsünden Back Up seçeneğini açın.
  5. Backup type alanında Full seçeneğini bırakın.
  6. Destination alanında yedek dosyasının yolunu ve adını belirtin.
  7. Options sayfasında doğrulama ve sıkıştırma seçeneklerini gözden geçirin.
  8. OK düğmesine basarak işlemi başlatın ve sonuç iletisini kontrol edin.

İşlem tamamlandığında SSMS bir başarı iletisi gösterir. Bu ileti yalnızca yedek dosyasının yazıldığını belirtir. Geri yüklenebilirliği kanıtlamaz; doğrulama adımını atlamayın.

T-SQL BACKUP DATABASE örneği

Aşağıdaki örnek, örnek bir veritabanı için tam yedek alır. Veritabanı adını ve dosya yolunu kendi ortamınıza göre değiştirin. BACKUP ifadesini transaction içine almayın; bu ifade kendi başına çalışır.

Tam yedek alma

BACKUP DATABASE [OrnekVeritabani]
TO DISK = N'D:\Yedekler\OrnekVeritabani_Tam_20250101_0200.bak'
WITH INIT,
     NAME = N'OrnekVeritabani Tam Yedek',
     DESCRIPTION = N'Planli tam yedek',
     CHECKSUM,
     STATS = 10;

WITH INIT, mevcut yedek dosyasının üzerine yazar. Aynı dosyaya birden fazla yedek eklemek istiyorsanız INIT kullanmayın. CHECKSUM, yedek içeriğinin bütünlük doğrulaması için bilgi ekler. STATS = 10 ilerlemeyi yüzde 10 aralıklarla raporlar.

Dosya yolu ve erişim izinleri

SQL Server, yedek dosyasını kendi hizmet hesabıyla yazar. Bu nedenle yolu sizin kullanıcı hesabınızın değil, hizmet hesabının erişebildiği bir konum olarak düşünün. Ağ paylaşımı kullanacaksanız hizmet hesabına uygun izinleri verin.

Varsayılan yedek klasörünü sorgulama

SELECT SERVERPROPERTY('InstanceDefaultBackupPath') AS VarsayilanYedekKlasoru;

Yol yazımında tek tırnak içinde çift ters bölü kullanın veya N önekiyle Unicode dize yazın. Dosya adında tarih ve saat bilgisi bulundurun. Böylece yedekler birbirinin üzerine yanlışlıkla yazılmaz.

Yedek boyutu, sıkıştırma ve kopya

Yedek boyutu veritabanı boyutundan farklı olabilir. Sıkıştırma, yedek dosyasını küçültür ancak işlemci kullanımını artırır. Sürümünüzün sıkıştırmayı desteklediğini resmi belgelerden doğrulayın.

Sıkıştırmalı tam yedek

BACKUP DATABASE [OrnekVeritabani]
TO DISK = N'D:\Yedekler\OrnekVeritabani_Tam_Sikistirmali.bak'
WITH INIT,
     COMPRESSION,
     CHECKSUM,
     STATS = 10;

Yedeği aldıktan sonra ayrı bir diske veya uzak konuma kopyalayın. Tek kopya, disk arızasında hem veriyi hem yedeği kaybettirir. Kopyalama işlemini SQL Server dışında güvenilir bir araçla yapın ve kopyanın bütünlüğünü kontrol edin.

RESTORE VERIFYONLY sınırları

RESTORE VERIFYONLY, yedek kümesinin okunabilir ve yapısal olarak tutarlı olduğunu kontrol eder. Veritabanını geri yüklemez. Ayrıca yedeğin uygulamanızla uyumlu olduğunu veya tüm kurtarma zincirinin tamamlandığını kanıtlamaz.

Yedeği doğrulama

RESTORE VERIFYONLY
FROM DISK = N'D:\Yedekler\OrnekVeritabani_Tam_20250101_0200.bak'
WITH CHECKSUM;

Doğrulama başarılı olsa bile gerçek geri yükleme testi yapın. Özellikle işlem günlüğü yedekleriyle çalışıyorsanız zincirin tamamını sırayla test edin. Doğrulama komutunu transaction içine almayın.

Ayrı ortama deneme geri yüklemesi

Yedeğin işe yaradığını görmenin tek güvenilir yolu, onu üretim dışı bir ortamda geri yüklemektir. Aşağıdaki örnek, yedeği farklı bir veritabanı adıyla geri yükler. Dosya yollarını kendi test ortamınıza göre uyarlayın.

Test ortamına geri yükleme

RESTORE DATABASE [OrnekVeritabani_Test]
FROM DISK = N'D:\Yedekler\OrnekVeritabani_Tam_20250101_0200.bak'
WITH MOVE N'OrnekVeritabani' TO N'D:\TestVeri\OrnekVeritabani_Test.mdf',
     MOVE N'OrnekVeritabani_log' TO N'D:\TestVeri\OrnekVeritabani_Test_log.ldf',
     RECOVERY,
     STATS = 10;

MOVE yan tümcesi, mantıksal dosya adlarını yeni fiziksel yollara eşler. Mantıksal adları bilmiyorsanız yedek içeriğini RESTORE FILELISTONLY ile listeleyin. Geri yükleme sonrası temel tablo sayımlarıyla veriyi kontrol edin.

Yedek saklama ve erişim güvenliği

Yedek dosyaları veritabanı kadar hassastır. Erişimi yalnızca yetkili hesaplarla sınırlayın. Yedekleri şifreleme ve erişim denetimiyle koruyun. Saklama süresini ve silme kurallarını önceden belirleyin.

  • Yedek klasörüne yalnızca yetkili hesapların erişmesini sağlayın.
  • Yedekleri düzenli olarak ayrı bir konuma kopyalayın.
  • Saklama süresini ve eski yedeklerin silinme kuralını yazılı hale getirin.
  • Yedek ve geri yükleme testlerini düzenli aralıklarla tekrarlayın.
  • Üretim verisine karşı işlem yapmadan önce test ortamında doğrulayın.

Sık yapılan hatalar ve çözümleri

Yedek alma sürecinde en sık karşılaşılan sorunlar izin, yol ve disk alanı kaynaklıdır. Aşağıdaki çözümler tipik durumları kapsar; hata iletisinin tam metnini her zaman kaydedin.

  • Erişim reddedildi hatası: Hedef klasörde SQL Server hizmet hesabına yazma izni verin.
  • Dosya yolu bulunamadı: Klasörün var olduğunu ve yazımın doğru olduğunu kontrol edin.
  • Disk alanı yetersiz: Boş alanı artırın veya sıkıştırmalı yedek kullanın.
  • Aynı dosyaya yanlışlıkla yazma: Dosya adına tarih-saat ekleyin ve INIT kullanımını bilinçli yapın.
  • Doğrulama başarısız: Yedek dosyasını yeniden oluşturun ve disk bütünlüğünü kontrol edin.

Beklenen sonuç ve kontrol noktaları

Başarılı bir tam yedek sonrası belirtilen yolda .bak dosyası oluşur. SSMS veya komut çıktısı işlemin tamamlandığını gösterir. RESTORE VERIFYONLY hatasız döner. Test ortamındaki geri yükleme de beklenen tablo ve kayıtları verir.

  • Yedek dosyası belirtilen klasörde ve beklenen boyutta mı?
  • Doğrulama komutu hatasız tamamlandı mı?
  • Test geri yüklemesi başarıyla tamamlandı mı?
  • Yedek ayrı bir konuma kopyalandı mı?
  • Yedekleme kaydı ve tarih bilgisi not edildi mi?

Geri alma ve kurtarma yaklaşımı

Yedek alma işlemi veriyi değiştirmez; bu nedenle geri alma genellikle gerekmez. Ancak yanlış dosyaya yazma veya yanlış veritabanı seçimi gibi durumlarda dikkatli olun. Yedek dosyasını silmeden önce doğrulama ve test geri yüklemesinin tamamlandığından emin olun.

Bir UPDATE veya DELETE denemesi yapacaksanız önce etkilenecek satırları SELECT ile gösterin. İşlemi BEGIN TRANSACTION içinde çalıştırın, sonucu doğrulayın ve ardından COMMIT veya ROLLBACK ile karar verin. Aşağıdaki örnek yalnızca desen gösterir; üretimde önce SELECT ile kontrol edin.

Güvenli değişiklik deseni

BEGIN TRANSACTION;

SELECT MusteriID, Ad, Durum
FROM dbo.Musteriler
WHERE Durum = N'Pasif';

UPDATE dbo.Musteriler
SET Durum = N'Arsiv'
WHERE Durum = N'Pasif';

-- Sonucu kontrol edin, gerekirse ROLLBACK yapın.
-- COMMIT TRANSACTION;
-- ROLLBACK TRANSACTION;

Yedek dosyasını geri yüklerken hedef veritabanı adını ve dosya yollarını dikkatle seçin. Yanlış hedef, mevcut bir veritabanının üzerine yazabilir. Geri yükleme öncesi mevcut veritabanının yedeğini alın.

Sık sorulan sorular

SQL Server veritabanı yedeği nasıl alınır?

SSMS'te veritabanına sağ tıklayıp Tasks > Back Up yolunu izleyin veya T-SQL ile BACKUP DATABASE komutunu çalıştırın. Tam yedek, veritabanının tamamını .bak dosyasına yazar.

Yedek dosyasının oluşması geri yüklenebilir olduğunu kanıtlar mı?

Hayır. Dosyanın oluşması yalnızca yazma işleminin tamamlandığını gösterir. RESTORE VERIFYONLY ile doğrulayın ve üretim dışı bir ortamda gerçek geri yükleme testi yapın.

BACKUP komutunu transaction içine almalı mıyım?

Hayır. BACKUP ve RESTORE ifadeleri kendi başına çalışır; transaction içine alınmaz. Bu ifadeleri normal komut olarak çalıştırın.

Basit kurtarma modelinde işlem günlüğü yedeği alabilir miyim?

Hayır. İşlem günlüğü yedeği için veritabanının kurtarma modeli FULL veya BULK_LOGGED olmalıdır. Basit modelde tam ve fark yedeklerine odaklanın.

Yedek dosyasını nereye kaydetmeliyim?

Veritabanı veri dosyalarından ayrı bir disk veya konum seçin. SQL Server hizmet hesabının yazma izni olduğundan emin olun ve yedeği ayrıca başka bir konuma kopyalayın.

Sıkıştırmalı yedek kullanmalı mıyım?

Sıkıştırma dosya boyutunu küçültür ancak işlemci kullanımını artırır. Sürümünüzün desteğini resmi belgelerden doğrulayın ve yedek boyutu ile performans dengesini kendi ortamınızda değerlendirin.

Resmî kaynaklar

Yazı gezinmesi

Mobil sürümden çık