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…

July 7, 2021 by Aryasoft IT

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:

  • Replication
  • Log Shipping
  • Mirroring
  • Windows Clustering
  • Always on Availability Groups

Çoğaltma

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

  • İşlemsellik(Transactional): SQL Server Transaction Logs’ları ile bir senkronizasyon sürecine bağlıdır. Bu tür çoğaltma, makineye uygulanan birincil veritabanının snapshot ile başlar, ardından yayıncıda gerçekleşen tüm işlemler makineye iletilir. Bu seçenek, diğer çoğaltma türlerine kıyasla en düşük gecikmeyi sağlar.
  • Snapshot: Veriler biraz değiştirilirken, bu tür çoğaltmayı kullanmak en iyisidir. Snapshot tüm veritabanından alınır ve hedef veritabanına kopyalanır. Ayrıca, bazı durumlarda sonraki çoğaltma işlemlerini başlatmak için bir başlangıç ​​veri seti olarak da kullanılır.
  • Merge: Hedef ve mevcut ortam her zaman bağlı değilse (dizüstü bilgisayar ve sunucu gibi), bu tür yansıtma en uygunudur. Tüm değişiklikler izleniyor ve mevcut ortam ve hedef tekrar çevrimiçi olduklarında değişiklikler senkronize ediliyor. 
  • Peer to Peer:Bu çoğaltma türü, işlem yürütme için tüm node’ları dahil etme avantajına sahiptir. Bazı durumlarda, aralarında daha iyi bir denge sağlamak için birkaç örnekteki verilerin ölçeğini genişletmek yardımcı olabilir.

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:

  • primary database ‘de transaction log backup oluşturun
  • Transfer log’u backup secondary databases’e aktarın.
  • Bu log backup’ı secondary database’e geri yükleyin.

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.

Size ve Veritabanlarınıza Yardımcı Olmak İçin Bekliyoruz!