Включение или отключение функции групп доступности Always On

Применимо к: даSQL Server (все поддерживаемые версии)

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

Важно!

При удалении и повторном создании кластера WSFC необходимо отключить и повторно включить функцию Группы доступности AlwaysOn в каждом экземпляре SQL Server , который обеспечил размещение реплики доступности в исходном кластере WSFC.

Необходимые условия включения групп доступности AlwaysOn

  • Экземпляр сервера должен находиться на узле отказоустойчивой кластеризации Windows Server (WSFC).

  • Экземпляр сервера должен работать на выпуске SQL Server, который поддерживает Группы доступности AlwaysOn. Дополнительные сведения см. в разделе Функции, поддерживаемые различными выпусками SQL Server 2016.

  • Группы доступности AlwaysOn нельзя включить на нескольких экземплярах сервера одновременно. После включения групп доступности AlwaysOn подождите, пока служба SQL Server перезапустится, и только после этого включайте следующий экземпляр.

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

Permissions

Когда группы доступности AlwaysOn включены в экземпляре SQL Server, экземпляр сервера имеет полный контроль над кластером WSFC.

Требуется членство в группе Администратор на локальном компьютере и полный контроль над кластером WSFC. При отключении функции AlwaysOn с помощью PowerShell откройте окно командной строки, используя команду Запуск от имени администратора .

Требуются разрешения Active Directory на создание объектов и управление объектами.

Определите, включены ли группы доступности AlwaysOn

Использование среды SQL Server Management Studio

Определите, включены ли группы доступности AlwaysOn

  1. В обозревателе объектов щелкните правой кнопкой мыши экземпляр сервера и выберите команду Свойства.

  2. В диалоговом окне Свойства сервера перейдите на страницу Общие . Свойство HADR включен имеет одно из следующих значений:

    • True, если группы доступности AlwaysOn включены

    • False, если группы доступности AlwaysOn отключены.

Использование Transact-SQL

Определите, включены ли группы доступности AlwaysOn

  1. Используйте следующую инструкцию SERVERPROPERTY :

    SELECT SERVERPROPERTY ('IsHadrEnabled');  
    

    Значение свойства сервера IsHadrEnabled указывает, может ли экземпляр SQL Server входить в группы доступности AlwaysOn следующим образом:

    • Если IsHadrEnabled = 1, это означает, что группы доступности AlwaysOn включены.

    • Если IsHadrEnabled = 0, это означает, что группы доступности AlwaysOn отключены.

    Примечание

    Дополнительные сведения о свойстве сервера IsHadrEnabled см. в разделе SERVERPROPERTY (Transact-SQL).

Использование PowerShell

Определите, включены ли группы доступности AlwaysOn

  1. Установите путь по умолчанию (cd), указывающий на экземпляр сервера, на котором требуется определить, включена ли функция Группы доступности AlwaysOn .

  2. Введите следующую команду PowerShell Get-Item :

    PS SQLSERVER:\SQL\NODE1\DEFAULT> get-item . | select IsHadrEnabled  
    

    Примечание

    Чтобы просмотреть синтаксис командлета, воспользуйтесь командлетом Get-Help в среде PowerShell SQL Server . Дополнительные сведения см. в разделе Get Help SQL Server PowerShell.

Настройка и использование поставщика SQL Server PowerShell

Включение групп доступности AlwaysOn

Включение функции AlwaysOn с помощью:

Использование диспетчера конфигурации SQL Server

Включение функции "Группы доступности AlwaysOn"

  1. Подключитесь к узлу отказоустойчивого кластера Windows Server (WSFC) с экземпляром SQL Server, для которого требуется включить группы доступности Always On.

  2. В меню Пуск последовательно выберите пункты Все программы, Microsoft SQL Server, Средства настройки и Диспетчер конфигурации SQL Server.

  3. В окне Диспетчер конфигурации SQL Server выберите Службы SQL Server, правой кнопкой мыши щелкните SQL Server ( <instance name>) , где <instance name> — имя локального экземпляра сервера, для которого требуется включить группы доступности AlwaysOn, после чего щелкните Свойства.

  4. Перейдите на вкладку Высокий уровень доступности AlwaysOn.

  5. Убедитесь, что поле Имя отказоустойчивого кластера Windows содержит имя локального отказоустойчивого кластера. Если это поле не заполнено, в настоящее время этот экземпляр сервера не поддерживает Группы доступности AlwaysOn. Либо локальный компьютер не является узлом кластера, кластер WSFC завершил работу, либо этот выпуск SQL Server не поддерживает Группы доступности AlwaysOn.

  6. Установите флажок Включить группы доступности AlwaysOn и нажмите кнопку ОК.

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

Использование SQL Server PowerShell

Включение AlwaysOn

  1. Измените каталог (cd) на каталог экземпляра сервера, для которого необходимо включить группы доступности AlwaysOn.

  2. С помощью командлета Enable-SqlAlwaysOn включите группы доступности AlwaysOn.

    Чтобы просмотреть синтаксис командлета, воспользуйтесь командлетом Get-Help в среде PowerShell SQL Server . Дополнительные сведения см. в разделе Get Help SQL Server PowerShell.

    Примечание

    Дополнительные сведения о настройке перезапуска службы SQL Server для командлета Enable-SqlAlwaysOn см. ниже в разделе Когда командлет перезапускает службу SQL Server?

Настройка и использование поставщика SQL Server PowerShell

Пример. Enable-SqlAlwaysOn

Следующая команда PowerShell включает Группы доступности AlwaysOn на экземпляре SQL Server (Computer\Instance).

Enable-SqlAlwaysOn -Path SQLSERVER:\SQL\Computer\Instance  

Отключение групп доступности AlwaysOn

Важно!

Функцию AlwaysOn следует отключать на серверах по одному. После отключения групп доступности AlwaysOn подождите, пока служба SQL Server перезапустится, и только после этого переходите к другому экземпляру.

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

Перед отключением AlwaysOn на экземпляре сервера рекомендуется выполнить следующие действия:

  1. Если на экземпляре сервера в настоящее время размещается первичная реплика группы доступности, которую нужно сохранить, то рекомендуется вручную переключить группу доступности на синхронизированную вторичную реплику, если это возможно. Дополнительные сведения см. в разделе Выполнение запланированного перехода на другой ресурс вручную для группы доступности (SQL Server).

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

Использование диспетчера конфигурации SQL Server

Отключение функции AlwaysOn

  1. Подключитесь к узлу отказоустойчивого кластера Windows Server (WSFC) с экземпляром SQL Server, для которого требуется отключить группы доступности Always On.

  2. В меню Пуск последовательно укажите пункты Все программы, Microsoft SQL Server, Средства настройки и выберите пункт Диспетчер конфигурации SQL Server.

  3. В окне Диспетчер конфигурации SQL Server выберите Службы SQL Server, правой кнопкой мыши щелкните SQL Server ( <instance name>) , где <instance name> — имя локального экземпляра сервера, для которого требуется отключить группы доступности AlwaysOn, после чего щелкните Свойства.

  4. На вкладке Высокий уровень доступности Always On снимите флажок Включить группы доступности Always On и нажмите кнопку ОК.

    SQL Server сохранит изменения и перезапустит службу SQL Server . После перезапуска службы SQL Server функция AlwaysOn будет отключена, а для свойства IsHadrEnabled будет установлено значение 0, указывающее на то, что группы доступности AlwaysOn отключены.

  5. Рекомендуется ознакомиться с пунктом Дальнейшие действия. После отключения Always On далее в этом разделе.

Использование SQL Server PowerShell

Отключение функции AlwaysOn

  1. Измените каталог (cd) на каталог экземпляра сервера, включенного в настоящее время, для которого необходимо отключить группы доступности Always On.

  2. С помощью командлета Disable-SqlAlwaysOn отключите группы доступности AlwaysOn.

    Например, следующая команда отключает группы доступности AlwaysOn в экземпляре SQL Server (Computer\Instance). Эта команда требует перезапуска экземпляра, который будет предложено подтвердить.

    Disable-SqlAlwaysOn -Path SQLSERVER:\SQL\Computer\Instance  
    

    Важно!

    Дополнительные сведения о настройке перезапуска службы SQL Server для командлета Disable-SqlAlwaysOn см. ниже в разделе Когда командлет перезапускает службу SQL Server?.

    Чтобы просмотреть синтаксис командлета, воспользуйтесь командлетом Get-Help в среде PowerShell SQL Server . Дополнительные сведения см. в разделе Get Help SQL Server PowerShell.

Настройка и использование поставщика SQL Server PowerShell

Дальнейшие действия. После отключения Always On

После отключения групп доступности AlwaysOn экземпляр SQL Server необходимо перезапустить. Диспетчер конфигурации SQL Server автоматически перезапускает экземпляр сервера. Но если использовался командлет Disable-SqlAlwaysOn, то потребуется перезапустить экземпляр сервера вручную. Дополнительные сведения см. в статье sqlservr Application.

На перезапущенном экземпляре сервера происходит следующее:

  • базы данных обеспечения доступности не запускаются при запуске сервер SQL Server, из-за чего они становятся недоступными.

  • Единственная поддерживаемая инструкция Transact-SQL AlwaysOn — это DROP AVAILABILITY GROUP. Инструкции CREATE AVAILABILITY GROUP, ALTER AVAILABILITY GROUP и параметры SET HADR инструкции ALTER DATABASE не поддерживаются.

  • SQL Server При отключении групп доступности AlwaysOn метаданные и данные конфигурации Группы доступности AlwaysOn в WSFC не затрагиваются.

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

  1. Если перед отключением AlwaysOn локальные реплики доступности не удалялись, удалите все группы доступности, для которых на экземпляре сервера размещается реплика доступности. Сведения об удалении группы доступности см. в разделе Удаление группы доступности (SQL Server).

  2. Чтобы удалить оставшиеся метаданные, удалите все затронутые группы доступности в экземпляре сервера, который входит в состав исходного кластера WSFC.

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

  4. Базы данных-получатели переводятся в состояние RESTORING. Вы можете либо удалить эти базы данных, либо восстановить их при помощи функции RESTORE WITH RECOVERY. Однако восстановленные базы данных больше не будут участвовать в синхронизации данных группы доступности.

Когда командлет перезапускает службу SQL Server?

В запущенном экземпляре сервера использование командлетов Enable-SqlAlwaysOn или Disable-SqlAlwaysOn для смены текущей настройки функции AlwaysOn может стать причиной перезапуска службы SQL Server. Алгоритм перезапуска зависит от следующих условий:

указан параметр -NoServiceRestart; указан параметр -Force. Перезапущена ли служба SQL Server ?
Нет Нет По умолчанию. Однако командлет выводит следующее сообщение:

Чтобы выполнить это действие, необходимо перезапустить службу SQL Server для экземпляра сервера "<имя_экземпляра>". Продолжить?

[Y] Yes [N] No [S] Suspend [?] Help (значение по умолчанию — "Y"):

Если указать N или S, служба не будет перезапущена.
Нет Да Служба перезапускается.
Да Нет Служба не перезапускается.
Да Да Служба не перезапускается.

См. также:

Обзор групп доступности AlwaysOn (SQL Server)
SERVERPROPERTY (Transact-SQL)