16 Mart 2019 Cumartesi

SQL Server 2017 Yüksek Erişilebilirlik Çözümleri - 3 (High Availability Solutions)

Serinin bir önceki yazısında AlwaysOn Failover Cluster ve AlwaysOn Availability Group özelliklerine odaklanmıştık. 

Önceki yazıya şu linkten ulaşabilirsiniz:

SQL Server 2017 ile birlikte kullanılabiliecek Yüksek Erişebilirlik çözümleri özetle şöyle:


SQL Server 2017 editionları ve desteklenen özellikleri aşağıdaki linkten inceleyebilirsiniz:

HA çözümleri birlikte kullanılarak farklı topolojiler elde edilebilir. Biz özetle temel topolojilere ve çözümlerin avantajlı-dezavantajlı yönlerine odaklanmaya kaldığımız yerden devam edelim.

Database Mirroring


Uzun zamandır var olan bir çözümdür ilerleyen versiyonlarda görmeyebiliriz. Her bir veritabanı için ayrıca uygulanır. Aktif olan Principal sunuculardan pasif olan Mirror sunucuya Senkron ve asenkron veri aktarımı yapabilir. Eğer Witness sunucu eklerseniz otomatik failoverı da destekler. Mirror sunuculardaki veritabanları doğrudan okunamaz. Ancak veritabanı snapshotları alınarak okuma yapılabilir.

Aynı versiyon ve edition olmasına dikkat etmelisiniz. Veritabanı adını sağ tıklayarak ulaştığınız Task/Mirror menüsüyle veya scriptler yardımıyla çözümü ilgili veritabanına uygulayabilirsiniz. Her edition Database Mirroring özelliğini farklı şekilde destekler. Witness sunucudaki versiyon aynı olmalıdır fakat edition farklı olabilir. Mesela Express edition kullanabilirsiniz. Witness sunucu iki sunucuyu takip edip yük devrinin otomatik yapılmasını sağlar. Witness olmadan da Database Mirroring kurulabilir.

Temel topolojisi:

Avantajlar:
  • Senkron ve asenkron çalışabilir.
  • Full Safety modeda senkron çalışır ve yük devrinde (failover) veri kaybı olmaz.
  • Witness sunucu topolojiye dahil edilmişse saniyeler içerisinde otomatik yük devrinde (failover) yapılabilir.
  • Mirror sunucularda veritabanının kopyaları (replica) olur ve bu kopyalar snapshotlar yardımıyla okunabilir.
Dezavantajlar:
  • Otomatik yük devri (failover) yapılabilmesi için ek Witness sunucuya ihtiyaç duyulur.
  • Tek pasif node aktarılabilir.
  • Veritabanları tek tek ayarlanır. Uygulamalar birden fazla veritabanı kullanıyorsa failover sırasında veritabanlarının bir kısmı diğer tarafa geçmezse sorun oluşturur.
  • Pasif nodelardaki veritabanları okunamaz. Sadece snapshot alınarak okunabilir.
  • Veritabanlarının diğer nodelar üzerinde kopyası oluştuğu için daha fazla disk alanına ihtiyaç duyulur.
  • Failover sonrası uygulama tarafında Connection Stringlerin değiştirilmesi gerekir. Bağlantı cümesine "Failover Partner" ibaresi eklenmelidir.
  • Server seviyesinde tanımlanan nesnelerin (job, login vs.) diğer nodelara da tanımlanması gerekir.


Basic Availability Groups


Database Mirroring özelliğinin yerini alacak yeni bir özellik. Sadece Standart editionda 2 sunucu 1 veritabanı için kurulabilir. AlwaysOn Availability Group özelliğine benzer şekilde kurulsa da bir çok yetenekten mahrumdur. Mesela pasif sunuculardaki veritabanları okuma ve yedeklemede kullanılamaz, page bozukluklarını düzeltilmez. Enterprisea geçerken upgrade ile geçmek mümkün değildir. Availability Groupun yeniden kurulması gerekir. Bu hali daha çok Mirroringi andırır.

Windows Failover Cluster üzerinde kurulur ve Enterprisedaki AlwaysOn Availability Group ile aynı şekilde uygulanır. 

Temel topolojisi:


Avantajlar:
  • Database Mirroringin yeni hali (yakında yerini alacak) ve AlwaysOn Availability Groupun kısıtlı halidir.
  • Standart editionda 2 sunucu 1 veritabanı için oluşturulabilir.
  • Senkron-asenkron çalışabilir.
  • Otomatik yük devri (failover) yapılabilir.
Dezavantajlar:
  • Yalnızca 2 sunucu arasında 1 db için oluşturulabilir.
  • AlwasyOn Availability Groupa geçişte Basic Availability Groupun kaldırılması gerekir. AO AG kurulumu sıfırdan yapılır.
  • Pasif nodeki veritabanı okuma için kullanılamaz, backup alınamaz.
  • Page bozuklukları pasif nodea gönderilirken kontrol edilmez.
  • Sadece SQL Server 2016 ve sonrası Standart editionda kullanılabilir.
  • Server seviyesinde tanımlanan nesneler (job, login vs.) diğer nodelarda da tanımlanması gerekir.

Buraya kadar değindiğimiz özellikler otomatik yük devrini (failover) destekleyen tam manasıyla Yüksek Erişilebilirlik çözümleri nitelemesini hak eden özelliklerdi. Şimdi ise otomatik yük devrini desteklemeyen sadece kopya veritabanı oluşturmak için kullanılan kısmen Yüksek Erişilebilirlik çözümlerinden sayılan diğer özellikleri inceleyelim. Bu özelliklerin topolojilerini çizmeden direk avantaj ve dezavantajlarına değineceğim.

Bu arda serimizde Replication özelliğini odağımızın dışında tutuyorum. Çünkü Replication tablo seviyesinde yayıncı, dağıtıcı ve abone rollerinde gazete dağıtım mantığında veri kopyalamak için kullanılır. Yüksek erişilebilirlik çözümü sayılmaz.

Clusterless Availability Group


Hem Enterprise hem Standart editionda destekleniyor. Windows Failover Cluster kurulumuna ihtiyaç olmuyor. Ancak bu bir zayıflığı da beraberinde getiriyor. sadece Windows Server 2016 ve SQL Server 2017 versiyonlarında geçerli bu özellikte bir Yüksek Erişebilirlik Çözümünden beklenen pek az şey mevcut. Bu haliyle Log Shippingi andırıyor diyebilirim. Clusterless Availability Group özelliğinin amacı kopya veritabanları oluşturmaktır. Read-Scale Availability Group olarak da anılır.

Avantajlar:
  • Windows Failover Cluster kurulmaz diğer yönleriyle Availability Group özelliklerine benzer şekilde yönetilir.
  • Veritabanı kopyası oluşturmak için kullanılır. Kopyalar okuma ve yedekleme için kullanılabilir.
  • Senkron-asenkron veri aktarımı yapılabilir.
Dezavantajlar:
  • Windows Failover Cluster üzerine kurulmamıştır. Yüksek erişilebilirlik için gerekli mekanizma mevcut değildir.
  • Otomatik yük devri (failover) olmaz
  • Page bozuklukları pasif nodea gönderilirken kontrol edilmez.
  • Minimum Windows Server 2016, SQL Server 2017 gereklidir.
  • Server seviyesinde tanımlanan nesneler (job, login vs.) diğer nodelarda da tanımlanması gerekir.

Log Shipping


Uzun zamandır var olan bir çözümdür. Temelde Backup/Restore ile diğer sunucularda kopya veritabanı oluşturur. En basit ve ucuz yöntemdir diyebiliriz. Ancak zamanlanmış backupları takip etmek gerekir. Bu yöntemle kopya veritabanının belli bir süre geriden gelmesini sağlayabilirsiniz.

Avantajlar:
  • Kurulumu basittir. Temel olarak Backup/restore işlemi otomatik yapılır.
  • Pasif nodelarda veritabanının kopyaları oluşur.
  • Pasif nodeların ne kadar geriden geleceği ayarlanabilir.
  • Farklı edition ve üst versionlar arasında kurulabilir.
Dezavantajlar:
  • Otomatik yük devri (failover) desteklemez. Failover dakikalar hatta saatler alabilir.
  • Dakikalar seviyesinde veri kaybı olur.
  • Veritabanları tek tek ayarlanır.
  • Backup/restore işlemleri takip edilmelidir.
  • Log shipping aktifken pasif nodelarda veritabanları restoring modeda olduğu için okuma yapılamaz.
  • Diğer nodelar üzerinde veritabanlarının kopyası olduğu için daha fazla disk alanına ihtiyaç duyulur.
  • Failover sonrası uygulama tarafında connection stringlerin değiştirilmesi gerekir.
  • Server seviyesinde tanımlanan nesneler (job, login vs.) diğer nodelarda da tanımlanması gerekir.

AlwaysOn Availability Groups yaygınlaşmadan önce Database Mirroring yaygın şekilde kullanılmaktaydı. Log Shipping ise yıllar önce tercih ediliyordu. Şimdilerde ise Yüksek Erişilebilirlik denince akla ilk gelen AlwaysOn Availability Groups olmaktadır. Belki özetlediğimiz çözümlerden bazıları sizin için diğerlerinden daha uygundur. Belki çözümleri bir arada kullanmak istersiniz. Seçim sizin.

Sistemi ayakta tutmak büyük uğraş ister. Maliyetler, eldeki kaynaklar ve özetlediğimiz çözümler sayesinde sisteminizi 7/24 ayakta tutabilirsiniz. Biz temel topolojilere odaklandık. Sizler bu çözümleri bir arada kullanarak daha büyük topolojiler elde edebilirsiniz.

Hiç yorum yok:

Yorum Gönder