Включение или отключение функции групп доступности Always On
Область применения: SQL Server
Включение групп доступности Always On является обязательным условием, чтобы экземпляр сервера мог использовать группы доступности. Перед тем как создавать и настраивать группу доступности, следует включить возможность Always On на каждом экземпляре SQL Server, где будет размещаться реплика доступности для одной или нескольких групп доступности.
Внимание
При удалении и повторном создании кластера WSFC необходимо отключить и повторно включить функцию групп доступности Always On в каждом экземпляре SQL Server, где в исходном кластере WSFC была размещена реплика доступности.
Необходимые компоненты
До версии SQL Server 2017 и Windows Server 2016 экземпляр должен был располагаться на узле отказоустойчивого кластера Windows Server (WSFC), чтобы функция группы доступности Always On работала. Для поддержки групп доступности для чтения и масштабирования начиная с SQL Server 2017 и Windows Server 2016 можно включить функцию групп доступности даже в том случае, если экземпляр SQL Server не располагался в отказоустойчивом кластере Windows Server.
Экземпляр сервера должен запускать выпуск SQL Server, поддерживающий группы доступности AlwaysOn. Дополнительные сведения см. в разделе Функции, поддерживаемые различными выпусками SQL Server 2016.
Группы доступности AlwaysOn нельзя включить на нескольких экземплярах сервера одновременно. После включения групп доступности Always On подождите, пока перезапустится служба SQL Server, и только после этого включайте следующий экземпляр.
Сведения о дополнительных требованиях к созданию и настройке групп доступности см. в статье Предварительные требования, ограничения и рекомендации для групп доступности Always On (SQL Server).
Разрешения
Если в экземпляре SQL Server включены группы доступности Always On, этот экземпляр сервера имеет полный контроль над кластером WSFC.
Требуется членство в группе Администратор на локальном компьютере и полный контроль над кластером WSFC. При отключении функции AlwaysOn с помощью PowerShell откройте окно командной строки, используя команду Запуск от имени администратора .
Требуются разрешения Active Directory на создание объектов и управление объектами.
Определить, включена ли функция
Использование среды SQL Server Management Studio
Определите, включены ли группы доступности AlwaysOn
В обозревателе объектов щелкните правой кнопкой мыши экземпляр сервера и выберите элемент Свойства.
В диалоговом окне Свойства сервера перейдите на страницу Общие . Свойство HADR включен имеет одно из следующих значений:
True, если группы доступности AlwaysOn включены
False, если группы доступности AlwaysOn отключены.
Использование Transact-SQL
Определите, включены ли группы доступности AlwaysOn
Используйте следующую инструкцию SERVERPROPERTY :
SELECT SERVERPROPERTY ('IsHadrEnabled');
Значение свойства сервера IsHadrEnabled указывает, может ли экземпляр SQL Server входить в группы доступности Always On:
Если IsHadrEnabled = 1, это означает, что группы доступности AlwaysOn включены.
Если IsHadrEnabled = 0, это означает, что группы доступности AlwaysOn отключены.
Примечание.
Дополнительные сведения о свойстве сервера IsHadrEnabled см. в статье SERVERPROPERTY (Transact-SQL).
Использование PowerShell
Определите, включены ли группы доступности AlwaysOn
Установите путь по умолчанию (cd), указывающий на экземпляр сервера, на котором требуется определить, включена ли функция групп доступности Always On.
Введите следующую команду PowerShell Get-Item :
PS SQLSERVER:\SQL\NODE1\DEFAULT> get-item . | select IsHadrEnabled
Примечание.
Чтобы просмотреть синтаксис командлета, используйте командлет Get-Help в среде SQL Server PowerShell. Дополнительные сведения см. в разделе Get Help SQL Server PowerShell.
Настройка и использование поставщика SQL Server PowerShell
Включение функции
Включение функции AlwaysOn с помощью:
Использование диспетчера конфигурации SQL Server
Включение функции "Группы доступности AlwaysOn"
Подключитесь к узлу отказоустойчивого кластера Windows Server (WSFC), на котором размещен экземпляр SQL Server, для которого требуется включить группы доступности Always On.
В меню Пуск укажите Все программы, Microsoft SQL Server, Средства настройкии выберите пункт Диспетчер конфигурации SQL Server.
В диспетчере конфигураций SQL Server выберите Службы SQL Server, правой кнопкой мыши щелкните SQL Server (<имя_экземпляра>), где <имя_экземпляра> — это имя локального экземпляра сервера, для которого требуется включить группы доступности Always On, затем щелкните Свойства.
Перейдите на вкладку Высокий уровень доступности AlwaysOn.
Убедитесь, что поле Имя отказоустойчивого кластера Windows содержит имя локального отказоустойчивого кластера. Если это поле не заполнено, значит в настоящее время этот экземпляр сервера не поддерживает группы доступности Always On. Это означает, что локальный компьютер не является узлом кластера, либо кластер WSFC завершил работу, либо этот выпуск SQL Server не поддерживает группы доступности Always On.
Установите флажок Включить группы доступности AlwaysOn и нажмите кнопку ОК.
диспетчер конфигурации SQL Server сохраняет изменения. Затем необходимо вручную перезапустить службу SQL Server. Это позволит выбрать время перезапуска, которое лучше всего подходит под требования вашего предприятия. После перезапуска службы SQL Server функция Always On будет включена, а свойство IsHadrEnabled будет установлено в значение 1.
Использование SQL Server PowerShell
Включение AlwaysOn
Измените каталог (cd) на каталог экземпляра сервера, для которого необходимо включить группы доступности AlwaysOn.
С помощью командлета Enable-SqlAlwaysOn включите группы доступности AlwaysOn.
Чтобы просмотреть синтаксис командлета, используйте командлет Get-Help в среде SQL Server PowerShell. Дополнительные сведения см. в разделе Get Help SQL Server PowerShell.
Примечание.
Дополнительные сведения о настройке перезапуска службы SQL Server для командлета Enable-SqlAlwaysOn см. ниже в разделе Когда командлет перезапускает службу SQL Server?
Настройка и использование поставщика SQL Server PowerShell
Пример: Enable-SqlAlwaysOn
Следующая команда PowerShell включает группы доступности Always On в экземпляре SQL Server (компьютер\экземпляр).
Enable-SqlAlwaysOn -Path SQLSERVER:\SQL\Computer\Instance
Функция отключения
Перед отключением AlwaysOn:
Отключение AlwaysOn с помощью:
Дальнейшие действия: После отключения AlwaysOn
Внимание
Функцию AlwaysOn следует отключать на серверах по одному. После отключения групп доступности Always On подождите, пока перезапустится служба SQL Server, и только после этого отключайте следующий экземпляр.
Рекомендации
Перед отключением AlwaysOn на экземпляре сервера рекомендуется выполнить следующие действия:
Если на экземпляре сервера в настоящее время размещается первичная реплика группы доступности, которую нужно сохранить, то рекомендуется вручную переключить группу доступности на синхронизированную вторичную реплику, если это возможно. Дополнительные сведения см. в статье Выполнение планового перехода на другой ресурс вручную для группы доступности Always On (SQL Server).
Удалите все локальные вторичные реплики. Дополнительные сведения см. в статье Удаление вторичной реплики из группы доступности (SQL Server).
Использование диспетчера конфигурации SQL Server
Отключение функции AlwaysOn
Подключитесь к узлу отказоустойчивого кластера Windows Server (WSFC), на котором размещен экземпляр SQL Server, для которого требуется отключить группы доступности Always On.
В меню Пуск укажите Все программы, Microsoft SQL Server, Средства настройкии выберите пункт Диспетчер конфигурации SQL Server.
В диспетчере конфигураций SQL Server выберите Службы SQL Server, правой кнопкой мыши щелкните SQL Server (<имя_экземпляра>), где <имя_экземпляра> — это имя локального экземпляра сервера, для которого требуется отключить группы доступности Always On, затем щелкните Свойства.
На вкладке Высокий уровень доступности Always Onснимите флажок Включить группы доступности Always On и нажмите кнопку ОК.
Диспетчер конфигурации SQL Server сохранит изменения и перезапустит службу SQL Server. После перезапуска службы SQL Server функция Always On будет отключена, а для свойства IsHadrEnabled будет установлено значение 0, что означает отключение групп доступности Always On.
Рекомендуется ознакомиться с разделом Дальнейшие действия. После отключения AlwaysOnдалее в этой статье.
Использование SQL Server PowerShell
Отключение функции AlwaysOn
Измените каталог (cd) на каталог экземпляра сервера, включенного в настоящее время, для которого необходимо отключить группы доступности Always On.
С помощью командлета Disable-SqlAlwaysOn отключите группы доступности AlwaysOn.
Например, следующая команда отключает группы доступности AlwaysOn в экземпляре SQL Server (Computer\Instance). Эта команда требует перезапуска экземпляра, который будет предложено подтвердить.
Disable-SqlAlwaysOn -Path SQLSERVER:\SQL\Computer\Instance
Внимание
Дополнительные сведения о том, как включить и отключить автоматический перезапуск службы SQL Server при выполнении командлета Disable-SqlAlwaysOn, см. ниже в разделе Когда командлет перезапускает службу SQL Server?.
Чтобы просмотреть синтаксис командлета, используйте командлет Get-Help в среде SQL Server PowerShell. Дополнительные сведения см. в разделе Get Help SQL Server PowerShell.
Настройка и использование поставщика SQL Server PowerShell
Дальнейшие действия. После отключения AlwaysOn
После отключения групп доступности Always On необходимо перезапустить экземпляр SQL Server. Диспетчер конфигурации SQL Server автоматически перезапускает экземпляр сервера. Но если использовался командлет Disable-SqlAlwaysOn, то потребуется перезапустить экземпляр сервера вручную. Дополнительные сведения см. в статье sqlservr Application.
На перезапущенном экземпляре сервера происходит следующее:
базы данных обеспечения доступности не запускаются при запуске сервер SQL Server, из-за чего они становятся недоступными.
Из всех инструкций Transact-SQL для Always On поддерживается только DROP AVAILABILITY GROUP. Инструкции CREATE AVAILABILITY GROUP, ALTER AVAILABILITY GROUP и параметры SET HADR инструкции ALTER DATABASE не поддерживаются.
Отключение групп доступности Always On не затрагивает метаданные и данные конфигурации SQL Server, которые хранятся в WSFC.
Если нужно полностью отключить группы доступности AlwaysOn в каждом экземпляре сервера, где размещается реплика доступности для одной или нескольких групп доступности, то рекомендуется выполнить следующие действия:
Если перед отключением AlwaysOn локальные реплики доступности не удалялись, удалите все группы доступности, для которых на экземпляре сервера размещается реплика доступности. Сведения об удалении группы доступности см. в статье Удаление группы доступности (SQL Server).
Чтобы удалить оставшиеся метаданные, удалите все затронутые группы доступности в экземпляре сервера, который входит в состав исходного кластера WSFC.
Все базы данных-источники остаются доступными для всех подключений, однако синхронизация данных между главной и базами данных-получателями останавливается.
Базы данных-получатели переводятся в состояние RESTORING. Вы можете либо удалить эти базы данных, либо восстановить их при помощи функции RESTORE WITH RECOVERY. Однако восстановленные базы данных больше не будут участвовать в синхронизации данных группы доступности.
Когда командлет перезапускает службу SQL Server?
В запущенном экземпляре сервера использование командлетов Enable-SqlAlwaysOn или Disable-SqlAlwaysOn для смены текущей настройки функции AlwaysOn может стать причиной перезапуска службы SQL Server. Алгоритм перезапуска зависит от следующих условий:
указан параметр -NoServiceRestart; | указан параметр -Force. | Перезапущена ли служба SQL Server? |
---|---|---|
No | No | По умолчанию. Однако командлет выводит следующее сообщение: Чтобы выполнить это действие, необходимо перезапустить службу SQL Server для экземпляра сервера "<имя_экземпляра>". Вы действительно хотите продолжить? [Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): Если указать N или S, служба не будет перезапущена. |
No | Да | Служба перезапускается. |
Да | Нет | Служба не перезапускается. |
Да | Да | Служба не перезапускается. |
См. также
Обзор групп доступности Always On (SQL Server)
SERVERPROPERTY (Transact-SQL)