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

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

Важно!

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

Перед началом

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

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

  • Экземпляр сервера должен работать под управлением выпуска SQL Server, поддерживающего Always On группы доступности. Дополнительные сведения см. в разделе Функции, поддерживаемые выпусками SQL Server 2014.

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

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

Безопасность

Хотя группы доступности 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) экземпляр сервера (например, \SQL\NODE1\DEFAULT), на котором нужно определить, включена ли Always On группы доступности.

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

    Get-Item . | Select IsHadrEnabled  
    

    Примечание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Включение функции AlwaysOn

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

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

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

    Примечание

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

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

Пример: Enable-SqlAlwaysOn

Следующая команда PowerShell включает Always On групп доступности в экземпляре SQL Server (экземпляр компьютера\).

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

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

Важно!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Важно!

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

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

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

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

После отключения групп доступности 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 метаданные и данные конфигурации Always On групп доступности в WSFC не затрагиваются отключением групп доступности AlwaysOn.

Если нужно полностью отключить группы доступности 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 для экземпляра сервера "<имя_экземпляра>". "Do you want to continue? (y/n)"

[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"):

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

См. также:

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