Симптоми
Тази актуализация включва следните подобрения за Поддръжка на времето на изчакване на Microsoft SQL Server AlwaysOn lease:
-
Съобщението Време на изчакване за лизинг сега се показва и регистрира текущото време и очакваното време за подновяване.
-
Добавено е ново съобщение за грешка за лизингови работници, което ясно посочва причината за времето на изчакване за лизинг.
-
Добавено е ново разширено събитие и нов буфер за лизингови работници. Те ясно посочват етапите на лизинга.
Решение
Първо проблемът беше коригиран в следващите сервизни пакети за SQL Server.
За повече информация относно SQL Server 2012 Service Pack 3 (SP3) вижте грешки, които са коригирани в SQL Server 2012 Service Pack 3.
Service Pack 2 за SQL Server за SQL Server 2014За сервизните пакети за пакетите на SQL Server Service са кумулативни. Всеки нов сервизен пакет съдържа всички корекции, които са в предишни сервизни пакети, заедно с всички нови корекции. Нашата препоръка е да приложите най-новия сервизен пакет и най-новата кумулативна актуализация за този сервизен пакет. Не е необходимо да инсталирате предишен сервизен пакет, преди да инсталирате най-новия сервизен пакет. Използвайте таблица 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 ms), предоставено онлайн. Това е само информационно съобщение. Не се изисква действие от потребителя. |
Информационна. Допълнително онлайн време, определено за стартиране на нишката за подновяване на лизинг и като част от онлайн рутината на групата за достъпност. |
Пример за грешка 19419: Ако използвате дебъгер за прикачване към SQL Server, това прекъсва обслужването на нишките в процеса на SQL Server, докато не възобновите процеса на SQL Server. Когато възобновите SQL Server, следното се съобщава в регистрационния файл на SQL Server грешки:
<дата час> сървър грешка: 19419, тежест: 16, състояние: 1. <date Time> Server Windows Server failover Cluster не получи сигнал за събитие на процес от SQL Server група за достъпност на хостинг "ag" в рамките на периода на изчакване за лизинг. <дата час> сървър грешка: 19407, тежест: 16, състояние: 1. <дата и час> Server Лизингът между група за достъпност "ag" и Windows Server клъстер за преместване при отказ е изтекъл. Възникна проблем със свързването между екземпляра на SQL Server и клъстера за преместване при отказ на Windows Server. За да определите дали групата за достъпност е неуспешна правилно, проверете съответния ресурс на група за наличност в Windows Server клъстер за преместване при отказ. <Date Time> Server AlwaysOn: Локалната реплика на групата за достъпност "ag" преминава офлайн, защото лизингът е изтекъл или подновяването на лизинга е неуспешно. Това е само информационно съобщение. Не се изисква действие от потребителя. <Date Time> Server Състоянието на локалната реплика за достъпност в групата за достъпност ag е променено от "PRIMARY_NORMAL" на "RESOLVING_NORMAL". Състоянието на репликата е променено поради стартиране, преместване при отказ, комуникационен проблем или грешка в клъстера. За повече информация вж. таблото на групата за достъпност, регистрационния файл за грешки SQL Server, Windows Server конзолата за управление на клъстер за преместване при отказ или регистрационния файл на клъстера за преместване при отказ Windows Server.
Грешката 19419 се връща, защото SQL Server не е отговорил на клъстерната услуга. Може също да получите съобщение за грешка за изтичане на времето на изчакване за лизинг (19407) заедно с грешката 19419.Пример за грешка 19424: По-долу е съобщението за излишно време за лизинг, което се съобщава точно преди групата за достъпност преход към основна роля:
<Дата и час> Server Работникът по лизинга на групата за достъпност "ag" сега свива излишното време за лизинг (164766 мсек),предоставено онлайн. Това е само информационно съобщение. Не се изисква действие от потребителя. <Date Time> Server Състоянието на локалната реплика за достъпност в групата за достъпност 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.За повече информация за времето на изчакване за лизинг вижте Как работи: SQL Server Време на изчакване alwaysOn на лизинг.
Статут
Microsoft потвърди, че това е проблем в продуктите на Microsoft, които са изброени в раздела "Отнася се за".