Veritabanları, kurumların en kritik dijital varlıklarından biridir. Müşteri bilgilerinden finansal kayıtlara, üretim verilerinden satış geçmişine kadar işletmenin can damarı olan tüm bilgiler veritabanlarında saklanır. Donanım arızası, yazılım hatası, siber saldırı veya basit bir kullanıcı hatası — bu verilerin kaybı, telafi edilemez sonuçlar doğurabilir.
İşte bu yüzden düzenli ve doğru yapılandırılmış bir SQL yedekleme stratejisi, her sistem yöneticisinin ve veritabanı yöneticisinin (DBA) öncelikli sorumluluklarındandır. Bu rehberde, Microsoft SQL Server’da veritabanı yedeklemenin tüm yönlerini ele alacağız: yedekleme türleri, SQL Server Management Studio (SSMS) ile arayüz üzerinden yedekleme, T-SQL komutlarıyla otomatik yedekleme ve en iyi uygulamalar.
SQL Server Yedeklemenin Önemi
SQL Server yedekleme ve geri yükleme bileşeni, veritabanlarınızda depolanan kritik verileri korumak için sağlanan en temel mekanizmadır. Etkili bir yedekleme stratejisi şu üç soruya net cevap verebilmelidir:
Ne kadar veri kaybını göze alabilirsiniz? (RPO — Recovery Point Objective)
Bir felaket durumunda sistemleri ne kadar sürede ayağa kaldırmanız gerekir? (RTO — Recovery Time Objective)
Yedekleri nerede saklayacaksınız ve ne kadar süreyle tutacaksınız? (Saklama politikası)
Bu sorular yedekleme stratejinizi şekillendirir. Şimdi SQL Server’ın sunduğu yedekleme türlerine bakalım.
SQL Server Yedekleme Türleri
SQL Server’da üç temel yedekleme türü bulunur. Doğru strateji, genellikle bu üçünün bir kombinasyonudur.
Full Backup (Tam Yedekleme)
Veritabanının tüm verisinin baştan sona kopyasıdır. Her yedekleme stratejisinin temelidir; diğer yedekleme türleri Full Backup üzerine inşa edilir. Avantajı: Tek başına tüm veritabanını geri yüklemeye yeter. Dezavantajı: Büyük veritabanlarında ciddi zaman ve disk alanı tüketir.
Differential Backup (Fark Yedekleme)
Son Full Backup’tan bu yana değişen verilerin yedeğidir. Full Backup’a göre çok daha hızlı çalışır ve daha az yer kaplar. Geri yükleme sırasında önce Full Backup, ardından son Differential Backup uygulanır.
Transaction Log Backup (İşlem Günlüğü Yedeği)
Veritabanındaki tüm işlem hareketlerinin (insert, update, delete) yedeğidir. Bu yedekleme türü sayesinde belirli bir noktaya geri dönüş (point-in-time recovery) mümkün olur. Yani veritabanını dünkü 14:37’deki haline geri getirebilirsiniz. Yalnızca Full veya Bulk-Logged kurtarma modeli (Recovery Model) ile çalışan veritabanlarında alınabilir.
Önemli not: Transaction Log Backup almak için veritabanının kurtarma modelinin Simple olmaması gerekir. Veritabanı özelliklerinden Recovery Model’i kontrol etmelisiniz.
Yedeklemeye Başlamadan Önce: Recovery Model Kontrolü
Veritabanınızın kurtarma modeli, hangi yedekleme türlerini alabileceğinizi belirler. Üç seçenek vardır:
Simple: Sadece Full ve Differential yedek alınabilir, Transaction Log yedeği alınamaz. Veri kaybı toleransı yüksek olan test ve geliştirme ortamları için uygundur.
Full: Tüm yedekleme türleri desteklenir ve point-in-time recovery mümkündür. Üretim ortamları için önerilir.
Bulk-Logged: Full’e benzer ancak toplu işlemler (bulk insert vb.) için optimize edilmiştir.
Recovery Model’i SSMS üzerinden değiştirmek için veritabanına sağ tıklayıp Properties → Options sekmesine girmeniz gerekir.
Veritabanı özelliklerinden Recovery Model değiştirilebilir
SSMS ile Adım Adım Veritabanı Yedekleme
SQL Server Management Studio (SSMS), Microsoft’un sunduğu ücretsiz grafik arayüzlü yönetim aracıdır. Yedekleme işleminin en kolay yoludur ve özellikle manuel yedekler için idealdir.
Adım 1: SQL Server’a Bağlanın
SSMS’i açın ve yedeklemek istediğiniz SQL Server örneğine bağlanın. Bağlantı bilgilerinizi (server adı, kimlik doğrulama türü, kullanıcı/şifre) girin.
SSMS açıldığında karşılaşılan bağlantı ekranı
Adım 2: Veritabanını Seçin ve Yedekleme Menüsünü Açın
Object Explorer’da Databases klasörünü genişletin. Yedeklemek istediğiniz veritabanına sağ tıklayın, açılan menüden Tasks (Görevler) → Back Up… (Yedekle) seçeneğini tıklayın.
Veritabanına sağ tıklayıp Tasks → Back Up… yoluyla yedekleme penceresi açılır
Adım 3: Yedekleme Ayarlarını Yapılandırın
Açılan Back Up Database penceresinde:
Database: Yedeklenecek veritabanı otomatik seçilir.
Backup type: Full, Differential veya Transaction Log seçimini yapın.
Backup component: Database (tüm veritabanı) veya Files and filegroups seçeneğini belirleyin.
Destination: Yedeğin kaydedileceği konumu (disk veya tape) belirtin. Varsayılan olarak yedek, SQL Server’ın kurulu olduğu dizin altındaki Backup klasörüne kaydedilir. Farklı bir konum için Add butonuyla yeni hedef ekleyebilirsiniz.
Back Up Database penceresinde ana yedekleme ayarları yapılır
Adım 4: Gelişmiş Seçenekleri Belirleyin (İsteğe Bağlı)
Sol menüden Media Options ve Backup Options sekmelerine girerek gelişmiş ayarları yapabilirsiniz:
Overwrite existing media set: Mevcut yedek dosyasının üzerine yazılıp yazılmayacağını belirler.
Verify backup when finished: Yedekleme tamamlandıktan sonra doğrulama yapılmasını sağlar.
Set backup compression: Yedeğin sıkıştırılması (alan tasarrufu için önerilir).
Encryption: Yedeğin şifrelenmesi (hassas veriler için kritik).
Media Options sekmesinde overwrite ve verify ayarları yapılırBackup Options sekmesinde sıkıştırma ve şifreleme yapılandırılır
Adım 5: Yedeklemeyi Başlatın
Tüm ayarlar tamamlandıktan sonra OK butonuna tıklayın. Yedekleme süreci başlayacak ve veritabanı boyutuna bağlı olarak birkaç saniyeden birkaç saate kadar sürebilir. İşlem başarıyla tamamlandığında bir onay mesajı görüntülenir.
İşlem tamamlandığında SSMS başarı mesajı görüntüler
T-SQL ile Yedekleme Komutları
Otomatik ve script tabanlı yedekleme için T-SQL komutları en güçlü yöntemdir. SSMS’in arayüzü yerine doğrudan komut kullanmak hem hızlıdır hem de zamanlanmış görevler için idealdir.
Full Backup
BACKUP DATABASE NarbulutTest
TO DISK = N'C:\SQLBackups\NarbulutTest_Full.bak'
WITH
FORMAT,
INIT,
NAME = N'NarbulutTest-Full Database Backup',
COMPRESSION,
STATS = 10;
GO
Differential Backup
BACKUP DATABASE NarbulutTest
TO DISK = N'C:\SQLBackups\NarbulutTest_Diff.bak'
WITH
DIFFERENTIAL,
INIT,
NAME = N'NarbulutTest-Differential Backup',
COMPRESSION,
STATS = 10;
GO
Transaction Log Backup
BACKUP LOG NarbulutTest
TO DISK = N'C:\SQLBackups\NarbulutTest_Log.trn'
WITH
INIT,
NAME = N'NarbulutTest-Transaction Log Backup',
COMPRESSION,
STATS = 10;
GO
Alınan yedeğin bütünlüğünü kontrol etmek için RESTORE VERIFYONLY komutunu kullanabilirsiniz:
RESTORE VERIFYONLY
FROM DISK = N'C:\SQLBackups\NarbulutTest_Full.bak';
GO
Komutlardaki temel parametreleri kısaca açıklayalım:
FORMAT — Yeni bir medya seti oluşturur (mevcut dosyanın üzerine yazar).
INIT — Yedek setini başlatır.
COMPRESSION — Yedeği sıkıştırarak disk alanı tasarrufu sağlar.
STATS = 10 — Her %10’luk ilerlemede ekrana bilgi yazar.
NAME — Yedek setine açıklayıcı bir ad verir.
Yedeklemeyi Otomatikleştirme
Manuel yedekleme küçük ortamlar için yeterli olabilir, ancak üretim ortamlarında mutlaka otomasyon kullanılmalıdır. SQL Server bunun için iki temel yöntem sunar:
SQL Server Agent
Standard, Developer ve Enterprise sürümlerinde gelen bu bileşen ile zamanlanmış yedekleme job’ları oluşturulabilir. Object Explorer’da SQL Server Agent → Jobs üzerine sağ tıklayıp New Job seçeneğiyle yeni bir görev tanımlanır. Job’a T-SQL komutunuzu içeren bir Step ve bir Schedule (örneğin her gün gece 02:00) atanır.
Maintenance Plan (Bakım Planı)
Kod yazmadan görsel sihirbazla yedekleme planı oluşturmak isteyenler için SSMS’in Management → Maintenance Plans altında sunduğu Maintenance Plan Wizard’dır. Bu sihirbazla birden fazla veritabanı için:
Full + Differential + Transaction Log yedekleme planı
Eski yedeklerin otomatik silinmesi (Cleanup Task)
Index ve istatistik bakımı
E-posta bildirimi
…tek planda tanımlanabilir.
SQL Server Express için önemli not: Express sürümünde SQL Server Agent bileşeni bulunmaz. Bu nedenle Express kullanıcıları otomasyon için sqlcmd yardımcı programı ile bir .bat dosyası hazırlayıp Windows Görev Zamanlayıcı üzerinden çalıştırmalı veya üçüncü parti yedekleme çözümleri kullanmalıdır.
SQL Server Yedekleme En İyi Uygulamaları
Yıllar içinde sahada karşılaştığımız sorunlardan damıtılmış birkaç altın kural:
3-2-1 Kuralını Uygulayın
Önemli verilerinizden 3 kopya, 2 farklı medyada ve 1 tanesi farklı lokasyonda (offsite) olmalıdır. Bu kural, ransomware saldırılarına karşı en güçlü savunmadır.
Yedeği Aynı Diske Almayın
Veritabanı dosyalarının (.mdf, .ldf) bulunduğu diske yedek almak en sık yapılan hatalardan biridir. Disk arızalanırsa hem veriniz hem yedeğiniz kaybolur.
Geri Yüklemeyi Test Edin
Test edilmemiş yedek, yedek değildir. Belirli aralıklarla yedekleri farklı bir sunucuya geri yükleyerek doğrulayın. SQL Server’da RESTORE VERIFYONLY komutuyla yedek bütünlüğünü kontrol edebilirsiniz.
Sürüm Uyumluluğuna Dikkat Edin
Yeni sürümde alınan yedek, eski sürüm SQL Server’a geri yüklenemez. Bu sınırlama, sürüm geçişlerinde göz ardı edilmemesi gereken kritik bir konudur.
Yedek Saklama Politikası Belirleyin
“Sonsuza kadar tüm yedekleri saklamak” hem maliyetli hem de gereksizdir. Tipik bir politika: günlük yedekler 7–14 gün, haftalık yedekler 4–8 hafta, aylık yedekler 12 ay, yıllık yedekler yasal yükümlülüklere göre 5–7 yıl.
Yedekleri Şifreleyin
Hassas veriler içeren yedekler şifrelenmelidir. Aksi halde fiziksel olarak yedek diskine erişen biri tüm verinize ulaşabilir.
Bulut Tabanlı Yedekleme: Modern Yaklaşım
Geleneksel disk veya teyp yedekleme hâlâ kullanılıyor olsa da, modern işletmelerin büyük bölümü bulut tabanlı yedekleme çözümlerine geçiyor. Bunun temel nedenleri:
Offsite saklama otomatik sağlanır (3-2-1 kuralının “1”i karşılanır)
Donanım yatırımı gerektirmez
Ölçeklenebilirdir — veri arttıkça depolama kolayca genişletilir
Coğrafi yedeklilik ile felaket kurtarma desteklenir
Şifreleme ile erişim kontrolü profesyonel düzeyde sağlanır
Narbulut olarak sunduğumuz bulut yedekleme çözümü, SQL Server veritabanlarınızı doğrudan buluta yedeklemenize, eski sürümleri saklamanıza ve felaket durumunda hızlıca geri yüklemenize olanak tanır. Yerel disk yedekleme ile bulut yedekleme birlikte kullanıldığında tam kapsamlı bir veri koruma stratejisi elde edilir.
Narbulut ile SQL Server Yedekleme
Bu rehberde anlattığımız tüm yöntemler — SSMS ile manuel yedekleme, T-SQL komutları ve SQL Server Agent ile otomasyon — doğru uygulandığında etkili çözümlerdir. Ancak kurumsal ortamlarda yedekleme sürecini daha da güvenli, otomatik ve yönetilebilir hale getirmek için profesyonel bir bulut yedekleme çözümü büyük fark yaratır.
Narbulut Backup Now, SQL Server veritabanlarınızı doğrudan buluta yedeklemenizi sağlayan kurumsal düzeyde bir veri koruma çözümüdür:
Otomatik zamanlama: Full, Differential ve Transaction Log yedeklemelerini belirlediğiniz aralıklarla otomatik olarak alır.
Merkezi yönetim: Tüm SQL Server örneklerinizi tek bir panelden izleyip yönetirsiniz.
Şifreleme: Yedekleriniz uçtan uca şifrelenerek aktarılır ve depolanır.
Hızlı geri yükleme: Felaket durumunda veritabanlarınızı hızlıca geri yükleyerek iş sürekliliğinizi korursunuz.
Unutmayın: En iyi yedek, test edilmiş ve geri yüklenebilen yedektir. Yedekleme stratejinizi sadece kurmakla kalmayın, düzenli olarak test edin ve gerektiğinde güncelleyin.
SQL Yedekleme Süreçlerinizi Profesyonel Düzeye Taşıyın
SQL Server yedekleme süreçlerinizde profesyonel bir bulut yedekleme çözümüne ihtiyaç duyuyorsanız, Narbulut ekibimizle iletişime geçebilirsiniz.