Поделиться через


Настройка прослушивателя для группы доступности Always On

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

В этой статье описывается создание или настройка одного прослушивателя группы доступности для группы доступности AlwaysOn с помощью SQL Server Management Studio, Transact-SQL или PowerShell в SQL Server.

Внимание

Для создания первого прослушивателя группы доступности настоятельно рекомендуется использовать SQL Server Management Studio, Transact-SQL или SQL Server PowerShell. Старайтесь не создавать прослушиватель непосредственно в кластере WSFC, кроме случаев, когда необходимо, например, создать дополнительный прослушиватель.

Существует ли прослушиватель для этой группы доступности?

Определение наличия прослушивателя для группы доступности

Примечание.

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

ограничения

  • Вы можете создать только один прослушиватель для каждой группы доступности с помощью SQL Server. Обычно для каждой группы доступности требуется только один прослушиватель. Однако в некоторых сценариях клиента требуется несколько прослушивателей на одну группу доступности. После создания прослушивателя посредством SQL Server для создания дополнительных прослушивателей можно использовать Windows PowerShell для отказоустойчивых кластеров или диспетчер кластера WSFC. Дополнительные сведения см. в статье о создании дополнительного прослушивателя для группы доступности далее в этой статье.

Рекомендации

Для конфигураций с несколькими подсетями рекомендуется статический IP-адрес (но это не обязательно).

Необходимые компоненты

  • Необходимо подключиться к экземпляру сервера, на котором размещена первичная реплика.

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

Внимание

Перед созданием первого прослушивателя настоятельно рекомендуется прочитать подключение клиентов AlwaysOn.

Требования DNS-имени прослушивателя группы доступности

Для каждого прослушивателя группы доступности необходимо имя DNS-узла, уникальное в домене и в NetBIOS. Имя DNS является значением типа string. Это имя может содержать только буквы, цифры, тире и дефисы (-), а также знаки подчеркивания (_) в любом порядке. В именах узлов DNS учитывается регистр. Максимальная длина составляет 63 символов, однако в СРЕДЕ SQL Server Management Studio максимальная длина может превышать 15 символов.

Мы рекомендуем указывать строку, которая поддается толкованию. Например, для группы доступности с именем AG1понятным именем узла DNS будет ag1-listener.

Внимание

NetBIOS распознает только первые 15 символов в dns_name. При наличии двух кластеров WSFC, которые управляются одной службой Active Directory, и попытке создать в обоих кластерах прослушивателей группы доступности с именами, содержащими более 15 символов, и одинаковым префиксом из 15 символов возникнет ошибка, указывающая, что не удалось подключиться к ресурсу с именем виртуальной сети. Сведения о правилах именования префиксов для DNS-имен см. в разделе "Назначение доменных имен.aspx).

Разрешения Windows

Разрешения Ссылка
Объект имени кластера WSFC (CNO), на котором размещается группа доступности, должен иметь разрешение Создание объектов компьютера.

В Active Directory по умолчанию CNO не имеет явного разрешения на создание объектов компьютера и может создавать 10 объектов виртуальных компьютеров (VCOs). После того как сформированы 10 виртуальных объектов-компьютеров, создание дополнительных объектов VCO завершится ошибкой. Этого можно избежать, явно предоставив разрешение объекту CNO кластера WSFC. VCOs для удаленных групп доступности не удаляются автоматически в Active Directory и учитываются по умолчанию 10 виртуальных машин, если они не будут удалены вручную.
Примечание. В некоторых организациях политика безопасности запрещает предоставлять разрешение Создание объектов компьютера отдельным учетным записям пользователей.
Действия по настройке учетной записи для лица, которое устанавливает кластер в учебнике Пошаговое руководство по отказоустойчивому кластеру. Настройка учетных записей в Active Directory
Действия по предварительной настройке учетной записи имени кластера в учебнике Пошаговое руководство по отказоустойчивому кластеру. Настройка учетных записей в Active Directory
Если ваша организация требует предварительной подготовки учетной записи компьютера для имени виртуальной сети прослушивателя, вам потребуется членство в группе операторов учетной записи или помощи администратора домена. Шаги по предварительной настройке учетной записи для кластеризованной службы или приложения в учебнике Пошаговое руководство по отказоустойчивому кластеру. Настройка учетных записей в Active Directory

Совет

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

Разрешения SQL Server

Задача Разрешения
Создание прослушивателя группы доступности Требуется членство в фиксированной роли сервера sysadmin и одно из разрешений: CREATE AVAILABILITY GROUP, ALTER ANY AVAILABILITY GROUP или CONTROL SERVER.
Изменение существующего прослушивателя группы доступности Необходимо разрешение ALTER AVAILABILITY GROUP для группы доступности, разрешение CONTROL AVAILABILITY GROUP, разрешение ALTER ANY AVAILABILITY GROUP или разрешение CONTROL SERVER.

Создание прослушивателя

Прослушиватель можно создать с помощью SQL Server Management Studio (SSMS), Transact-SQL или PowerShell.

Совет

Используйте мастер группы доступности для создания прослушивателя группы доступности.

Чтобы создать или настроить прослушиватель группы доступности в SSMS, выполните следующие действия.

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

  2. Разверните узел Высокой доступности AlwaysOn и узел групп доступности.

  3. Выберите группу доступности, прослушиватель которой вы хотите настроить, и выберите один из следующих вариантов:

    • Чтобы создать прослушиватель, щелкните правой кнопкой мыши узел Прослушиватели группы доступности и выберите команду Создать прослушиватель . Откроется диалоговое окно "Новый прослушиватель группы доступности". Дополнительные сведения см. в разделе "Добавление прослушивателя группы доступности" (диалоговое окно) далее в этой статье.

    • Чтобы изменить номер порта существующего прослушивателя, разверните узел Прослушиватели группы доступности , щелкните правой кнопкой мыши прослушиватель и выберите пункт Свойства . Введите новый номер порта в поле "Порт " и нажмите кнопку "ОК".

Прослушиватель группы доступности (диалоговое окно)

DNS-имя прослушивателя
Указывает имя узла DNS для прослушивателя группы доступности. Имя DNS является строкой и должно быть уникальным в домене и в NetBIOS. Это имя может содержать только буквы, цифры, дефисы (-) и знаки подчеркивания (_) в любом порядке. В именах узлов DNS учитывается регистр. Максимальная длина составляет 15 символов.

Дополнительные сведения см. в разделе "Требования к DNS-имени прослушивателя группы доступности" ранее в этой статье.

порт.
TPC-порт, используемый этим прослушивателем.

Сетевой режим
Указывает TCP-протокол, используемый прослушивателем, один из:

DHCP
Прослушиватель будет использовать динамический IP-адрес, назначенный сервером, на котором запущен DHCP-протокол. Протокол DHCP ограничен одной подсетью.

Внимание

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

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

Если выбрать Статический IP-адрес , под полем Сетевой режим появится сетка подсети. В этой сетке отображаются сведения о каждой подсети, к которой может получить доступ прослушиватель этой группы доступности. Эта сетка пуста, пока не добавьте статический IP-адрес, нажав кнопку "Добавить".

Существуют следующие столбцы.

Подсеть
Отображает идентификатор каждой подсети, добавляемой в прослушиватель группы доступности.

IP Address
Отображает IP-адрес данной подсети. Для данной подсети статический IP-адрес может быть указан как IPv4 или IPv6.

Прибавить
Выберите, чтобы добавить статический IP-адрес в выбранную подсеть или в другую подсеть для этого прослушивателя. Откроется диалоговое окно Добавление IP-адреса . Дополнительные сведения см. в статье "Справка по добавлению IP-адреса ".

Удалить
Выберите, чтобы удалить выбранную подсеть из этого прослушивателя.

OK
Выберите, чтобы создать заданный прослушиватель группы доступности.

Устранение неполадок

Сбой при создании прослушивателя группы доступности из-за квот Active Directory

При создании прослушивателя группы доступности может произойти сбой, так как вы достигли квоты Active Directory для учетной записи компьютера узла кластера. Дополнительные сведения см. в статье "Устранение неполадок учетной записи службы кластера при изменении объектов компьютера"

Дальнейшие действия. После создания прослушивателя группы доступности

Ключевое слово MultiSubnetFailover и связанные функции

MultiSubnetFailover — это новое ключевое слово строка подключения, используемое для ускорения отработки отказа с группами доступности AlwaysOn и экземплярами отказоустойчивого кластера AlwaysOn в SQL Server 2012. Если задано строка подключения, включены MultiSubnetFailover=True следующие три подзаготовки:

  • Ускоренная отработка отказа нескольких подсетей на прослушиватель с несколькими подсетями для группы доступности AlwaysOn или экземпляров отказоустойчивого кластера.

  • Ускоренная отработка отказа одной подсети на один прослушиватель подсети для группы доступности AlwaysOn или экземпляров отказоустойчивого кластера.

    • Эта функция используется при подключении к прослушивателю с одним IP-адресом в одной подсети. В результате этого выполняется большее число попыток подключения по протоколу TCP, что дает возможность ускорить отработку отказа в одной подсети.
  • Разрешение именованного экземпляра в экземпляр отказоустойчивого кластера группы доступности AlwaysOn в нескольких подсетях.

    • Эта функция необходима для добавления поддержки разрешения именованного экземпляра для экземпляров отказоустойчивых кластеров группы доступности AlwaysOn с конечными точками в нескольких подсетях.

MultiSubnetFailover=True не поддерживается платформой NET Framework 3.5 или OLEDB

Проблема. Если у группы доступности или экземпляра отказоустойчивого кластера есть имя прослушивателя (известное как сетевое имя или точка доступа клиента в диспетчере кластеров WSFC) в зависимости от нескольких IP-адресов из разных подсетей, и вы используете либо ADO.NET с платформа .NET Framework 3.5SP1 или SQL Native Client 11.0 OLEDB, возможно, 50% запросов на подключение клиента к прослушивателю группы доступности достигнет времени ожидания подключения.

Решения. Рекомендуется выполнить одну из следующих задач.

  • Если у вас нет разрешения на управление ресурсами кластера, измените время ожидания подключения на 30 секунд (это значение приводит к истечению 20-секундного периода ожидания TCP плюс 10-секундный буфер).

    Преимущества. В случае перехода на другой ресурс по нескольким подсетям обеспечивается быстрое восстановление клиента.

    Недостатки.Установление 50 % соединений клиентов потребует более 20 секунд.

  • При наличии разрешений на работу с ресурсами кластера рекомендуется задать RegisterAllProvidersIP=0в качестве сетевого имени прослушивателя группы доступности. Дополнительные сведения см. в подразделе "Установка значения RegisterAllProvidersIP" далее в этом разделе.

    Преимущества. Вам не нужно увеличивать время ожидания подключения клиента.

    Недостатки . При переходе на другой ресурс по нескольким подсетям на восстановление клиента может уйти до 15 минут или более в зависимости от значения параметра HostRecordTT , а также графика междоменной репликации DNS/AD.

Параметр RegisterAllProvidersIP

При создании прослушивателя группы доступности с помощью SQL Server Management Studio, Transact-SQL или PowerShell точка доступа клиента в кластере WSFC создается со свойством RegisterAllProvidersIP, для которого задано значение 1 (true). Действие этого значения свойства зависит от строки подключения клиента следующим образом.

  • Строки подключения, устанавливающие значение true для MultiSubnetFailover .

    Группы доступности AlwaysOn присваивают свойству RegisterAllProvidersIP значение 1, чтобы сократить время повторного подключения после отработки отказа для клиентов, чьи клиентские строка подключения указываютMultiSubnetFailover = True, как рекомендуется. Чтобы воспользоваться преимуществами функции прослушивателя с несколькими подсетями, клиентам может потребоваться поставщик данных, поддерживающий ключевое слово MultiSubnetFailover . Сведения о поддержке драйверов для отработки отказа в нескольких подсетях см. в разделе AlwaysOn Client Connectivity .

    Сведения о кластеризации с несколькими подсетами см. в статье SQL Server Multi-Subnet Clustering .

    Совет

    Если RegisterAllProvidersIP = 1, то при запуске мастера WSFC по проверке конфигурации в кластере WSFC мастер выдаст следующее сообщение об ошибке:

    "Свойству RegisterAllProviderIP для сетевого имени "Name:<сетевое_имя>" присвоено значение 1. В текущей конфигурации кластера для этого свойства должно быть задано значение 0".

    Не обращайте внимания на это сообщение.

  • Строки подключения, не устанавливающие значение MultiSubnetFailover , равным true

    Когда RegisterAllProvidersIP = 1все клиенты, строка подключения не используются, будут испытывать MultiSubnetFailover = Trueподключения с высокой задержкой. Это происходит потому, что эти клиенты пытаются соединиться со всеми IP-адресами последовательно. Напротив, если свойство RegisterAllProvidersIP изменено на 0, то IP-адрес включается в список клиентской точки доступа в кластере WSFC и уменьшает задержку для клиентов устаревших версий. Таким образом, если у вас есть устаревшие клиенты, которые должны подключаться к прослушивателю группы доступности и не могут использовать свойство MultiSubnetFailover , рекомендуется изменить RegisterAllProvidersIP на 0.

    Внимание

    При создании прослушивателя группы доступности через кластер WSFC (графический интерфейс диспетчера отказоустойчивого кластера) свойство RegisterAllProvidersIP будет иметь значение 0 (false) по умолчанию.

Параметр HostRecordTTL

По умолчанию клиенты кэшируют DNS-записи кластера на 20 минут. Уменьшая значение HostRecordTTL, время жизни (TTL) для кэшированных записей, устаревшие клиенты могут повторно подключаться быстрее. Однако уменьшение параметра HostRecordTTL также может привести к увеличению трафика на DNS-серверах.

Пример скрипта PowerShell для отключения RegisterAllProvidersIP и уменьшения срока жизни

В следующем примере для Powershell показано, как настроить параметры кластера RegisterAllProvidersIP и HostRecordTTL для ресурса прослушивателя. Запись DNS кэшируется в течение 5 минут, а не 20 минут по умолчанию. Изменение обоих параметров кластера может сократить время подключения к правильному IP-адресу после отработки отказа для устаревших клиентов, которые не могут использовать параметр MultiSubnetFailover . Замените yourListenerName именем прослушивателя, который вы изменяете.

Import-Module FailoverClusters
Get-ClusterResource yourListenerName | Set-ClusterParameter RegisterAllProvidersIP 0
Get-ClusterResource yourListenerName | Set-ClusterParameter HostRecordTTL 300
Stop-ClusterResource yourListenerName
Start-ClusterResource yourListenerName
Start-Clustergroup yourListenerGroupName

Дополнительные сведения о времени восстановления при отработке отказа см. в разделе Client Recovery Latency During Failover.

Рекомендации по дальнейшим действиям

Действия после создания прослушивателя группы доступности

  • Попросите сетевого администратора зарезервировать IP-адрес, который будет использоваться только этим прослушивателем.

  • Передайте имя узла DNS прослушивателя разработчикам приложения для использования в строке подключения при запросе клиентских соединений к данной группе доступности.

  • Рекомендуйте разработчикам добавить в строки подключения MultiSubnetFailover = True, если это возможно. Сведения о поддержке драйверов для отработки отказа в нескольких подсетях см. в разделе AlwaysOn Client Connectivity .

Создание дополнительного прослушивателя для группы доступности (необязательно)

После создания одного прослушивателя посредством SQL Server можно создать дополнительный прослушиватель следующим образом.

Создайте прослушиватель, используя одно из следующих средств:

Использование диспетчера отказоустойчивого кластера WSFC.

  1. Добавление точки доступа клиента и настройка IP-адреса.

  2. Перевод прослушивателя в режим «в сети».

  3. Добавление зависимости в ресурс группы доступности WSFC.

    Дополнительные сведения о диалоговых окнах и вкладках диспетчера отказоустойчивости кластеров см. в разделе Пользовательский интерфейс: оснастка "Диспетчер отказоустойчивости кластеров".

С помощью Windows PowerShell для отказоустойчивых кластеров.

  1. Используйте командлет Add-ClusterResource , чтобы создать ресурсы сетевого имени и IP-адреса.

  2. Используйте командлет Start-ClusterResource , чтобы запустить ресурс сетевого имени.

  3. Используйте Add-ClusterResourceDependency , чтобы задать зависимость между сетевым именем и существующим ресурсом группы доступности SQL Server.

    Сведения об использовании Windows PowerShell для отказоустойчивых кластеров см. в разделе Общие сведения о командах диспетчера сервера.

Запустите SQL Server для прослушивания нового прослушивателя. После создания дополнительного прослушивателя подключитесь к экземпляру SQL Server, на котором размещается первичная реплика группы доступности, и измените порт прослушивателя с помощью среды SQL Server Management Studio, Transact-SQL или PowerShell.

Дополнительные сведения см. в разделе Способ создания нескольких прослушивателей для одной группы доступности (блог группы разработчиков SQL Server AlwaysOn).