SQL Server AlwaysOn’da Farklı Subnetten Replica Eklerken Alınan 19456 Hatası ve Çözümü

Bu hata, SQL Server Always On mimarisinde Multi-Subnet (Çoklu Alt Ağ) yapılandırması sırasında karşılaşılan tipik bir ağ uyumsuzluğu sorunudur. Mevcut yapınız iki node ile aynı subnette çalışırken, farklı bir subnetteki üçüncü bir sunucuyu dahil etmek istediğinizde, mevcut Listener IP yapılandırması bu yeni sunucunun bulunduğu ağ bloğunu kapsamadığı için bu hatayı alıyorsunuz.

“None of the IP addresses configured for the availability group listener can be hosted by the server. Either configure a public cluster network on which one of the specified IP addresses can be hosted, or add another listener IP address which can be hosted on a public cluster network for this server. (Microsoft SQL Server, Error: 19456)”

Mevcutta bulunan Availability Group üzerine yeni bir replica eklendiğinde hata mesajı ile karşılaşılır.

Sql server eski sürümlerinde böyle bir sorun ile karşılaşılmaz replicayı başarılı bir şekilde ekler. Yeni sql server sürümlerinde Sql Server 2022’de aşağıdaki hatayı almamıza sebebiyet vermektedir.

Hata mesajı (Error: 19456), Always On Availability Group (AG) yapınızdaki Listener IP adresinin yeni eklemeye çalıştığınız replika (FK sunucusu) tarafından geçersiz veya ulaşılamaz olduğunu gösteriyor.
Replika farklı bir network yapısında (subnet) olduğu için, mevcut Listener IP’si o subnet’te bir karşılık bulamıyor. Bu sorunu çözmek için AG’yi Multi-Subnet yapısına geçirmeniz gerekiyor.

Farklı bir subnet kullandığınız için Listener’ın her iki subnet’ten de bir IP adresine sahip olması gerekir. SSMS üzerinden veya T-SQL ile mevcut Listener’a, yeni replikanın bulunduğu subnet’ten boş bir IP atayın.

    ALTER AVAILABILITY GROUP [AG_ADINIZ] 
    MODIFY LISTENER 'LISTENER_ADINIZ' 
    (ADD IP ('YENI_SUBNET_IP', 'SUBNET_MASK'));

    İkinci yapılacak bölüm SSMS ekranıdır.
    1. Availability Groups → Listeners
    2. Listener’a sağ tık → Properties
    3. Add IP Address
    4. 3. sunucunun bulunduğu subnet’ten:
    • Yeni bir IP adresi gir
    • Doğru subnet mask

    Listener her iki subnet için de konfigüre edildikten sonra, replikayı tekrar eklemeyi deniyoruz.

    Always on replica bölümünde başarılı bir şekilde eklendiği görülmektedir.

      Dikkat Etmeniz Gereken Diğer Noktalar

      • Failover Cluster Manager’da Networks bölümüne giriş yapılır. Yeni subnet: “Cluster and Client” olarak işaretli olmalıdır. Eğer: “None” ise → listener IP bağlanamaz.
      • RegisterAllProvidersIP: Multi-subnet yapılarda uygulama bağlantı dizesine (connection string) MultiSubnetFailover=True parametresini eklemeniz ve cluster üzerinde RegisterAllProvidersIP ayarının 1 olduğundan emin olmanız önerilir.
      • Portlar: Farklı networkler arası iletişim olduğu için, replikalar arasında 5022 (Endpoint) ve 1433 (SQL) portlarının yanı sıra Cluster iletişim portlarının (UDP 3343 vb.) açık olduğundan emin olun.

      Hata metninde de belirtildiği gibi; ya yeni sunucunuzun erişebileceği bir “Public Cluster Network” yapılandırmalı ya da (en yaygın çözüm olan) Listener yapılandırmasına yeni subnetten ikinci bir IP adresi tanımlamalısınız. Bu işlemden sonra ALTER AVAILABILITY GROUP [AG_ISMI] JOIN komutu başarıyla çalışacaktır.

      Bu işlem sırasında cluster servislerinin kısa süreliğine “Offline” olması gerekmez, ancak IP değişikliği DNS kayıtlarının güncellenmesine neden olacağından, ağ topolojinize bağlı olarak kısa süreli bağlantı kesintileri yaşanabilir.

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

      “Allah size yardım ederse, size galip gelecek kimse yoktur; eğer sizi yardımsız bırakırsa, O’ndan başka size yardım edecek kimdir? Müminler yalnızca Allah’a güvensinler”Âl-i İmrân Sûresi(3) 160. Ayet

      Author: Yunus YÜCEL

      Bir yanıt yazın

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