Что такое прослушиватель группы доступности?

Область применения:SQL Server

Прослушиватель группы доступности ― это виртуальное сетевое имя (VNN), к которому могут подключаться клиенты, чтобы получить доступ к базе данных из первичной или вторичной реплики группы доступности Always On. Прослушиватель позволяет клиенту подключаться к реплике, не зная физического имени экземпляра SQL Server. Так как прослушиватель маршрутизирует трафик, строку подключения клиента не нужно изменять после отработки отказа.

Прослушиватель группы доступности состоит из службы доменных имен прослушивателя (DNS), обозначения порта прослушивателя, а также одного или нескольких IP-адресов. Для работы прослушивателя группы доступности поддерживается только протокол TCP. Имя DNS прослушивателя должно быть уникальным в домене и в NetBIOS. При создании прослушивателя он становится ресурсом кластера с соответствующим виртуальным сетевым именем (VNN), виртуальным IP-адресом (VIP) и зависимостью группы доступности. Клиент с помощью DNS разрешает VNN в несколько IP-адресов, а затем пытается подключаться по каждому адресу, пока запрос подключения не завершится успехом или не истечет время ожидания.

Если для одной или нескольких вторичных реплик для чтения настроена маршрутизация только для чтения, то клиентские соединения с прослушивателем с намерением чтения автоматически направляются во вторичную реплику для чтения.

В этой статье представлены общие сведения о прослушивателе группы доступности. Можно также настроить прослушиватель, а затем узнать, как подключиться к прослушивателю.

Параметры прослушивателя

Прослушиватель группы доступности использует следующие элементы:

Уникальное имя DNS
Оно известно также как имя виртуальной сети (VNN). Действуют правила именования Active Directory для DNS-имен узла. Дополнительные сведения см. в статье базы знаний Соглашения о наименовании в Active Directory для компьютеров, доменов, сайтов и подразделений .

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

Настройка IP-адресов
Для данного прослушивателя группы доступности IP-адрес может использовать протокол DHCP или один или несколько статических IP-адресов. Использование DHCP может привести к задержкам подключения во время отработки отказа, поэтому его не рекомендуется использовать в рабочих средах. Группы доступности, которые распространяются на несколько подсетей или используют конфигурации гибридной сети, должны использовать статический IP-адрес.

Порт прослушивателя

При настройке прослушивателя группы доступности необходимо назначить порт через SSMS. Для упрощения строки подключения клиента в качестве порта по умолчанию можно задать порт 1433. Это означает, что при использовании порта 1433 вам не понадобится включать номер порта в строку подключения приложения. Кроме того, поскольку каждый прослушиватель группы доступности будет иметь собственное имя виртуальной сети, каждый прослушиватель группы доступности, настроенный в одном кластере WSFC, может использовать один и тот же порт по умолчанию ― 1433.

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

Если один из экземпляров SQL Server уже прослушивает TCP-порт 1433 через прослушиватель экземпляра и при этом на данном компьютере больше нет служб (включая дополнительные экземпляры SQL Server), прослушивающие порт 1433, это не приведет к конфликту порта с прослушивателем группы доступности. Обусловлено это тем, что прослушиватель группы доступности может совместно использовать один TCP-порт внутри одного процесса. Однако вы не должны настраивать несколько экземпляров SQL Server (параллельное использование) так, чтобы они прослушивали один порт, поскольку в этом случае одному из них не удастся прослушивать подключения.

Вы также можете назначить нестандартный порт прослушивателя группы доступности. Однако в этом случае при подключении к прослушивателю понадобится явно использовать целевой порт в строке подключения приложения. Кроме того, для этого порта придется создавать разрешение в брандмауэре.

Вы можете подключиться к прослушивателю, указав имя и порт (если не используется 1433). Таким портом может быть либо порт прослушивателя, либо базовый порт SQL Server, настроенный так, чтобы обеспечить прослушивание.

В следующих примерах демонстрируются некоторые функциональные возможности прослушивателя:

Настройка:

  • IP-адрес, прослушиваемый SQL Server: 192.168.20.2
  • Порт, который прослушивает SQL Server: 50254
  • Настроенный IP-адрес прослушивателя: 192.168.20.15
  • Настроенное имя прослушивателя: aglistener19
  • Настроенный порт прослушивателя: 50123
  1. Подключитесь к прослушивателю через IP-адрес и порт. Это подключение будет успешно.

    sqlcmd -S 192.168.20.15,50123 
    1> 
    
  2. Подключитесь к прослушивателю только по имени, не указывая порт. Это подключение завершится ошибкой, так как использованный порт отличается от стандартного порта. Вы должны указать этот порт.

    sqlcmd -S aglistener19 
    
  3. Подключитесь к прослушивателю по имени прослушивателя и настроенному порту. Это подключение будет успешно.

    sqlcmd -S aglistener19,50123 
    1> 
    
  4. Наконец, подключитесь к прослушивателю и порту SQL Server. Обратите внимание, что в этом случае используется порт, который прослушивается SQL Server, а не порт прослушивателя. Это подключение также завершается успешно.

    sqlcmd -S aglistener19,50254
    1> 
    

Поведение клиентских подключений при отработки отказа

В случае отработки отказа группы доступности существующие постоянные подключения к группе доступности разрываются, при этом, чтобы продолжить работать с той же базой данных-источником или доступной только для чтения базой данных-получателем, клиент должен установить новое соединение. Пока на стороне сервера выполняется отработка отказа, связь с группой доступности может прерваться, что заставит клиентское приложение начать попытки установить новое подключение до тех пор, пока база данных-источник не будет переведена в режим «в сети».

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

Следующие шаги

Теперь, когда вы знакомы с функциями прослушивателя группы доступности, создайте прослушиватель, а затем настройте приложение для подключения к прослушивателю. Вы также можете ознакомиться с различными стратегиями мониторинга группы доступности, чтобы обеспечить работоспособность группы доступности.

Дополнительные сведения о группах доступности см. в разделе Обзор групп доступности Always On (SQL Server).