MSSQL Error 19407: Lease between availability group and WSFC has expired — Решение
- В Errorlog:
The lease between availability group 'AG_1C' and the Windows Server Failover Cluster has expired. The timeout was 20000 ms. The lease status was 0. - Происходит внезапный аварийный Failover группы доступности Always On.
- Пользователи 1С отключаются от базы с ошибкой: «Соединение с сервером баз данных разорвано администратором».
- Кластер WSFC переводит ресурс группы в состояние `Failed` или инициирует перезапуск экземпляра SQL Server.
1. Анализ механизма Lease Timeout в Always On
Ресурсная DLL кластера (hadrres.dll) взаимодействует с процессом sqlservr.exe через механизм аренды (Lease mechanism). Если процесс СУБД не успевает продлить аренду за время таймаута (по умолчанию 20 000 мс), кластер считает экземпляр зависшим.
2. Проверка зависаний SQLOS и генерации дампов
-- Проверка активности потока Lease Worker
SELECT
session_id,
status,
wait_type,
wait_time,
last_wait_type
FROM sys.dm_exec_requests
WHERE command LIKE '%LEASE%'
OR command LIKE '%HADR%';3. Увеличение таймаута LeaseTimeout и HealthCheckTimeout
-- Увеличение LeaseTimeout до 40 секунд (40000 ms) для высоконагруженных баз 1С
ALTER AVAILABILITY GROUP [AG_1C]
SET (LEASE_TIMEOUT = 40000);
-- Увеличение времени проверки здоровья (HealthCheckTimeout)
ALTER AVAILABILITY GROUP [AG_1C]
SET (HEALTH_CHECK_TIMEOUT = 60000);4. Анализ системного журнала Cluster.log
# Генерация лога кластера Windows за последние 30 минут
Get-ClusterLog -TimeSpan 30 -Destination "C:\ClusterLogs"Ищите в логе записи: [HADR] Lease renewal thread is unresponsive или Resource SQL Server Availability Group returned failure code.
Частые вопросы (FAQ)
Почему истекает таймаут аренды (Lease Timeout)?
Основные причины: 100% утилизация CPU длительное время, задержки при выгрузке мини-дампов на медленный диск, интенсивный вызов сборщика мусора в сторонних процессах или зависания ввода-вывода (IO stalls).
Как минимизировать влияние сбоя Lease на сеансы 1С?
Используйте балансировку и правильную настройку переподключения в строке подключения 1С (MultiSubnetFailover=True), а также настройте отказоустойчивый кластер серверов 1С с резервированием рабочих процессов.
Влияет ли гипервизор (ballooning, vMotion) на ошибку 19407?
Да, живая миграция (Live Migration / vMotion) с кратковременной 'заморозкой' памяти гостевой ОС (stun time > 1-2 сек) гарантированно приводит к истечению таймаута аренды Always On.
Какое значение LEASE_TIMEOUT является безопасным максимумом?
Рекомендуемый диапазон для тяжелых инсталляций 1С:ERP составляет от 30 000 до 60 000 мс. Установка значений более 100 000 мс не рекомендуется, так как затягивает обнаружение реальных сбоев.