# Database Snapshot ile Değişiklik Öncesi Güvenlik Noktası Oluşturmak

Database Snapshot, production'a geçmeden önce son bir güvenlik noktası oluşturmanın hızlı ve pratik yolu. Özellikle tam backup almanın uzun süreceği durumlarda kritik bir alternatif.

Database Snapshot Nedir? Database Snapshot, belirli bir anın veritabanı görüntüsüdür. Fiziksel olarak tüm veriyi kopyalamaz. Bunun yerine değişen sayfalar ayrı bir dosyada tutulur, değişmeyen sayfalar kaynak veritabanından okunur. Bu yapı snapshot oluşturmayı son derece hızlı kılar. Büyük bir veritabanının snapshot'ı saniyeler içinde oluşturulur.

Deployment Öncesi Snapshot Oluşturma sql-- Deployment öncesi snapshot oluştur CREATE DATABASE SatisDB\_Snapshot\_20240315 ON ( NAME = SatisDB, FILENAME = 'D:\\Snapshots\\SatisDB\_20240315\_1430.ss' ) AS SNAPSHOT OF SatisDB; Bu snapshot deployment başlamadan hemen önce alınır. Deployment başarısız olursa ya da beklenmedik bir sorun çıkarsa snapshot'tan geri dönülebilir.

Snapshot'tan Geri Dönme sql-- Snapshot'tan veritabanını geri yükle -- Önce tüm bağlantıları kes ALTER DATABASE SatisDB SET SINGLE\_USER WITH ROLLBACK IMMEDIATE;

\-- Snapshot'tan geri yükle RESTORE DATABASE SatisDB FROM DATABASE\_SNAPSHOT = 'SatisDB\_Snapshot\_20240315';

\-- Çok kullanıcılı moda geri al ALTER DATABASE SatisDB SET MULTI\_USER; Geri yükleme çok hızlı. Değişen sayfalar snapshot'tan okunarak geri yazılır.

Snapshot'un Sınırları Sadece tam geri dönüş: Snapshot ya tamamen kullanılır ya da kullanılmaz. Belirli tabloları geri almak için kullanılamaz. Kaynak veritabanına bağımlılık: Snapshot, kaynak veritabanı olmadan anlamsız. Kaynak veritabanı bozulursa snapshot da kullanılamaz. Depolama büyümesi: Kaynak veritabanında değişiklik oldukça snapshot dosyası büyür. Uzun süre açık bırakılan snapshot'lar disk alanı tüketir. Tek yönlü: Snapshot salt okunur. Üzerinde değişiklik yapılamaz.

Snapshot Ne Zaman Yeterli Değil? Snapshot deployment sonrası "anlık geri dönüş" için idealdir. Ama uzun vadeli backup yerine geçmez. Şu durumlarda tam backup gerekir:

Disaster recovery senaryoları Uzun vadeli veri arşivleme Farklı sunucuya taşıma Geçmiş bir tarihe noktasal geri dönüş

Değişiklik Yönetimiyle Entegrasyon Deployment planına snapshot adımını ekleyin:

Deployment penceresi başladı Snapshot alındı (snapshot adı, zamanı kayıt altına alındı) Deployment uygulandı Doğrulama yapıldı Sorun yoksa snapshot silindi Sorun varsa snapshot'tan geri dönüldü

Bu adım özellikle rollback script'i karmaşık olan ya da büyük veri değişikliği içeren deployment'lar için zorunlu olmalı.

Snapshot Maliyeti Snapshot oluşturmak neredeyse ücretsiz. Saniyeler sürer, anlık disk kullanımı minimal. "Snapshot almak zaman alır" gerekçesiyle bu adım atlanmamalı. Risk/fayda dengesi her zaman snapshot lehine.

Sonuç Database Snapshot, deployment sürecinin göz ardı edilen ama son derece değerli bir güvenlik mekanizması. Değişiklik yönetim planına eklenmesi hem geri dönüş süresini kısaltır hem de ekibin deployment sırasındaki güvenini artırır. Detaylı bilgi için: sqlchangeguard.com
