SQL Server Yedeklemenin Önemi
Bir işletmenin karşılaşabileceği en büyük felaket, muhasebe veya üretim veritabanının aniden bozulması, diskin arızalanması ya da bir fidye virüsü (Ransomware) saldırısıyla veritabanı dosyalarının (.mdf ve .ldf) şifrelenmesidir.
SQL Server çalışır durumdayken veritabanı dosyaları işletim sistemi seviyesinde kilitlidir. Dosyayı basitçe kopyalamaya çalışmak ya bozuk (corrupt) bir kopya üretir ya da Windows'un "Dosya başka bir işlem tarafından kullanılıyor" uyarısıyla engellenir. Bu nedenle profesyonel bir yedekleme stratejisi hayati önem taşır.
Yedekleme Türleri: Full, Differential ve Transaction Log
Microsoft SQL Server üç temel yedekleme türünü destekler. İdeal bir yedekleme stratejisi bu üçünün dengeli kombinasyonundan oluşur:
| Yedek Türü | Açıklama | Dosya Boyutu | Geri Yükleme Hızı |
|---|---|---|---|
| Full (Tam) Yedek | Veritabanındaki tüm tabloları, indeksleri ve veri sayfalarını eksiksiz kopyalar. Diğer yedeklerin temelidir. | Büyük (%100) | Çok Hızlı (Tek dosya) |
| Differential (Fark) Yedek | En son alınan Tam (Full) yedekten sonra değişen sayfaları kaydeder. | Orta (%10 - %30) | Hızlı (Full + Son Diff) |
| Transaction Log Yedeği | Veritabanında gerçekleşen tüm işlemleri (INSERT, UPDATE, DELETE) adım adım kaydeder. Dakikalık geri dönüş sağlar. | Çok Küçük (%1 - %5) | Sıralı işlem gerektirir |
Recovery Model Kontrolü (Simple vs Full)
Yedekleme planınızı yapmadan önce veritabanınızın Kurtarma Modunu (Recovery Model) bilmeniz gerekir:
- SIMPLE Model: İşlem günlüğü (transaction log) kayıtları checkpoint sonrasında otomatik temizlenir. Log yedeği alınamaz; sadece Full ve Differential yedek alınabilir. Küçük işletmeler ve raporlama veritabanları için uygundur.
- FULL Model: Veritabanındaki her hareket log dosyasında saklanır. Log yedeği alınana kadar log dosyası küçülmez. Saniye saniye geri dönüş (Point-in-Time Recovery) imkanı verir. Kurumsal ERP ve muhasebe sistemleri için zorunludur.
SSMS ile Adım Adım Veritabanı Yedekleme
Microsoft SQL Server Management Studio (SSMS) üzerinden manuel yedek almak için şu adımları izleyin:
- SSMS'i Başlatın: SQL Server örneğinize (Instance) Windows Authentication veya
sakullanıcısıyla bağlanın. - Veritabanını Seçin: Sol paneldeki Databases klasörünü genişletin. Yedeklemek istediğiniz veritabanına sağ tıklayın, Tasks > Back Up... seçeneğini tıklayın.
- Yedekleme Türünü Belirleyin: Açılan pencerede Backup type alanından Full seçin.
- Hedef Klasörü Ayarlayın: Destination bölümünde varsayılan yolu kontrol edin veya Add butonuna tıklayarak yedeğin kaydedileceği
.bakdosya yolunu belirleyin. - Gelişmiş Seçenekler (Media Options): Üzerine yazma riskine karşı Back up to a new media set and erase all existing backup sets seçeneğini işaretleyebilirsiniz.
- Yedeklemeyi Başlatın: OK butonuna tıklayın. Başarılı olduğunda "The backup of database completed successfully" mesajı görüntülenecektir.
T-SQL ile Yedekleme Komutları ve Betikler
Yedeklemeyi otomatikleştirmek veya bir betik üzerinden tetiklemek için T-SQL komutları kullanılır:
1. Standart Tam (Full) Yedek Komutu:
BACKUP DATABASE [Sirket_DB]
TO DISK = N'D:\SQL_Yedekler\Sirket_DB_Full.bak'
WITH NOFORMAT, NOINIT,
NAME = N'Sirket_DB-Full Backup',
SKIP, NOREWIND, NOUNLOAD, STATS = 10;
GO
2. Var Olan Yedek Dosyasını Sıfırlayarak (INIT) Almak:
BACKUP DATABASE [Sirket_DB]
TO DISK = N'D:\SQL_Yedekler\Sirket_DB_Gunluk.bak'
WITH INIT, COMPRESSION, STATS = 10;
GO
3. Zinciri Bozmayan Bağımsız Kopya (COPY_ONLY):
-- COPY_ONLY yedeği, mevcut diferansiyel ve log zincirini bozmadan bağımsız arşiv almak için kullanılır:
BACKUP DATABASE [Sirket_DB]
TO DISK = N'D:\SQL_Yedekler\Sirket_DB_OzelKopya.bak'
WITH COPY_ONLY, COMPRESSION, STATS = 10;
GO
Canlı Veritabanı ve Kilitlenme (VSS) Sorunu
Gündüz mesai saatlerinde yüzlerce kullanıcı SQL Server'a veri girerken veritabanı yedeği almak, disk G/Ç (I/O) yükünü tırmandırabilir veya tablolarda kilitlenmelere (deadlock) yol açabilir.
Modern yedekleme motorları bu sorunu çözmek için Windows'un VSS (Volume Shadow Copy Service) motorunu ve SQL Server VSS Writer bileşenini kullanır. VSS motoru, veritabanı işlemlerini milisaniyeler seviyesinde dondurur (Freeze), mikrosaniyelik bir anlık görüntü (Snapshot) çıkarır ve SQL motorunu anında çözer (Thaw). Böylece muhasebeciler çalışmaya devam ederken arka planda sıfır kilitlenmeyle yedek alınır.
MSSQL İçin 6 Altın Güvenlik Kuralı
MarsBulut ile Kilitsiz & Otomatik Bulut Yedekleme
Manuel yedeklemeler insan hatasına açıktır: Unutulabilir, harici disk takılmayabilir ya da sunucu dolduğunda sessizce kesilebilir.
MarsBulut Kurumsal BaaS çözümü MSSQL altyapınızı şu özelliklerle otomatik korur:
- Mars LiveVSS™ Entegrasyonu: Kullanıcılar çalışırken veritabanı kilitlenmeden sıcak gölge kopya alır.
- Mars ZeroVault™ Uçtan Uca Şifreleme: Veri sunucunuzdan çıkmadan istemci RAM seviyesinde AES-256 GCM ile mühürlenir.
- Akıllı Blok Seviyesi Fark (DeltaTrack™): 100 GB'lık veritabanınızda sadece değişen 200 MB diske aktarılır; kotanızı ve internetinizi tüketmez.
- WORM Değişmezlik Kilidi: Fidye virüsleri ve içeriden gelen kötü niyetli silme girişimleri buluttaki yedeklerinize dokunamaz.
- Windows Kimlik Doğrulaması Desteği: SQL şifresi girmeye gerek kalmadan Windows Service seviyesinde güvenle bağlanır.
SQL Veritabanlarınızı MarsBulut ile Otomatik Güvenceye Alın
Kurulumu 2 dakikada tamamlayın; MSSQL veritabanlarınızı kilitlenmesiz, şifreli ve fidye virüslerine karşı mühürlü olarak bulutta saklayın.