Skip to main content

Command Palette

Search for a command to run...

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

Published
2 min read
S

I’m a passionate software engineer specializing in SQL change management, database security, and DevOps automation. With over 17 years of experience in the banking sector, I focus on building tools and processes that make database deployments safer, more auditable, and automated.

As the creator of SQL Change Guard, I develop solutions that use risk scoring and AI-powered code analysis to detect dangerous SQL scripts before they reach production. I’m dedicated to helping teams minimize downtime and data loss through smarter change governance.

When I’m not coding, I enjoy sharing insights about secure development practices, WPF desktop applications, and integrating modern CI/CD pipelines.

Feel free to connect or reach out at info@sqlchangeguard.com

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

More from this blog

S

SQL Change Guard

81 posts