Бөлісу құралы:


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

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

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

Внимание

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

Предварительные требования

  • В SQL Server 2016 (13.x) экземпляр должен находиться на узле отказоустойчивого кластера Windows Server (WSFC), чтобы включить функцию группы доступности.

  • В SQL Server 2017 (14.x) и более поздних версиях для поддержки групп доступности для чтения можно включить функцию группы доступности, даже если экземпляр SQL Server не находится в отказоустойчивом кластере Windows Server.

  • Экземпляр сервера должен запускать выпуск SQL Server, поддерживающий группы доступности AlwaysOn. Дополнительные сведения см. в выпусках и поддерживаемых функциях SQL Server 2025.

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

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

Разрешения

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

Необходимо быть членом группы администраторов на локальном компьютере и иметь полный контроль над кластером WSFC. Если включить группы доступности с помощью PowerShell, откройте окно командной строки с помощью параметра "Запуск от имени администратора ".

Вам нужны разрешения Active Directory Create Objects and Manage Objects .

Определите, включена ли функция

С помощью SQL Server Management Studio (SSMS), Transact-SQL или PowerShell можно проверить, включена ли функция групп доступности.

Используйте SQL Server Management Studio

  1. В sql Server Management Studio (SSMS) в обозревателе объектов щелкните правой кнопкой мыши экземпляр сервера и выберите свойства.

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

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

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

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

SELECT SERVERPROPERTY('IsHadrEnabled');

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

  • — это , если группы доступности включены.
  • IsHadrEnabled является 0, если группы доступности отключены.

Примечание.

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

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

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

  2. Введите следующую команду PowerShell Get-Item в командной строке SQLSERVER:\SQL\NODE1\DEFAULT :

    Get-Item . | Select-Object IsHadrEnabled
    

    Примечание.

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

Сведения о настройке и использовании поставщика SQL Server PowerShell см. в статье о поставщике SQL Server PowerShell.

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

Вы можете включить функцию групп доступности с помощью SQL Server Management Studio (SSMS) или PowerShell.

Включение с помощью SQL Server Management Studio

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

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

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

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

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

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

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

Включение с помощью PowerShell

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

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

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

    Примечание.

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

Сведения о настройке и использовании поставщика SQL Server PowerShell см. в статье о поставщике SQL Server PowerShell.

Пример: Enable-SqlAlwaysOn

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

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

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

Используйте следующие разделы, чтобы отключить функцию групп доступности с помощью ДИСПЕТЧЕРа конфигурации SQL Server или PowerShell. После завершения операции отключения можно выполнить все необходимые задачи.

Внимание

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

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

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

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

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

Отключение с помощью диспетчера конфигурации SQL Server

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

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

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

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

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

  5. Ознакомьтесь со сведениями в разделе "Дальнейшие действия" далее в этой статье.

Отключение с помощью PowerShell

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

  2. Используйте командлет Disable-SqlAlwaysOn для отключения групп доступности.

    Например, следующая команда отключает группы доступности в экземпляре 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 см. в статье о поставщике SQL Server PowerShell.

Дальнейшие действия после отключения групп доступности

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

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

  • Базы данных доступности не запускают при запуске SQL Server, что делает их недоступными.

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

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

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

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

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

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

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

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

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

-NoServiceRestart указанный параметр -Force указанный параметр Перезапущенная служба SQL Server
Нет Нет По умолчанию. См. раздел "Если указаны оба параметра".
Нет Да Служба перезапускается.
Да Нет Служба не перезапускается.
Да Да Служба не перезапускается.

Если указаны оба параметра

При указании обоих параметров -NoServiceRestart и -Force командлет запрашивает подтверждение (значение по умолчанию — Y):

To complete this action, we must restart the SQL Server service for server instance '<instance_name>'. Do you want to continue?

[Y] Yes [N] No [S] Suspend [?] Help

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