Проблемы
Это обновление включает следующие улучшения для поддержки времени ожидания аренды AlwaysOn в Microsoft SQL Server:
-
Теперь в сообщении Время ожидания аренды отображается и регистрируется текущее и ожидаемое время продления.
-
Добавлено новое сообщение об ошибке для работников аренды, которое четко указывает причину истечения времени ожидания аренды.
-
Добавлено новое расширенное событие и новый кольцевой буфер для арендных рабочих ролей. Они четко указывают этапы аренды.
Решение
Эта проблема была сначала исправлена в следующих пакетах обновления для SQL Server.
Дополнительные сведения о SQL Server 2012 с пакетом обновления 3 (SP3) см. в статье Ошибки, исправленные в SQL Server 2012 с пакетом обновления 3 (SP3).
Пакет обновления 2 (SP2) для SQL Server SQL Server 2014Пакеты обновления для SQL Server Пакеты служб являются накопительными. Каждый новый пакет обновления содержит все исправления, которые были в предыдущих пакетах обновления, а также все новые исправления. Мы рекомендуем применить последний пакет обновления и последнее накопительное обновление для этого пакета обновления. Вам не нужно устанавливать предыдущий пакет обновления перед установкой последнего пакета обновления. Дополнительные сведения о последнем пакете обновления и последнем накопительном обновлении см. в таблице 1 в следующей статье.Определение версии, выпуска и уровня обновления SQL Server и его компонентов
Дополнительная информация
Для получения дополнительных сведений в SQL Server добавлены новые сообщения об ошибках. В следующей таблице перечислены и описаны каждый из них.
|
Ошибка |
Сообщение об ошибке |
Причина |
Корректирующее действие |
|---|---|---|---|
|
19419 |
Возобновление аренды между группой доступности "%.*ls" и Windows Server отказоустойчивого кластера завершилось сбоем, так как существующая аренда больше не действительна. |
Рабочая роль аренды на стороне SQL Server не запланирована вовремя для обработки сигнала о событии из кластера. |
Проверьте загрузку ЦП на сервере, так как SQL Server рабочей роли аренды, кажется, голодает. |
|
19420 |
Группе доступности "%.*ls" явно предлагается остановить продление аренды. |
Продление аренды останавливается в рамках вывода группы доступности в автономный режим. Это только информационные сведения. |
|
|
19421 |
Возобновление аренды между группой доступности "%.*ls" и отказоустойчивого кластера Windows Server завершилось сбоем, так как возобновление не произошло в течение интервала аренды. |
Вспомогатель аренды на стороне кластера не сигнализирует о SQL Server рабочей роли аренды вовремя. |
Проверьте соответствующий ресурс группы доступности в кластере WSFC, чтобы узнать, сообщил ли он об ошибке. |
|
19422 |
Возобновление аренды между группой доступности "%.*ls" и отказоустойчивого кластера Windows Server завершилось сбоем из-за ошибки windows с кодом ошибки (%d). |
Рабочей роли аренды на SQL Server стороне не удалось продлить аренду из-за ошибки windows. |
Проверьте код ошибки Windows и выполните корректирующее действие. |
|
19423 |
Аренда аренды группы доступности "%.*ls" больше не действительна для запуска процесса продления аренды. |
Когда работник аренды начал обрабатывать избыточное время аренды, предоставленное онлайн-вызовом, срок аренды уже истек. Это может произойти из-за проблем с планированием. |
Проверьте загрузку ЦП на сервере, так как SQL Server рабочей роли аренды, кажется, голодает. |
|
19424 |
Работник аренды группы доступности "%.*ls" теперь спит избыточное время аренды (%u мс), предоставленное во время подключения. Это только информационное сообщение. Никаких действий от пользователя не требуется. |
Информационных. Дополнительное оперативное время, отведенное на запуск потока продления аренды и в рамках оперативной процедуры группы доступности. |
Пример ошибки 19419: при использовании отладчика для подключения к SQL Server он прерывает обслуживание потоков в процессе SQL Server, пока не будет возобновлен процесс SQL Server. При возобновлении SQL Server в журнале ошибок SQL Server отображается следующее:
<время даты> сервер ошибка: 19419, серьезность: 16, состояние: 1. <время даты> server Windows Server отказоустойчивый кластер не получил сигнал события процесса от SQL Server размещения группы доступности "ag" в течение периода ожидания аренды. <время даты> сервер ошибка: 19407, серьезность: 16, состояние: 1. <время даты> сервер. Срок аренды между группой доступности "ag" и отказоустойчивого кластера Windows Server истек. Возникла проблема с подключением между экземпляром SQL Server и отказоустойчивого кластера Windows Server. Чтобы определить, правильно ли выполняется отработка отказа группы доступности, проверка соответствующий ресурс группы доступности в отказоустойчивом кластере Windows Server. <время даты> server AlwaysOn. Локальный реплика группы доступности "ag" переключится в автономный режим, так как срок аренды истек или продление аренды не удалось. Это только информационное сообщение. Никаких действий от пользователя не требуется. <время даты> сервер. Состояние локального реплика доступности в группе доступности "ag" изменилось с "PRIMARY_NORMAL" на "RESOLVING_NORMAL". Состояние реплика изменилось из-за запуска, отработки отказа, проблемы с взаимодействием или ошибки кластера. Дополнительные сведения см. на панели мониторинга группы доступности, SQL Server журнал ошибок, Windows Server консоль управления отказоустойчивого кластера или журнал отказоустойчивого кластера Windows Server.
Возвращается ошибка 19419, так как SQL Server не ответила на службу кластера. Вы также можете получить сообщение об ошибке времени ожидания аренды (19407) вместе с ошибкой 19419.Пример ошибки 19424. Ниже приведено сообщение о превышении времени аренды, которое сообщается непосредственно перед переходом группы доступности на роль PRIMARY:
<время даты> server. Работник аренды группы доступности "ag" теперь спит избыточное время аренды (164766 мс), предоставленное в режиме "в сети". Это только информационное сообщение. Никаких действий от пользователя не требуется. <время даты> сервер. Состояние локального реплика доступности в группе доступности "ag" изменилось с "PRIMARY_PENDING" на "PRIMARY_NORMAL". Состояние реплика изменилось из-за запуска, отработки отказа, проблемы с взаимодействием или ошибки кластера. Дополнительные сведения см. на панели мониторинга группы доступности, SQL Server журнал ошибок, Windows Server консоль управления отказоустойчивого кластера или журнал отказоустойчивого кластера Windows Server.
Улучшены availability_group_lease_expired и hadr_ag_lease_renewal XEvents с добавлением точек данных, которые предоставляют дополнительные сведения о состоянии аренды. В следующей таблице описаны улучшения этих XEvents:
|
Xevent |
Новый столбец |
Описание |
|---|---|---|
|
availability_group_lease_expired |
current_time |
Время истечения срока аренды |
|
availability_group_lease_expired |
new_timeout |
Время ожидания, когда возникает availability_group_lease_expired, current_time больше new_timeout |
|
availability_group_lease_expired |
Государства |
Этапы аренды: см. таблицу Этапы аренды ниже. |
|
hadr_ag_lease_renewal |
Государства |
hadr_ag_lease_renewal |
|
hadr_ag_lease_renewal |
error_code |
Если состояние HadrLeaseRenewal_FailedWithWindowsError, error_code — это код ошибки Windows, связанный со сбоем. |
Этапы и определения арендыВ следующей таблице перечислены возможные этапы аренды и описаны их функции.
|
Имя этапа |
Описание |
|---|---|
|
HadrLeaseRenewal_LeaseWorkerStarted |
Запущен рабочий поток аренды. |
|
HadrLeaseRenewal_StartedExcessLeaseSleep |
Начало избыточной аренды. Этапы избыточной аренды документировать начало потока аренды на этапе "в сети" группы доступности. |
|
HadrLeaseRenewal_FailedExcessSleepInvalidOnlineLease |
Если срок аренды уже истек, мы не удаляем излишнюю аренду. |
|
HadrLeaseRenewal_SkipExcessSleep |
Мы пропускаем избыточную аренду, если длительность, доступная для спящего режима, меньше интервала аренды. Нет необходимости проходить через избыточную аренду, просто начать процесс рукопожатия. |
|
HadrLeaseRenewal_ExcessSleepSucceeded |
Превышение аренды выполнено успешно. |
|
HadrLeaseRenewal_RenewSucceeded |
Мы должны видеть это с каждым обновлением. |
|
HadrLeaseRenewal_LeaseNotValid |
Эквивалент ошибки: 19419 Windows Server отказоустойчивый кластер не получил сигнал события процесса от SQL Server размещения группы доступности "%.*ls" в течение периода ожидания аренды. |
|
HadrLeaseRenewal_StopLeaseRenewal |
Это должно отобразиться во время отработки отказа. |
|
HadrLeaseRenewal_LeaseExpired |
Эквивалент ошибки: 19421 SQL Server размещенная группа доступности "%.*ls" не получила сигнал события процесса от Windows Server отказоустойчивого кластера в течение периода ожидания аренды. |
|
HadrLeaseRenewal_FailedWithWindowsError |
Сбой продления аренды из-за ошибки windows. |
Дополнительные сведения см. в разделе Улучшенная диагностика времени ожидания аренды группы доступности AlwaysOn.Дополнительные сведения об истечении времени ожидания аренды см. в разделе How It Works: SQL Server AlwaysOn Lease Timeout.
Статус
Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".