Назад | Перейти на главную страницу

Периодические тайм-ауты подключения к прослушивателю группы доступности

У меня есть база данных в группе доступности SQL Server, работающая на сервере базы данных.

Если я вхожу на свой веб-сервер и подключаюсь к первичной базе данных напрямую через IP-адрес сервера базы данных, соединение каждый раз происходит мгновенно.

Если я вместо этого подключаюсь к первичной базе данных по имени прослушивателя группы доступности или IP-адресу прослушивателя группы доступности, он будет подключаться мгновенно 1 из каждых 4 раз и тайм-аут в другом 3. Мгновенное против тайм-аута кажется случайным.

Мы запускаем SQL Server 2014 на виртуальных машинах Azure, если это связано. У меня 8+ часов, поэтому любая помощь будет принята с благодарностью!

Похоже, что проблема связана с DNS. Когда я изменил URL-адрес конечной точки группы доступности на внутренний IP-адрес, а не на полное доменное имя, проблема была решена. Так что для всех, кто попадает в это, есть что попробовать (также может применяться к маршрутизации только для чтения). Пара операторов SQL, которые могут помочь:

Запросить текущие настройки

SELECT ag.name as "Availability Group", ar.replica_server_name as "When Primary Replica Is", rl.routing_priority as "Routing Priority", ar2.replica_server_name as "RO Routed To",  ar.secondary_role_allow_connections_desc, ar2.read_only_routing_url ,*
FROM sys.availability_read_only_routing_lists rl inner join sys.availability_replicas ar on rl.replica_id = ar.replica_id inner join sys.availability_replicas ar2 on rl.read_only_replica_id = ar2.replica_id inner join sys.availability_groups ag on ar.group_id = ag.group_id ORDER BY ag.name, ar.replica_server_name, rl.routing_priority

Обновить URL-адрес конечной точки

ALTER AVAILABILITY GROUP [AvailabilityGroupName] 
MODIFY REPLICA ON 'ReplicaName' WITH (ENDPOINT_URL = 'TCP://<Internal IP>:<Port>')

Я еще не уверен, почему это происходило с перебоями или почему DNS моей сети не разрешал это на внутренний адрес, а вместо этого он принимался подстановочной записью DNS CNAME Route53 для домена. Если я это выясню, я отправлю это на всякий случай, если это будет полезно. Спасибо Бруно за помощь ранее!