SQL’ de High Availability-Bilmeniz Gereken Her Şey

SQL’ de High Availability-Bilmeniz Gereken Her Şey

Muhtemelen Hizmet Düzeyi Sözleşmesi (SLA), Kurtarma Süresi Hedefi (RTO) ve Kurtarma Noktası Hedefi (RPO) terminolojisini duymuşsunuzdur.

Diğer bir yaygın tabir ise – Always On Availability Grupları – herhangi bir sunucu çökmesi veya arızasından sonra SQL Server veritabanlarına mümkün olan en az kapalı kalma süresi göz önünde bulundurularak erişilebilir olacağı anlamına gelir.

Always On Availability Grupları gereksinimleriyle yakından ilgilidir ve Microsoft SQL Server’ın bunun için birkaç olası çözümü vardır. Bu, bütçeye, SQL Server sürümüne, otomasyon gereksinimlerine, kapsama, BT destek düzeyine vb. bağlıdır.

SQL Server’ı daha sağlam ve güvenilir hale getirmek için olası çözümler şunlardır:

Çoğaltma

Bu teknoloji aşağıdaki türlere ayrılabilir:

Türüne göre özetleyecek olursak bu teknoloji, veriyi ölçeklendirmeye yardımcı olabilir, replike edilen tüm veritabanlarına erişilebilir ve replikasyon her iki tarafta da çalışabilir.

Bununla birlikte, çoğaltma, senkronizasyondan çıkabilir, Always On Availability Gruplarından bahsetmek, manuel yük devretme gerektirir ve anlık görüntü çoğaltma, bazı durumlarda zaman alıcı olabilir.

Log shipping

Bu Microsoft çözümü, transaction log’lara bağlıdır. Söylemeye gerek yok, transaction log’larını kullanmak için veritabanının Tam kurtarma modelinde olması gerekir.

Ana teknik, SQL aracı işlerini kullanmaktır, bu da:

Bu çalışmadan önce, primary database yedeğinin ikincil node kurtarma bildirimi olmadan geri yüklenmesi gerekir. SQL Agent job’ları, gereksinimlere bağlı olarak belirli bir aralıkta planlanabilir. Muhtemelen en sık kullanılan program 15 dakikadır.

Bu teknolojinin avantajlarına bakıldığında, birkaç ikincil sunucuyu desteklediğini belirtmekte fayda var. Ayrıca, günlük yedekleme geri yüklemesi sırasında sorgu çalışmıyorsa, ikincil örnekler sorgulanabilir.
Always On Availability Gruplarının dezavantajı, el ile yük devretme gerektirmesi ve ikincil veritabanının gerekli tüm eksik günlük yedeklerini geri yükleyerek güncelleştirilmesi gerekmesidir.

Mirroring

Bu yöntem, Always On Availability Gruplarının bir çözüm olarak çalışır. Bu yöntemi kullanmak için en az iki sunucu gerekir (Primary – ana olarak adlandırılır ve secondary – mirror olarak adlandırılır). Üçüncü sunucu tavsiye edilir (tanık), ancak isteğe bağlıdır. Witness sunucusu, asıl ve mirror arasındaki bağlantıyı izler ve rol değiştirebilir veya otomatik yük devretme gerçekleştirebilir.

Bir sunucu ikincil olarak davrandığında – kurtarma seçeneği olmayan bir veritabanı geri yüklemesi vardır. Yansıtma işlemi sırasında yeni işlemler bu veritabanına kopyalanır. Önce ikincil’e kopyalanırlarsa ve daha sonra asıl yansıtmada taahhüt edilirlerse, yüksek güvenlik modunda çalışır (senkron olarak da adlandırılır). İkincil yansıtmayı beklemeden ana veritabanına yapılan yeni işlemler yüksek performans modunda çalışır (eşzamansız olarak da adlandırılır).

Bu çözüm otomatik yük devretmeye sahip olabilse de, dezavantajları da vardır. İkinci sunucudaki Mirror veritabanı, birincil hale gelene kadar sorgulanamaz. Ayrıca, bir mirroring çözümü yalnızca iki sunucuyla sınırlıdır.

Windows clustering

Always On Availability Grupları için başka bir yöntem daha var – Windows clustering. Bu yöntemi kullanmak için paylaşılan depolama ve iki (veya daha fazla) sunucu gerekir. Aslında, Windows clustering, veritabanı düzeyinde değil, sunucu düzeyinde çalışır. Bir fiziksel makinenin arızalanması durumunda, bir önceki sunucunun bıraktığı iş yükünü başka bir fiziksel makine devralabilir. Bu, %99 veya daha yüksek çalışma süresinin gerekli olduğu ortamlarda yaygındır.

Windows clustering, donanım arızası durumunda yararlıdır, maintenance windows sırasında da kullanışlıdır. Fiziksel sunucu başka bir sunucuya yük devredebilir, daha sonra yükseltilebilecek yazılım/donanımdır ve daha sonra veritabanlarında daha fazla kesinti olmadan geri getirilebilir.

Ancak, bu tür Always On Availability Grupları çözümünün başka bir tarafı daha vardır. Kurulumu karmaşıktır, yalnızca nadiren kullanılabilen ekstra yedekli donanım gerektirir (yalnızca o zaman ilgili node etkindir). Ayrıca verinin kendisi korunmuyor, çünkü aynı depolama kullanılıyor, yedeklilik sadece sunucu tarafında.

Always On Availability Grupları

İlk olarak SQL Server 2012 sürümünde kullanıma sunulan Microsoft SQL Server özelliği Always On Availability Grupları olarak adlandırılmaktadır. Daha önce bahsedilen Windows clustering ve mirror hibrit çözümüne dayanmaktadır, ancak daha fazla avantajı vardır.

Bu kurulum, Birincil kopya adı verilen ve okuma ve yazma işlemleri için veritabanı kopyasını barındıran bir birincil sunucudan yapılır. Başka bir bölüm, salt okunur bir veritabanı kopyası sunan ikincil sunucu olarak adlandırılır. Örneğin raporlama amacıyla da kullanılabilen 8 adede kadar ikincil sunucu olabilir.

Windows kümeleme ile karşılaştırıldığında Always On Availability Grupları paylaşılan depolamaya ihtiyaç duymaz; bu da her sunucu kendi depolama sürücülerini kullandığından sistemi daha güvenilir hale getirir.

Always On Availability Grupları, SQL örnek düzeyinde çalışmaz, bunu bireysel veritabanlarında yaparlar. Bu nedenle, bazı veritabanları Always-On’a dahil edilebilir, diğerleri olmayabilir.

Always On en iyi çözüm gibi görünse bile, bir bedeli vardır – SQL Server 2012’den itibaren bu özellik yalnızca Enterprise Edition ile birlikte gelir. Daha sonraki sürümlerde, Standart sürümde de kullanma teklifleri vardır.

Çözüm

Özetlemek gerekirse, SQL Server’ı daha güvenilir hale getirmek ve yüksek düzeyde kullanılabilir veritabanları çözümü sağlamak için çeşitli olanakların tümü özel gereksinimlere bağlıdır. Bazı çözümler bir duruma, diğerleri ise farklı SQL Server kurulumuna uygun olabilir. Kısacası, her teknolojinin avantajları ve karanlık yanları vardır ve en önemlileri maliyet, kurulum için karmaşıklık ve bir sunucu çökmesi durumunda otomatik olarak yük devretme yeteneğidir.

[vc_row full_width=”stretch_row” css=”.vc_custom_1505794887127{background-color: #2596be !important;}” gradient_animation=”#ffbc63,#d46b02″][vc_column][stm_cta button_color=”custom” button_custom_color=”#0077c2″ icon_custom_color=”#ffffff” button_icon_pos=”right” button_icon=”stmicon-chevron-right” style=”style_6″ link=”url:aryasoft.com.tr/contacts |title:İletişim”] Size ve Veritabanlarınıza Yardımcı Olmak İçin Bekliyoruz! [/stm_cta][/vc_column][/vc_row][vc_row css=”.vc_custom_1501845139892{margin-top: 50px !important;margin-bottom: 25px !important;}”][/vc_row]