MSSQLSERVER_19419
Si applica a: SQL Server
Dettagli
Attributo | Valore |
---|---|
Nome prodotto | SQL Server |
ID evento | 19419 |
Origine evento | MSSQLSERVER |
Componente | SQLEngine |
Nome simbolico | HADR_AG_LEASE_EXPIRED_WAITING_FOR_RENEW |
Testo del messaggio | Il cluster di failover di Windows Server non ha ricevuto un segnale di evento del processo dal gruppo di disponibilità host di SQL Server '%.*ls' entro il periodo di timeout del lease. |
Spiegazione
L'errore 19419 viene generato nel log degli errori di SQL Server quando il ruolo di lavoro lease sul lato SQL Server non è stato pianificato in tempo per elaborare il segnale di evento dal cluster. In particolare, SQL Server chiama WaitForMultipleObjects() in attesa dell'evento di timeout lease da impostare in uno stato segnalato. Se la funzione restituisce WAIT_OBJECT_0, che indica l'esito positivo, ma entro questa volta il lease è scaduto, viene generato l'errore 19419.
Un lease è un meccanismo di comunicazione basato sul tempo che viene eseguito tra SQL Server e il processo WSFC (Windows Server Failover Cluster), in particolare il processo RHS.EXE. I due processi comunicano periodicamente tra loro per garantire che l'altro processo sia in esecuzione e risponda. Questa comunicazione avviene usando gli oggetti evento di Windows e garantisce che un failover della risorsa del gruppo di disponibilità non venga eseguito senza la conoscenza del cluster WSFC. Se uno dei processi non risponde alla comunicazione leasing in base a un periodo di lease predefinito, si verifica un timeout del leasing. Per informazioni dettagliate, vedere Meccanismo di lease. Vedere anche Funzionamento: Timeout lease AlwaysOn di SQL Server
Questo errore è correlato ad altri errori di timeout del lease e fornisce dettagli più specifici per l'errore MSSQLSERVER_19407
Cause
Poiché gli eventi di Windows sono oggetti di sincronizzazione leggeri, esiste un numero relativamente ridotto di fattori esterni che li influiscono negativamente. I problemi tipici che possono causare il timeout del lease comportano problemi a livello di sistema. Ecco un elenco di possibilità che possono causare la scadenza del lease e causare un riavvio o un failover:
- Utilizzo elevato della CPU nel sistema (vicino al 100%)
- Condizioni di memoria insufficiente: memoria virtuale insufficiente e/o uno dei processi in fase di paging
- Processo di SQL Server che non risponde durante la generazione di un dump di memoria di grandi dimensioni
- WSFC in modalità offline (ad esempio a causa della perdita del quorum)
Il motivo più comune dell'errore 19419 è un utilizzo elevato della CPU, che causa un ritardo nella pianificazione del thread di lavoro di lease.
Azione utente
Controllare l'utilizzo della CPU nel server perché il ruolo di lavoro di lease di SQL Server sembra essere risolto per le risorse della CPU. Lo script di PowerShell seguente consente di diagnosticare rapidamente l'utilizzo della CPU nel sistema.
Get-Counter -Counter "\Processor(_Total)\% Processor Time" -SampleInterval 5 -MaxSamples 30 |
Select-Object -ExpandProperty CounterSamples | Select-Object TimeStamp, Path, CookedValue
Per informazioni dettagliate sulla risoluzione dei problemi, vedere Azione dell'utente in MSSQLSERVER_19407
- Risolvere i problemi di utilizzo elevato della CPU
- Risolvere i problemi di memoria insufficiente
- Ridurre o evitare dump di memoria di grandi dimensioni del processo di SQL Server o del cluster
- Controllare la configurazione della macchina virtuale per il provisioning eccessivo
- Verificare la presenza di migrazione o backup di macchine virtuali che causano problemi