Listener, IP ve read-only routing yapılandırmasını kontrol et
SQL ServerAlways On & HAKomut
-- Listener, port ve IP durumlari:
SELECT ag.name AS ag_name, l.dns_name, l.port, l.is_conformant,
ip.ip_address, ip.ip_subnet_mask, ip.state_desc
FROM sys.availability_group_listeners l
JOIN sys.availability_groups ag ON ag.group_id = l.group_id
LEFT JOIN sys.availability_group_listener_ip_addresses ip ON ip.listener_id = l.listener_id;
-- Read-only routing listesi: primary X iken okuma baglantisi nereye gider:
SELECT ag.name AS ag_name, pr.replica_server_name AS when_primary_is,
rl.routing_priority, sr.replica_server_name AS route_to,
sr.read_only_routing_url, sr.secondary_role_allow_connections_desc
FROM sys.availability_read_only_routing_lists rl
JOIN sys.availability_replicas pr ON pr.replica_id = rl.replica_id
JOIN sys.availability_replicas sr ON sr.replica_id = rl.read_only_replica_id
JOIN sys.availability_groups ag ON ag.group_id = pr.group_id
ORDER BY ag.name, when_primary_is, rl.routing_priority;
-- Replika endpoint ve baglanti ayarlari:
SELECT replica_server_name, endpoint_url, read_only_routing_url,
secondary_role_allow_connections_desc, seeding_mode_desc, session_timeout
FROM sys.availability_replicas;
-- Komut satirindan routing testi (-K ReadOnly icin -d zorunlu):
-- sqlcmd -S tcp:AGL-Musteri,1433 -d Musteri -E -M -K ReadOnly -Q "SELECT @@SERVERNAME"Ne yapar?
Listener DNS adını, portunu ve her subnet IP'sinin cluster'daki durumunu; read-only routing listesinde her primary senaryosu için okuma bağlantısının hangi replikaya ve hangi URL'ye yönleneceğini gösterir.
Ne zaman kullanılır?
Failover sonrası uygulamalar bağlanamıyorsa, ApplicationIntent=ReadOnly bağlantıları primary'ye düşüyorsa, yeni subnet/replika eklendiğinde.
Dikkat
Read-only routing yalnız listener üzerinden, ApplicationIntent=ReadOnly ve hedef veritabanı belirtilerek yapılan bağlantılarda çalışır; instance adına doğrudan bağlantı yönlendirilmez. read_only_routing_url boşsa o replika routing hedefi olamaz. Multi-subnet listener'da istemci MultiSubnetFailover=True kullanmazsa failover sonrası 20-30 sn bağlantı zaman aşımı görülür. Sadece sorgu; risksiz.