Makale Özeti

Bu yazımızda SQL Server 2005 üzerinde Yüksek Erişilebilirlik (High Availability) çözümlerini tek bakışta inceleyip, alternatif çözümlerin gerek performans gerekse işlevsellik olarak karşılaştırmasını yapacağız.

Makale




Tek Bakışta SQL Server 2005 Yüksek Erişilebilirlik (High Availability) Çözümleri

Bu yazımızda SQL Server 2005 üzerinde Yüksek Erişilebilirlik (High Availability) çözümlerini tek bakışta inceleyip, alternatif çözümlerin gerek performans gerekse işlevsellik olarak karşılaştırmasını yapacağız.

Öncelikle yüksek erişilebilirliğin neden önemli olduğunu tartışalım. Günümüz dünyasında sayısı milyonlara varan, üyelere anlık hizmetler sunan birçok kritik uygulamalar geliştiriyor ve kullanıyoruz. Birçok uygulama için birkaç dakikalığına bile erişilemez olmak milyonlarca liralık zararla ölçülebilir. Bu nedenle hassasiyeti yüksek sistemlerin yüksek erişilebilir olması ve oluşabilecek donanım veya yazılım sorunlarına ve hatta doğal afetlere karşı otomatik veya manuel (otomatik tabi ki tercih edilendir) devreye girme operasyonu ile kullanıcılara hiçbir şey hissettirmeden uygulamaya devam edilmesi gerekmektedir.

Bu doğrultuda SQL Server 2005 ile High Availability çözümlerini incelememiz doğru olur. Bazı çözümlerin önceki sürümlerde de olduğunu fakat geliştirildiğini, bazı çözümlerin ise yeni olduğunu söyleyelim.

1) Server Clustering
Bir veya daha fazla sunucunun hard diskleri paylaşıp, dışarıdan tek bir sunucu olarak göründüğü ve temelini işletim sisteminin cluster (küme) servisinden alan yapıdır. Her bir sunucuya düğüm (node) adı verilir ve aktif durumdaki sunucunun gelen taleplere cevap vermesi sağlanır. Eğer aktif düğüm fail olursa, yani sorunla karşılaşıp cevap veremez hale gelirse bir başka düğüm görevi devralır ve sistemin kesintiye uğraması engellenir. Birden fazla fiziksel sunucunun tek bir sanal sunucu gibi davrandığı bu sistemde hata durumunda aktif düğümlerden birinin otomatik devreye girmesine automatic failover (otomatik hata giderme) ve kurulan bu cluster yapısına da failover cluster (hata giderme kümeleme) yapısı denir. Bu işlemle yüksek erişilebilirlik sağlandığı halde disk hatasından (disc failure) koruma mekanizması sağlanmaz. Windows 2003 üzerinde Enterprise veya Datacenter Edition’lar kullanarak 2,4 veya 8’e kadar çıkan düğüm sayısı tercih edebilirsiniz.

Windows üzerinde küme (cluster) yapılandırması tamamlandıktan sonra, SQL Server 2005’i küme üzerinde kurarken sanal sunucu (Virtual server) adı belirlendikten sonra kurulum tüm düğümler üzerine otomatik olarak yapılacaktır.

2) Database Mirroring
Database mirroring, mantık olarak aktif bir SQL Server’ın bir sunucuda çalışırken, bir başka sunucunun da bu SQL Server’ı senkron bir şekilde takip ederek aynı işlemleri kendi üzerinde de yapması esasına dayanır. Böylece aktif SQL Server’ın hata sonucu cevap veremez hale gelmesi durumunda senkron olan diğer SQL Server’ın devreye girmesi ve sistemin canlı olarak devam etmesi sağlanır. Database mirroring (veritabanı yansıma) modelindeki sunucuların rollerini ve özelliklerini inceledikten sonra gerek maliyet gerekse işlevsellik olarak tespitlerde bulunalım.

Principal Server: Aktif veritabanının bulunduğu sunucudur. Üzerine gelen tüm transaction’ları mirror sunucuya yönlendirir.
Mirror Server: Yansıma (mirror) veritabanının bulunduğu sunucudur. Aktif sunucu ile senkron çalışır.
Witness Server: Seçime bağlı olarak kullanılacak olan tanık – izleyici sunucudur. Eğer automatic failover yani otomatik devreye girme mekanizması kullanılacaksa kullanılmalıdır. Hem principal server’ı hem de mirror server’ı sürekli izler ve principal server’da hata tespit ederse rolleri değiştirmek suretiyle mirror server’ı otomatik devreye sokar.

Witness server kullanılıp kullanılmamasına göre ve transaction’ların gönderilme şekillerine göre farklı mirroring şekilleri (modes) kullanılabilir.
High Availability Mode (Yüksek Erişilebilirlik) : Witness server kullanır, tüm transaction’lar principal server’la birlilkte aynı anda mirror server’da da uygulanır.
High Protection Mode (Yüksek Koruma) : Tüm transaction’lar yine principal server’la birlilkte aynı anda mirror server’da da uygulanır. Fakat witness server kullanma zorunluluğu olmadığı için otomatik devreye girme özelliği yoktur.
High Performance Mode (Yüksek Performans) : Transaction’lar önce principal server’da, daha sonra mirror server’da uygulandığından full transaction safety sağlanmaz. Fakat daha yüksek performans ile çalışır.

Mirroring genel olarak server clustering’e göre daha az yönetici eforu ve daha az donanım maliyeti gerektirir. Tercih edilecek kullanım şekline göre otomatik veya elle devreye girme seçimi yapılarak, maliyetler belirlenebilir.

3) Log Shipping
Aktif veritabanı sunucusundan öncellikle bir full backup alınıp ikinci bir yedek sunucuya bunun uygulanması sonrasında periyodik olarak (örneğin 1 dk’da bir) transaction log’ların ikinci sunucuda da uygulanması esasına dayanır. Standart donanımlarla ve oldukça düşük maliyetlerle bir yedek sunucu (stand-by server) tutma esasına dayanan fakat otomatik devreye girme (automatic failover) gibi bir özelliğin desteklenemediği bir yöntemdir. Ayrıca kullanılabilecek bir monitor server ile progamlanabilir bir otomatik devreye sistemi geliştirilebilir, yine de cluster veya mirroring’in sağladığı automatic failover gibi bir nitelik değildir.

4) Peer – to Peer Replication
Aslında erişilebilirlik konusundan çok alternatif bir replikasyon yöntemi olarak tartışılsa da uç uca replikasyonun sağladığı önemli fayda tüm transaction’ların bir uçtan bir uca tüm server’larda uygulanmasıdır. Network trafiğini kontrol ederek load balancing (yük dengeleme) yapabilen bu yöntemin yüksek performans ve ölçekleme (scalability) sağlayabilmesi yanında bu yapıda kontrol edilmesi gereken önemli konu özellikle identity özelliği taşıyan alanlarda tutarsızlıkların oluşmaması ve transaction’ların sağlıklı işlerliğinin devamı için düzenli kontroller yapılması durumudur.


İncelemiş olduğumuz tüm bu yüksek erişilebilirlik çözümlerinin kendi içlerinde ve aralarında gerek performans gerekse çalışma, yönetim ve donanımsal maliyet ve işlevsellik olarak farklı özellikleri vardır. Her sistemin kendine has doğası ve ihtiyaçları olduğu düşünülürse bu çözümlerden en uygun olanın tercih edilmesi gerekmektedir.

Onur Kulabaş
Yazılım Danışmanı

Sorularınız için onurkulabas@yahoo.com