İlginizi Çekebilir
  1. Ana Sayfa
  2. SQL Server
  3. Tek Bakışta SQL Server 2008 Yüksek Erişilebilirlik (High Availability) Çözümleri

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

Bu yazımızda Server 2008 üzerinde Yüksek Erişilebilirlik () çö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 2008 ile High Availability çözümlerini incelememiz doğru olur.

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 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 2008’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, 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 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 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.
(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.
(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)

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)

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.

Bu konuyla ilgili sorularınızı https://forum.mshowto.org linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz.

Referanslar

Yorum Yap

Yazar Hakkında

1981 Ankara doğumludur. 2002 yılında Veripark'ta Test Mühendisliği yaptıktan sonra, 2002-2004 yılları arasında Bizitek'te Yazılım Mühendisliği, 2004-2006 yılları arasında Bilge Adam Kurumsal'da Yazılım Danışmanlığı görevlerinde bulunmuştur. 2007 yılından bu yana kurucusu olduğu Turkgen Yazılım firması altında yazılım, eğitim ve danışmanlık faaliyetlerini devam ettirmektedir. MCP, MCSD.NET, MCTS - MOSS 2007 Configuration, MCT, MCLC ve MVP - SQL Server ünvanlarına sahiptir. Işık Üniversitesi Bilgisayar Mühendisliği bölümünden mezun olduktan sonra Gebze Yüksek Teknoloji Enstitüsünde İşletme Yüksek Lisansı yapmıştır.

Yorum Yap