MSSQL Server Always On Listener Yapısında DNS TTL Süresinin Belirlenmesi

MSSQL Server

Bu makalede Always on yapısında bulunan Listener yapısında bulunan DNS TTL süresinin belirlenmesine değinmiş olacağız. Sql serverın dns sunucundan sürekli bağlantı sağlayıp aktif olan listener ip değerini öğrenmek ister. Bu yapı aşağıdaki ilgili powershell scriptiyle gördüğümüz HostRecordTTL süresidir. Bu süre sql server’ın 1200 saniye bekledikten sonra DNS sunucusu üzerinden gerçek ip değerini öğrendiği yapı olarak karşımıza çıkmaktadır. Bu değerin gerçek sistemlerde 300 saniye olması önerilmektedir. 300 saniyeden bir DNS sunucusundan güncel ip değerini almak için bağlanır.

Şöyle dememiz daha iyi olur. Dns sunucusu bu süre zarfında her zaman aynı ip sonucunu döndürmektedir. Bu süre zarfından sonra(1200 veya 300) yeni bir ip set edilmişse DNS sunucusunda son kullanıcıya güncel ip değerini bu süre(300) zarfından sonra almaktadır. Tabi burada DNS sunucusu üzerinde de bu değerin kaç saniyede bir dns sunucusunda set edileceğinin de belirlenmesi gerekmektedir. Minumum 60 saniye olarak ayarlanabilir. Buda sürekli dns sunucusunda güncellemeye sebebiyet vereceği için performans anlamında bizlere sıkıntı verecektir. Çünkü sadece sizin ip adresiniz yok. Milyonlarca ip değerinin set edilmesi demektir.

Get-ClusterResource "SQLCLSTST" | Get-ClusterParameter

Son kullanıcının güncel olan ip değerini set edilen 300 saniye boyunca güncel tutmasına sebep olacaktır..

Aşağıdaki komut ile PowerShell üzerinde TTL süresini değiştirebiliriz. HostRecordTTL parametresini 300 saniye (5 dakika) olarak güncelliyoruz

Get-ClusterResource "SQLCLSTST" | Set-ClusterParameter -Name HostRecordTTL -Value 300

Parametreyi değiştirmek tek başına yeterli değildir. Değişikliğin DNS sunucusuna basılması ve cluster tarafından uygulanması için kaynağın yeniden başlatılması gerekir. Bu işlemi de yine PowerShell üzerinden hızlıca yapabilirsiniz.

Listener kaynağını çevrimdışı (Offline) yapıyoruz

Stop-ClusterResource "SQLCLSTST"

Listener kaynağını tekrar çevrimiçi (Online) yapıyoruz.

Start-ClusterResource "SQLCLSTST"

İşlem tamamlandıktan sonra değerin başarıyla set edilip edilmediğini doğrulamak için makalemizin başında kullandığımız komutu tekrar çalıştırabiliriz.

Get-ClusterResource "SQLCLSTST" | Get-ClusterParameter -Name HostRecordTTL

Bu kontrolün ardından çıktıda HostRecordTTL değerinin 300 olduğunu göreceksiniz. Artık failover (rol değişimi) durumlarında DNS üzerindeki Listener IP güncellemesi çok daha hızlı algılanacak ve istemcilerin (clients) yeni aktif sunucuya bağlanma süresi kısalacaktır.

MSSQL Server Always On Listener Yapısında DNS TTL Süresinin Belirlenmesi konusuna değinmiş olduk.

Not: Güncel ip değerlerini almak için ipconfig /flushdns yapılması gerekmektedir.

Başka makalede görüşmek dileğiyle..

“Sen af ve kolaylık yolunu tut; iyiliği emret ve cahillerden yüz çevir.” (A’râf sûresi, 199)

Author: Yunus YÜCEL

Bir yanıt yazın

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