0

SQL Server Always On Yapısında Felaketten Kurtarma (Failover-Failback) Nasıl Yapılır?

SQL Felaket Kurtarma Nedir?

Microsoft SQL Server felaket kurtarma konusunda geçmişten bugüne birçok çözüm üretmiş ve bunları başarılı bir şekilde uygulamıştır. Felaket kurtarma senaryoları (Disaster Recovery) çalışan sistemlere ve gereksinimlere göre farklı anlamlar içerir. Fakat genel olarak bahsettiğimiz konu deprem, sel, yangın ve benzeri durumlarda ana sistem, sistem odası veya fiziksel elemanların çalışamaz durumda kaldığı zamanlarda başka bir lokasyondan sistemlerin çalışırlığını sağlamaktır.

SQL tarafında yüksek erişilebilirlik ve felaketten kurtarma senaryoları ve kurgulanması konusunda değişik makalelerden yararlanabilirsiniz.

Bu makalemde altyapı kurulması ve kurgulanması konusuna değinmeden kurduğum test ortamını anlatacağım ve bu test ortamında felaket durumunu kurgulayıp yapılması gerekenleri aktarmaya çalışacağım.

Test Ortamı;


Resim-1

Öncelikle resimden de anlaşılacağı gibi test ortamımızda Hybrid bir yapı kullanmayı tercih ettim.

Yüksek erişilebilirlik senaryosunda ortak Storage ve SQL 2016 Cluster, felaketten kurtarma senaryosunda da bu Cluster’a bağlı tek bir sunucu, ve bu iki SQL Instance arasında SQL Always On özelliğini aktif ettim.

Quorum olarak disk Quorum ve SQL versiyon olarak SQL 2016 ENT kuruldu.


Resim-2

SRV2 ve SRV3 yüksek erişilebilir olarak konfigüre edilmiş makinalardır Bu kurulum klasik SQL Aktif Pasif Failover Cluster kurulumu. SRV 4 ise felaketten kurtarma makinasıdır ve bulunduğumuz binadan farklı uzak bir lokasyonda bulunmaktadır.


Resim-3

SQL Servisleri ve HA1 (High Availability Group) SRV3 üzerinde çalışmaktadır.


Resim-4

HA1 grupta 4 adet Veritabanı bulunmaktadır ve bu Veritabanları SRV4 makinasına Asenkron olarak replike edilmektedir.

SQL Felaket Durumu ve Alınacak Aksiyonlar (Disaster Recovery) – Failover

Normal bir günde her şey çalışmaktayken ve siz de odanızda oturmuş kahvenizi yudumlarken bir anda elektrik arızası oluştuğunu düşünelim ve tüm sistem odasının ışıkları sönmüş olduğunu farz edelim. Edindiğiniz bilgilere göre mevcut problem 1 hafta boyunca düzeltilemeyecek. SRV2 ve SRV3 makinalarına ulaşamıyorsunuz. Quorum diski de aktif olmadığından Cluster elemanlarınızdan %75 i pasif durumda.

Dolayısı ile Windows Cluster devreden çıkmış ve Failover Cluster ekranına SRV4 makinasından ulaşamıyorsunuz.


Resim-5

Bu noktada yapılması gereken şey SRV4 makinasında Windows Failover Cluster elemanlarını Quorum’suz çalışmaya zorlamanız olacaktır.

Bunun için SRV 4 makinasına bağlanmalı ve POWERSHELL kullanarak aşağıdaki komutları girmelisiniz.

Import-Module FailoverClusters

$node = “SRV4”
Stop-ClusterNode –Name $node
Start-ClusterNode –Name $node -FixQuorum

(Get-ClusterNode $node).NodeWeight = 1

$nodes = Get-ClusterNode -Cluster $node
$nodes | Format-Table -property NodeName, State, NodeWeight

Komutlardan da anlaşılacağı gibi önce gerekli modülün import edilmesi gerekmektedir. Sonrasında Cluster servisi durdurulur ve tekrar Quorum’suz çalışması zorlanmalıdır.

Bu işlemlerin ardından aktif olan tek Cluster Node’unun SRV4 olduğu bilgisi Windows Cluster iletilir.

Aynı işlemleri net.exe yardımı ile komut satırı üzerinden de yapılabilir.

net.exe stop clussvc

net.exe start clussvc /forcequorum

Komutlar için : https://msdn.microsoft.com/en-us/library/hh270275.aspx

Yapılan bu işlemlerin ardından Windows Failover Cluster arayüzünü açabilir durumdadır.


Resim-6

Şimdi yapılması gereken ise Veritabanlarını yani HA1 grubu SRV 4 makinasına aktarmak olacaktır. Bu işlem için SRV4 makinasındaki SQL Instance’a bağlanıp gruba Failover demek yeterli olacaktır.


Resim-7

HA1 SRV4 makinasına asenkron konfigürasyon olduğundan veri kaybı konusunda bir uyarı görülür. Bu durumda ne kadar veri kaybı olacağı sistemin aktif yoğunluğu ve aradaki network hattının iyiliği parametrelerine göre değişiklik gösterecektir.


Resim-8

Artık SRV4 makinasından çalışabilir durumdayız ve görüldüğü üzere Veritabanları DR tarafında çalışır durumda.

Aktif Sisteme Geri Dönme (DC) – FailBack

Evet 1 hafta boyunca DR tarafında çalıştınız ve sistem odanız artık hazır. Şimdi DC tarafına geri dönmeden önce yapılması gerekenleri inceleyelim.

Öncelikle bu bir kontrollü aksiyon olduğundan veri kaybı artık istemediğimiz bir şey.


Resim-9

Aktif olan sistemde Veritabanlarının data aktarımının Suspend olduğunu fark edilecektir. Bunları tek tek Resume etmek gereklidir.

Resim-11

Sonrasında ise sonra tüm sistemler kontrol edilmeli ve en önemlisi geçiş öncesi iki Instance arasındaki veri aktarım yöntemi senkron olarak ayarlanmalıdır.


Resim-12

Son adımdada artık herşeyin düzgün olarak ayarlandığından emin olunduktan sonra DC ortamına geri dönülebilir.

Bir sonraki makalede görüşmek üzere.

Bu konuyla ilgili sorularınızı  alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar

https://www.mshowto.org

https://msdn.microsoft.com/en-us/library/hh270275.aspx

TAGs : sql server, sql server cluster, sql server cluster seçenekleri, sql server nedir, sql server high Availability, sql server disaster recovery, sql server yüksek erişilebilirlik secenekleri, sql server cluster secenekleri, sql server failover, sql server failback, sql server always on, sql server always on ayarlari, sql server always on yapilandirma, sql server always on kurulumu, sql server alwason nedir, sql server always on ilk ayarlar

Bu İçeriğe Tepkin Ne Oldu?
  • 0
    harika_
    Harika!!
  • 0
    be_enmedim
    Beğenmedim
  • 0
    _ok_iyi
    Çok iyi
  • 0
    sevdim_
    Sevdim!
  • 0
    bilemedim_
    Bilemedim!
  • 0
    olmad_
    Olmadı!
  • 0
    k_zd_m_
    Kızdım!

Soma doğumludur. Ankara üniversitesi. Fen Fakültesi Matematik Ana Bilim Dalı mezunudur. Bilişim sektöründe çeşitli firmalarda Veritabanı Uzmanı, Sistem Yöneticisi ve Yazılımcı olarak çalışmıştır. Şu anda Netaş şirketinde kurumsal danışman olarak görev yapmaktadır. MSSQL ürün ailesi ve Azure teknolojileri ile ilgilenmektedir.

Yazarın Profili

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir