Настройка группы доступности Always On для выполнения отработки отказа, когда файл данных базы данных недоступен

Сводка

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

Если ошибка возникает в файле данных, SQL Server отправляет уведомление о сбое только в отказоустойчивый кластер Windows Server (WSFC) и полагается на него, чтобы принять правильное решение на основе конфигурации политики.

Чтобы настроить Always On группу доступности для выполнения отработки отказа при возникновении ошибок 823 и других, выполните одну из следующих процедур:

Настройка диспетчера отказоустойчивости кластеров

Эта процедура настраивает политику WSFC, чтобы вызвать отработку отказа одному из возможных владельцев вместо попытки перезапуска роли на текущем первичном узле.

  1. Откройте диспетчер отказоустойчивости кластеров.

  2. Разверните кластер и выберите Роли.

  3. Щелкните правой кнопкой мыши роль группы доступности и выберите Свойства>Политики.

  4. Задайте для параметра Максимальное число перезапусков за указанный периодзначение 0.

  5. Установите флажок Если все попытки перезапуска завершаются неудачно, снова начните перезапуск через указанный период (чч:мм) и нажмите кнопку ОК.

  6. Убедитесь, что оба узла являются возможными владельцами и предпочтительными владельцами.

Параметр настраиваемой конфигурации

Эта процедура содержит пример использования механизма оповещения в SQL Server и агент SQL Server для обнаружения ошибки и выполнения отработки отказа.

  1. В SQL Server Management Studio разверните узел агент SQL Server, щелкните правой кнопкой мыши Пункт Оповещения и выберите Создать оповещение....

  2. Укажите значение в поле Имя, выберите SQL Server оповещение о событии в поле Тип, укажите значение числа ошибки823 или любой другой требуемой ошибки в списке, а затем нажмите кнопку ОК.

  3. Выберите Ответ, проверка Выполнить задание, выберите нужное задание и нажмите кнопку ОК.

  4. В диалоговом окне Свойства шага задания укажите значение в поле Имя шага, выберите Операционная система (CmdExec) в поле Тип, а затем выберите агент SQL Server учетная запись службы для параметра Запуск от имени.

  5. Введите следующую команду sqlcmd для отработки отказа:

    sqlcmd -S <SecondaryReplicaName> -U SQLADMIN -P <YourPassword> -Q "ALTER Availability Group <AGName> Failover"

    Примечание.

    <SecondaryReplicaName>, <YourPassword>и <AGName> являются заполнителями. Необходимо изменить его в соответствии со своими средами. Этот скрипт является примером для справки. Полный скрипт должен выполнять другие проверки перед выполнением отработки отказа.