SQL Server 2016 AlwaysOn da Yük Dengeleme

SQL Server 2016 ile birlikte gelen yeniliklerden birisi de AlwaysOn yapısında yer alan ikincil replika sunucuları arasında için yük dengeleme özelliğidir. Bu özellik read-only modunda çalışan replika sunucuları arasında gelen isteklerin yük dağılımlı olarak yönlendirilmesini sağlar.

SQL Server 2012 ve 2014 de read-only yönlendirme trafiği yönlendirme listesindeki ilk uygun replika sunucusuna yönlendirilmekteydi. Eğer bu sunucuya erişilemez ise listedeki diğer sunucuya yönlendirilirdi. Eğer çok sayıda ikincil replika sunucunuz var ise okuma işlemlerini bu sunucular arasında yük dengeli olacak şekilde yönlendiremezsiniz.

SQL Server 2016 da sorgulamalar yük dengeli olarak sunuculara dağıtılabilmektedir.

Uygulanışı:

Yapılandırma için üç adet SQL Server 2016 sunucu kullanıyorum. Bu sunucular Windows Server 2016 üzerine kuruludur.

ORTACAG ismi ile açlışan bir AlwaysOn yapım mevcut. WINSRV01 primiary server, WINSRV02 ve 03 secondary server olarak görev yapmaktadır. Listener ismi olarak da “LST” yi kullanmaktayız.

 

İlk yapmamız gereken ikincil replika sunucularını read-intent only moda çekmek.

 

Her ikincil replika ve birincil sunucu için bağlantı adresi tanımlıyoruz:

 

 

 

Bu adres ikincil replika sunucularına bağlanacak uygulamaların giriş noktasıdır. Sistem adresi ve port numarası içermelidir. Database mirroring de kullanılan endpoint URL ile benzer mantığa sahiptir.

Birincil replika sunucusu için yönlendirme listesi oluşturmamız gerekmektedir.

 

 

 

Yapılandırma bitmiştir.

Bu aşamadan sonra gelen read-only istekler WINSRV02 ve 03 e yönlendirilecektir. İlk gelen bağlantı üçüncü sunucuya , ikinci gelen bağlantı isteği ikinci sunucuya dördüncü gelen bağlantı isteği tekrar üçüncü sunucuya gidecektir. İşleyiş bu şekilde devam etmektedir. Round-robin mekanizması yönlendirme listesindeki sunucular için çalışacaktır.

Yönlendirme listesini ve sırasını görmek için aşağıdaki sorguyu çalıştırabiliriz.

 

 

 

SQL Server 2012 ve 2014 için yönlendirme tablosundaki öncelik numaraları ilk olarak üçüncü server daha sonra ikinci sunucu olarak gelmektedir.

 

Bizim yaptığımız ayarlara göre SQL Server 2016 da ikinci ve üçüncü sunucunun öncelikleri eşittir.

 

İkinci sunucu istekleri kabul etmeyecek duruma geçerse eğer tüm istekler üçüncü sunucuya yönlenmektedir.

Yönlendirme listesindeki tüm sunucular (WINSRV02 ve WINSRV03) erişilemez durumda ise read-only istekleri birincil replika sunucusu olan WINSRV01 e yönlendirilir.

Test aşaması:

Yapımızı test etmek için SQL CMD komut satırı aracını kullanabiliriz.

Sqlcmd -S  LST -E -K readonly -d ortacdemireldb  komutu ile oturum açıyorum. Burada kullandığım LST listener ismidir.

Oturum açtığım sunucuyu sorgulattığımda iki numaralı sunucu üzerinden bağlantı kurulduğunu görmekteyim.

Oturumu kapatıp tekrar denediğimde bu sefer üç numaralı sunucu üzerinden bağlantı kuruluyor.

Paylaş

Leave a Reply

Your email address will not be published. Required fields are marked *