Создание или настройка прослушивателя группы доступности (SQL Server)
В этом разделе описывается создание или настройка одного прослушивателя группы доступности для группы доступности AlwaysOn с помощью среды Среда SQL Server Management Studio, Transact-SQL или PowerShell в SQL Server 2012.
Важно! |
---|
Для создания прослушивателя первой группы доступности настоятельно рекомендуется использовать Среда SQL Server Management Studio, Transact-SQL или Powershell SQL Server. Старайтесь не создавать прослушиватель непосредственно в кластере WSFC, кроме случаев, когда необходимо, например, создать дополнительный прослушиватель. |
Перед началом работы
Существует ли прослушиватель для этой группы доступности?
Ограничения
Рекомендации
Предварительные требования
Требования к имени DNS прослушивателя группы доступности
Разрешения Windows
Разрешения SQL Server
Создание или настройка прослушивателя группы доступности с помощью:
SQL Server Management Studio
Transact-SQL
PowerShell
Устранение неполадок
с невозможностью создать новый прослушиватель группы доступности из-за квот Active Directory
Дополнительная работа. Действия после создания прослушивателя группы доступности
Ключевое слово и связанные функции MultiSubnetFailover
Параметр RegisterAllProvidersIP
Установка значения HostRecordTTL
Образец скрипта PowerShell для отключения RegisterAllProvidersIP и сокращения TTL
Рекомендуемые действия
Создание дополнительного прослушивателя для группы доступности (необязательно)
Перед началом работы
Существует ли прослушиватель для этой группы доступности?
Определение наличия прослушивателя для группы доступности
Примечание |
---|
Если прослушиватель уже существует и нужно создать дополнительный прослушиватель, см. подраздел Создание дополнительного прослушивателя группы доступности (необязательно) далее в этом разделе. |
Ограничения
- С помощью SQL Server вы можете создать только один прослушиватель для каждой группы доступности. Обычно для каждой группы доступности требуется только один прослушиватель. Однако в некоторых сценариях клиента требуется несколько прослушивателей на одну группу доступности. После создания прослушивателя посредством SQL Server для создания дополнительных прослушивателей можно использовать Windows PowerShell для отказоустойчивых кластеров или диспетчер кластера WSFC. Дополнительные сведения см. в подразделе Создание дополнительного прослушивателя для группы доступности (необязательно) далее в этом разделе.
Рекомендации
Для конфигураций с несколькими подсетями рекомендуется статический IP-адрес (но это не обязательно).
Предварительные требования
Необходимо подключиться к экземпляру сервера, на котором размещена первичная реплика.
Если при настройке прослушивателя группы доступности для нескольких подсетей планируется использование статических IP-адресов, то необходимо получить статический IP-адрес каждой подсети, где размещена реплика доступности для группы доступности, для которой создается прослушиватель. Обычно статические IP-адреса можно запросить у сетевого администратора.
Важно! |
---|
Перед созданием первого прослушивателя настоятельно рекомендуется прочитать раздел Возможность подключения клиентов AlwaysOn (SQL Server). |
Требования к имени 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 см. в разделе Присвоение имен доменов. |
Разрешения Windows
Разрешения |
Ссылка |
||
---|---|---|---|
Имя объекта кластера (CNO) кластера WSFC, на котором размещается группа доступности, должно иметь разрешение Create Computer objects. В службе Active Directory имя CNO по умолчанию не имеет явного разрешения Create Computer objects и может создать 10 виртуальных объектов компьютера (VCO). После создания 10 объектов VCO попытка создания дополнительных VCO оканчивается неудачей. Это можно предотвратить, предоставляя явное разрешение для имени CNO кластера WSFC. Необходимо отметить, что удаляемые объекты VCO для групп доступности не удаляются автоматически в службе Active Directory и учитываются при проверке соблюдения заданного по умолчанию предела в 10 объектов VCO, если они не удалены вручную.
|
|
||
Если политика организации требует предварительно настроить учетную запись компьютера для виртуального сетевого имени прослушивателя, потребуется членство в группе Account Operator или помощь администратора домена.
|
Шаги по предварительной настройке учетной записи для кластеризованной службы или приложения из раздела Пошаговое руководство по отказоустойчивому кластеру. Настройка учетных записей в Active Directory. |
[В начало]
Разрешения 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
Совет |
---|
Мастер создания группы доступности поддерживает создание прослушивателя для новой группы доступности. |
Создание или настройка прослушивателя группы доступности
В обозревателе объектов подключитесь к экземпляру сервера, на котором размещена первичная реплика группы доступности, и щелкните имя сервера, чтобы развернуть дерево сервера.
Разверните узел Высокий уровень доступности AlwaysOn и узел Группы доступности.
Щелкните группу доступности, для которой нужно настроить прослушиватель, и выберите одну из следующих альтернатив.
Чтобы создать прослушиватель, щелкните правой кнопкой мыши узел Прослушиватели группы доступности и выберите команду Создать прослушиватель. Откроется диалоговое окно Создать прослушиватель группы доступности. Дополнительные сведения см. в подразделе Добавление прослушивателя группы доступности (диалоговое окно) далее в этом разделе.
Чтобы изменить номер порта существующего прослушивателя, разверните узел Прослушиватели группы доступности, щелкните правой кнопкой мыши прослушиватель и выберите команду Свойства. Введите новый номер порта в поле Порт и нажмите кнопку ОК.
[В начало]
Создание прослушивателя группы доступности (диалоговое окно)
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-адрес
Отображает IP-адрес данной подсети. Для данной подсети статический IP-адрес может быть указан как IPv4 или IPv6.
Добавление
Нажмите, чтобы добавить статический IP-адрес в выбранную подсеть или другую подсеть для этого прослушивателя. Откроется диалоговое окно Добавить IP-адрес. Дополнительные сведения см. в разделе справки Диалоговое окно «Добавление IP-адреса» (SQL Server Management Studio).Удалить
Нажмите, чтобы удалить выбранную подсеть из этого прослушивателя.ОК
Нажмите, чтобы создать указанный прослушиватель группы доступности.
[В начало]
Использование Transact-SQL
Создание или настройка прослушивателя группы доступности
Подключитесь к экземпляру сервера, где размещена первичная реплика.
Используйте параметр LISTENER в инструкции CREATE AVAILABILITY GROUP или параметр ADD ISTENER для инструкции ALTER AVAILABILITY GROUP.
В следующем примере прослушиватель группы доступности добавляется в существующую группу доступности с именем MyAg2. Для этого прослушивателя задается уникальное имя DNS — MyAg2ListenerIvP6. Две реплики находятся в разных подсетях, поэтому согласно рекомендации прослушиватель использует статические IP-адреса. Для каждой из двух реплик доступности предложение WITH IP указывает статический IP-адрес 2001:4898:f0:f00f::cf3c and 2001:4898:e0:f213::4ce2, использующий формат IPv6. В этом примере также указывается и используется необязательный параметр PORT, указывающий порт 60173 в качестве порта прослушивателя.
ALTER AVAILABILITY GROUP MyAg2 ADD LISTENER ‘MyAg2ListenerIvP6’ ( WITH IP ( ('2001:db88:f0:f00f::cf3c'),('2001:4898:e0:f213::4ce2') ) , PORT = 60173 ); GO
Использование PowerShell
Создание или настройка прослушивателя группы доступности
Перейдите в каталог (cd) экземпляра сервера, на котором находится первичная реплика.
Чтобы создать или изменить прослушиватель группы доступности, используйте один из следующих командлетов:
New-SqlAvailabilityGroupListener
Создает прослушиватель группы доступности и привязывает его к существующей группе доступности.Например, следующая команда New-SqlAvailabilityGroupListener создает прослушиватель с именем MyListener для группы доступности MyAg. Этот прослушиватель в качестве виртуального IP-адреса будет использовать адрес IPv4, переданный в параметре -StaticIp.
New-SqlAvailabilityGroupListener -Name MyListener ` -StaticIp '192.168.3.1/255.255.252.0' ` -Path SQLSERVER:\Sql\Computer\Instance\AvailabilityGroups\MyAg
Set-SqlAvailabilityGroupListener
Изменяет порт существующего прослушивателя группы доступности.Например, следующая команда Set-SqlAvailabilityGroupListener устанавливает для прослушивателя группы доступности с именем MyListener номер порта 1535. Этот порт будет использоваться прослушивателем для прослушивания соединения.
Set-SqlAvailabilityGroupListener -Port 1535 ` -Path SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MyAg\AGListeners\MyListener
Add-SqlAGListenerstaticIp
Добавляет статический IP-адрес в конфигурацию существующего прослушивателя группы доступности. IP-адрес может быть адресом IPv4 с подсетью или адресом IPv6.Например, следующая команда Add-SqlAGListenerstaticIp добавляет статический адрес IPv4 в прослушиватель MyListener в группе доступности MyAg. Этот адрес IPv6 выступает в роли виртуального IP-адреса прослушивателя в подсети 255.255.252.0. Если группа доступности распространяется на несколько подсетей, нужно добавить статический IP-адрес для каждой подсети в прослушивателе.
$path = "SQLSERVER:\SQL\PrimaryServer\InstanceName\AvailabilityGroups\MyAg\AGListeners\ MyListener" ` Add-SqlAGListenerstaticIp -Path $path ` -StaticIp "2001:0db8:85a3:0000:0000:8a2e:0370:7334"
Примечание Чтобы просмотреть синтаксис командлета, воспользуйтесь командлетом Get-Help в среде SQL Server PowerShell. Дополнительные сведения см. в разделе Получение справок по SQL Server PowerShell.
Настройка и использование поставщика SQL Server PowerShell
[В начало]
Устранение неполадок
с невозможностью создать новый прослушиватель группы доступности из-за квот 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.5 с пакетом обновления 1 (SP1) или SQL Native Client 11.0 OLEDB, то потенциально 50 % запросов на соединение клиентов с прослушивателем группы доступности исчерпают время ожидания соединения.
Временные решения. Рекомендуется выполнить одну из следующих задач.
При отсутствии разрешения на работу с ресурсами кластера измените время ожидания соединения на 30 секунд (это означает 20 секунд ожидания TCP плюс 10-секундный буфер).
Преимущества. В случае отработки отказа по нескольким подсетям обеспечивается быстрое восстановление клиента.
Недостатки. Установление 50 % соединений клиентов потребует более 20 секунд.
При наличии разрешений на работу с ресурсами кластера рекомендуется задать RegisterAllProvidersIP=0 в качестве сетевого имени прослушивателя группы доступности. Дополнительные сведения см. в подразделе «Установка значения RegisterAllProvidersIP» далее в этом разделе.
Преимущества. Не потребуется увеличивать значение времени ожидания соединения клиента.
Недостатки. При отработке отказа по нескольким подсетям на восстановление клиента может уйти до 15 минут или более в зависимости от значения параметра HostRecordTTL, а также графика междоменной репликации DNS/AD.
Параметр RegisterAllProvidersIP
При создании прослушивателя группы доступности с помощью Среда SQL Server Management Studio, Transact-SQL или Powershell точка доступа клиента в кластере WSFC создается со свойством RegisterAllProvidersIP, установленным в значение 1 (true). Действие этого значения свойства зависит от строки подключения клиента следующим образом.
Строки подключения, устанавливающие свойство MultiSubnetFailover в значение true.
Группы доступности AlwaysOn устанавливает свойство RegisterAllProvidersIP в значение 1, чтобы сократить время соединения после отработки отказа для клиентов, у которых в строке подключения указано MultiSubnetFailover = True согласно рекомендациям. Обратите внимание, что для использования функции нескольких подсетей в прослушивателе поставщик данных клиентов должен поддерживать ключевое слово MultiSubnetFailover. Дополнительные сведения о поддержке драйверов для отработки отказа с несколькими подсетями см. в разделе Возможность подключения клиентов AlwaysOn (SQL Server).
Дополнительные сведения о кластеризации с несколькими подсетями см. в разделе Кластеры SQL Server с несколькими подсетями [SQL Server]
Совет Если RegisterAllProvidersIP = 1, то при запуске мастера WSFC по проверке конфигурации в кластере WSFC мастер выдаст следующее сообщение об ошибке:
«Свойство RegisterAllProviderIP для сетевого имени Name:<network_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 также может увеличить объем трафика на серверы DN.
Образец скрипта PowerShell для отключения RegisterAllProvidersIP и сокращения TTL
В следующем примере для 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
Дополнительные сведения о времени восстановления при отработке отказа см. в разделе Задержка восстановления клиента при отработке отказа.
Рекомендуемые действия
Действия после создания прослушивателя группы доступности
Попросите сетевого администратора зарезервировать IP-адрес, который будет использоваться только этим прослушивателем.
Передайте имя узла DNS прослушивателя разработчикам приложения для использования в строке подключения при запросе клиентских соединений к данной группе доступности.
Рекомендуйте разработчикам добавить в строки подключения MultiSubnetFailover = True, если это возможно. Дополнительные сведения о поддержке драйверов для отработки отказа с несколькими подсетями см. в разделе Возможность подключения клиентов AlwaysOn (SQL Server).
[В начало]
Создание дополнительного прослушивателя для группы доступности (необязательно)
После создания одного прослушивателя посредством SQL Server можно создать дополнительный прослушиватель следующим образом.
Создайте прослушиватель, используя одно из следующих средств:
Использование диспетчера отказоустойчивого кластера WSFC.
Добавление точки доступа клиента и настройка IP-адреса.
Перевод прослушивателя в режим «в сети».
Добавление зависимости в ресурс группы доступности WSFC.
Дополнительные сведения о диалоговых окнах и вкладках диспетчера отказоустойчивости кластеров см. в разделе Пользовательский интерфейс: оснастка «Диспетчер отказоустойчивости кластеров».
С помощью Windows PowerShell для отказоустойчивых кластеров.
Используйте функцию Add-ClusterResource, чтобы создать ресурсы сетевого имени и IP-адреса.
Используйте функцию Start-ClusterResource, чтобы запустить ресурс сетевого имени.
Используйте функцию Add-ClusterResourceDependency, чтобы задать зависимости между сетевым именем и существующим ресурсом группы доступности SQL Server.
Сведения об использовании Windows PowerShell для отказоустойчивых кластеров см. в разделе Общие сведения о командах диспетчера сервера.
Запустите прослушивание SQL Server в новом прослушивателе. После создания дополнительного прослушивателя подключитесь к экземпляру SQL Server, на котором размещается первичная реплика группы доступности, и измените порт прослушивателя с помощью среды Среда SQL Server Management Studio, Transact-SQL или PowerShell.
Дополнительные сведения см. в разделе Способ создания нескольких прослушивателей для одной группы доступности (блог группы разработчиков SQL Server AlwaysOn).
Связанные задачи
См. также
[В начало]