SQL Server Veritabanı Snapshot Kavramı

Merhaba Arkadaşlar,

Bu Yazımda sizlere SQL Server 2008  de Database Snapshot işlemini anlatacağım. Snapshot alma işlemi SQL Server 2005 le beraber gelen bir özelliktir ve daha sonra gelen 2008 ve 2012 de de devam eden bir özelliktir. Database Snapshot;  En basit tanımıyla Veritabanının Herhangi bir anında alınan Salt okunur bir kopyası bir Fotoğrafı bir görüntüsüdür diyebiliriz.

Snapshot işlemi yapıldığı zaman SQL Server hedef seçilen Veritabanının o anki görüntüsünü alır fakat fiziksel olarak Diskte Snapshot ı alınan verinin o anki hali bulunmaz. Snapshot alınırken o an için veritabanında commit lenmemiş Transactionlar varsa bunlar Rollback yapılır. Snapshot ı alınan veritabanında yapılan değişiklikler Snapshot için ayrılan Sparse File a yazılır. Böylece Client eğer Snapshot dan bir Select çektiği zaman ilgili data değişmişse eğer SQL Server değişmiş datayı Sparse file dan okurken, değişikliğe uğramamış bir datayı orijinal veritabanından okuyacaktır. Bu senaryoyu özetleyen en güzel portre MSDN in yayınladığı aşağıdaki resimdir.

Yukarıdaki Resimde 1.durumda Kaynak Veritabanının 10 Page inden 3 ü Update ediliyor. Bu Update edilen Page ler yine 1.durumda görüldüğü gibi Sparse File a yazılıyor.  2.Durumda Kaynak veritabanından 10 page den 7 si update ediliyor ve bu 7 Page de sparse file a yazılıyor.  Snapshot için bir Rapor yada Sorgu çekildiği zaman Eski Page ler için SQL Server Source Database i okurken update e uğrayan page leri SQL Server Sparse file dan okur.

Snapshot ın temel amacı veritabanının herhangi bir anında yedeğini almak  ve varsa raporlamaları Snapshot üzerinden yaparak belirli bir aralık için Stabil Rapor oluşturmaktır Ana veritabanında bir Admin veya küçük hatalar meydana gelirse Snapshot dan eski haline dönülür. Ancak şu çok önemlidir ki Snapshot Ana veritabanına bire bir bağlıdır ana veritabanı Silinirse yada göçerse Snapshot dan ana veritabanına dönülemez. O yüzden Snapshot işlemi tam olarak bir Backup Stratejisi denemez.

SQL Server Snapshot İşleminin Avantajları

  1. Raporlama için Avantajlı bir yöntemdir. Anlık gerekmeyen ve sadece belirli zamanlar için Raporlama yapan kişiler e çok gerekli ve mükemmel bir özelliktir. Çünkü Raporlama yapacağı zaman bu özellik sayesinde Stabil data okunacaktır. Buda raporlama için çok önemlidir.
  2. Yine Rapor oluşturmak için Historical data bulundurmayı sağlar.
  3. Fiziksel kopya oluşturmadığı için Disk alanı bakımından normal kopyalama yerine kullanılabilir. Snapshot dosyasında sadece değişmiş veriler saklanır orijinal veriler Source database den okunur.
  4. Kaynak veritabanına Zarar vermemek koşuluyla normal Backup-Restore yapma işlemine göre çok hızlı backup-restore yapılır. Ancak Kaynak veritabanına bir zarar gelirse Snapshot işlemi restore yapılamaz duruma gelir.
  5. Administrative hatalarına karşı etkilidir. Yanlış çalıştırılan bir Update ve Insert scriptinden yada drop edilen bir tablo gibi bir hatadan hemen hızlıca Snapshot restore sayesinde dönülebilir.
  6. Kullanıcılara hazır test database sunar. Kullanıcı istediği kadar hata yapsın bundan geri dönmek çok kolay olacaktır.

SQL Server Snapshot İşleminin Dezavantajları

  1. Performans gerektiren Veritabanları için ekstra yüktür. Veritabanında değişen her page i Snapshot a da kopyaladığı için Veritabanına ve Disk e ekstra bir yük oluşturur.
  2. Snapshot veritabanı, Ana veritabanına bağlı olduğu için Ana veritabanı göçerse  yada Ana Veritabanı Offline modda olduğunda Snapshot da erişilmez.
  3. Snapshot işlemi Effective bir Backup-Restore süreci olarak kullanılamaz.
  4. Snapshot veritabanı Sadece Read-Only dir. Herhangi bir data değişmez değişmesi istendiğinde tekrar Snapshot alınır.
  5. Snapshot ile Source Database aynı instance üzerinde olmak zorundadır.
  6. Sürekli çok fazla Transaction barındıran Veritabanları için kötü bir yöntemdir önerilmez.
  7. Snapshot işlemi Full Text İndexing i desteklememektedir.
  8. Snapshot işlemi Sadece SQL Server ın Enterprise Versiyonlarında bulunmaktadır. Diğer SQL Server Versiyonlarında yoktur bu özellik.
  9. Model,Master,tempdb gibi Sistem veritabanlarının Snapshot ı alınmaz.
  10. Database Snapshot işlemi Sadece NTFS dosya sistemini desteklemektedir, FAT32 Dosya sistemine sahip Snapshot Sparse file oluşturulamaz.

SQL Server da Database Snapshot işleminin en efektif ve en çok kullanıldığı yeri özetleyen resim aşağıdaki gibidir.

Resimden de anlaşıldığı üzere Snapshot işlemi Mirroring yapılan Production sistemlerde Mirror Sunucu üzerinde ki veritabanının Snapshot ı alınarak Mirror Sunucu üzerinde ki Snapshot database de sadece Raporlama ortamı sağlanır.

Böylece Bir SQL Server yazımın daha sonuna gelmiş bulunmaktayım. Bir sonraki yazıda görüşmek dileğiyle Esen Kalın….

 

Oracle Exadata SQL Server Goldengate Weblogic EBS ve Linux konusunda aşağıdaki konularda 7×24 Uzman Danışmanlara yada Eğitimlere mi
İhtiyacınız var mehmet.deveci@gridgroup.com.tr adresine mail atarak Bizimle iletişime geçebilirsiniz.

– Oracle Veritabanı Danışmanlığı
– Oracle Veritabanı Bakım ve Destek
– Exadata Danışmanlığı
– Exadata Bakım ve Destek
– SQL Server Veritabanı Danışmanlığı
– SQL Server Veritabanı Bakım ve Destek
– Goldengate Danışmanlığı
– Goldengate Bakım ve Destek
– Linux Danışmanlığı
– Linux Bakım ve Destek
– Oracle EBS Danışmanlığı
– Oracle EBS Bakım ve Destek
– Weblogic Danışmanlığı
– Weblogic Bakım ve Destek
– Oracle Veritabanı Eğitimleri
– Oracle VM Server Danışmanlığı
– Oracle VM Server Bakım ve Destek
– Oracle EPPM Danışmanlığı
– Oracle EPPM Bakım ve Destek
– Oracle Primavera Danışmanlığı
– Oracle Primavera Bakım ve Destek
– Oracle Eğitimleri
– SQL Server Eğitimleri
– Goldengate Eğitimleri
– Exadata Eğitimleri
– Linux Eğitimleri
– Oracle EBS Eğitimleri
– Oracle VM Server Eğitimleri
– Weblogic Eğitimleri
– Oracle EPPM Eğitimleri
– Oracle Primavera Eğitimleri

4 thoughts on “SQL Server Veritabanı Snapshot Kavramı

  • September 19, 2012 at 4:49 pm
    Permalink

    15:57de yazmıssın 🙂 Bizde hiç vakit kalmıyor yazı yazmayı bırak 2 tane makale bıle okuyamıyoruz 🙂 İş kebapmış hemşo ….

    Reply
    • September 20, 2012 at 9:21 am
      Permalink

      Kanka daha önceden hazırlıyorum ya.. İş zamanı makale bazen yazıyorum oda gerçekten çok boş oldumsa…

      Reply
  • September 21, 2012 at 10:32 am
    Permalink

    İyi bakalım bizde ebys 2 haftadır genel müdürlükte aktif olarak kullanılmakta. Çıkan hatalarla boğuşmaktayım 🙂

    Reply
  • September 21, 2012 at 10:33 am
    Permalink

    bizde 2 haftadır genel müdürlük olarak ebys kullanımına başladık çıkan hataları bulup düzeltme işlemlerini yapıyorum.

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *