Sintomi

Questo aggiornamento include i miglioramenti seguenti per la supportabilità del timeout di lease di Microsoft SQL Server AlwaysOn:

  • Il messaggio timeout lease ora Visualizza e registra l'ora corrente e il tempo di rinnovo previsto.

  • È stato aggiunto un nuovo messaggio di errore per i lavoratori di lease che indicano chiaramente il motivo del timeout del lease.

  • È stato aggiunto un nuovo evento esteso e un nuovo buffer circolare per i lavoratori di lease. Questi indicano chiaramente le fasi di lease.

Risoluzione

Il problema è stato risolto per la prima volta nei Service Pack seguenti per SQL Server.

Per altre informazioni su SQL Server 2012 Service Pack 3 (SP3), vedere bug corretti in SQL server 2012 Service Pack 3.

Service Pack 2 per SQL Server per SQL Server 2014Informazioni sui Service Pack per SQL ServerI Service Pack sono cumulativi. Ogni nuovo Service Pack contiene tutte le correzioni che si trovano nei Service Pack precedenti, insieme a tutte le nuove correzioni. La nostra raccomandazione consiste nell'applicare il Service Pack più recente e l'ultimo aggiornamento cumulativo per tale Service Pack. Non è necessario installare un Service Pack precedente prima di installare il Service Pack più recente. Usare la tabella 1 nell'articolo seguente per trovare altre informazioni sul Service Pack più recente e l'ultimo aggiornamento cumulativo.Come determinare il livello di versione, edizione e aggiornamento di SQL Server e i relativi componenti

Ulteriori informazioni

Per ottenere ulteriori informazioni, sono stati aggiunti nuovi messaggi di errore a SQL Server. La tabella seguente elenca e spiega ognuno di essi.

Errore

Messaggio di errore

Causa

Azione correttiva

19419

Il rinnovo del lease tra il gruppo di disponibilità "%. * ls" e il cluster di failover di Windows Server non è riuscito perché il lease esistente non è più valido.

L'operatore di lease sul lato di SQL Server non è stato programmato in tempo per elaborare il segnale dell'evento dal cluster.

Verificare che l'utilizzo della CPU sul server come lavoratore di lease di SQL Server sembri affamato.

19420

Il gruppo di disponibilità '%. * ls ' viene chiesto esplicitamente di interrompere il rinnovo del lease.

Il rinnovo del lease si arresta come parte del passaggio del gruppo di disponibilità. Questo è solo informativo.

19421

Il rinnovo del lease tra il gruppo di disponibilità "%. * ls" e il cluster di failover di Windows Server non è riuscito perché il rinnovo non è avvenuto nell'intervallo di lease.

L'helper del lease sul lato del cluster non ha segnalato l'orario di lavoro di lease di SQL Server.

Controlla la risorsa del gruppo di disponibilità corrispondente nel cluster WSFC per verificare se è stato segnalato un errore.

19422

Il rinnovo del lease tra il gruppo di disponibilità "%. * ls" e il cluster di failover di Windows Server non è riuscito a causa di un errore di Windows con codice di errore ("% d").

L'operatore di lease in SQL Server Side non è riuscito a rinnovare il lease a causa di un errore di Windows.

Controllare il codice di errore di Windows e eseguire l'azione correttiva.

19423

Il lease del gruppo di disponibilità "%. * ls" non è più valido per avviare il processo di rinnovo del lease.

Quando il lavoratore lease ha iniziato a elaborare il tempo di locazione in eccesso fornito dalla chiamata online, il lease era già scaduto. Questo potrebbe accadere a causa di problemi di pianificazione.

Verificare che l'utilizzo della CPU sul server come lavoratore di lease di SQL Server sembri affamato.

19424

Il lease worker of Availability Group '%. * ls ' sta ora dormendo il tempo di locazione in eccesso (% u MS) fornito durante online. Si tratta solo di un messaggio informativo. Non è necessaria alcuna azione per l'utente.

Informativo. Tempo extra online assegnato ad avviare il thread di rinnovo del lease e come parte della routine di gruppo disponibilità online.

Esempio di errore 19419: Se si usa un debugger per la connessione a SQL Server, interrompe la manutenzione dei thread nel processo di SQL Server fino a quando non viene ripreso il processo di SQL Server. Quando si riprende SQL Server, il log degli errori di SQL Server seguente viene segnalato:

<data/ora> Errore del server: 19419, gravità: 16, stato: 1. <data/ora> Il cluster di failover del server Windows Server non ha ricevuto un segnale di evento processo dal gruppo di disponibilità hosting di SQL Server ' AG ' entro il periodo di timeout del lease. <data/ora> Errore del server: 19407, gravità: 16, stato: 1. <data/ora> Server il lease tra il gruppo di disponibilità "AG" e il cluster di failover di Windows Server è scaduto. Si è verificato un problema di connettività tra l'istanza di SQL Server e il cluster di failover di Windows Server. Per determinare se il gruppo di disponibilità non riesce correttamente, controllare la risorsa del gruppo di disponibilità corrispondente nel cluster di failover di Windows Server. <data/ora> Server AlwaysOn: la replica locale del gruppo di disponibilità' AG ' sta per essere offline perché il lease è scaduto o il rinnovo del lease non è riuscito. Si tratta solo di un messaggio informativo. Non è necessaria alcuna azione per l'utente. <data/ora> Server lo stato della replica di disponibilità locale nel gruppo di disponibilità "AG" è stato modificato da "PRIMARY_NORMAL" a "RESOLVING_NORMAL". Lo stato di replica è stato modificato a causa di un avvio, di un failover, di un problema di comunicazione o di un errore del cluster. Per altre informazioni, vedere il dashboard del gruppo di disponibilità, il log degli errori di SQL Server, la console di gestione cluster di failover di Windows Server o il log cluster di failover di Windows Server.

Viene restituito l'errore 19419 perché SQL Server non ha risposto al servizio cluster. È anche possibile ricevere un messaggio di errore di timeout del lease (19407) insieme all'errore 19419.Esempio di errore 19424: di seguito è riportato il messaggio relativo al tempo di lease in eccesso segnalato appena prima del passaggio del gruppo di disponibilità al ruolo primario:

<data/ora> Server il lease worker of Availability Group ' AG ' sta ora dormendo il tempo di locazione in eccesso (164766 MS) fornito durante online. Si tratta solo di un messaggio informativo. Non è necessaria alcuna azione per l'utente. <data/ora> Server lo stato della replica di disponibilità locale nel gruppo di disponibilità "AG" è stato modificato da "PRIMARY_PENDING" a "PRIMARY_NORMAL". Lo stato di replica è stato modificato a causa di un avvio, di un failover, di un problema di comunicazione o di un errore del cluster. Per altre informazioni, vedere il dashboard del gruppo di disponibilità, il log degli errori di SQL Server, la console di gestione cluster di failover di Windows Server o il log cluster di failover di Windows Server.

Le availability_group_lease_expired e le hadr_ag_lease_renewal Xevents sono state migliorate, con l'aggiunta di punti dati che contengono ulteriori informazioni sulle condizioni del lease. La tabella seguente descrive i miglioramenti apportati a queste XEvents:

XEvent

Nuova colonna

Descrizione

availability_group_lease_expired

current_time

Ora di scadenza del lease

availability_group_lease_expired

new_timeout

Tempo di timeout, quando viene generato availability_group_lease_expired, current_time è maggiore di new_timeout

availability_group_lease_expired

stato

Fasi di lease: vedere la tabella fasi di lease seguente

hadr_ag_lease_renewal

stato

hadr_ag_lease_renewal

hadr_ag_lease_renewal

error_code

Se lo stato è HadrLeaseRenewal_FailedWithWindowsError quindi error_code è il codice di errore di Windows associato all'errore

Fasi e definizioni di leaseLa tabella seguente elenca le possibili fasi di lease e spiega le relative funzioni:

Nome della fase

Descrizione

HadrLeaseRenewal_LeaseWorkerStarted

Thread di lease Worker iniziato.

HadrLeaseRenewal_StartedExcessLeaseSleep

Inizio del lease in eccesso. Le fasi di lease in eccesso documentano l'avvio del thread di lease durante la fase online del gruppo di disponibilità.

HadrLeaseRenewal_FailedExcessSleepInvalidOnlineLease

Il lease in eccesso non viene superato se il lease è già scaduto.

HadrLeaseRenewal_SkipExcessSleep

Saltiamo il lease in eccesso se la durata disponibile per il sonno è minore dell'intervallo di lease. Non c'è bisogno di passare attraverso il contratto di locazione in eccesso basta avviare il processo di scuotimento delle mani.

HadrLeaseRenewal_ExcessSleepSucceeded

Lease in eccesso riuscito.

HadrLeaseRenewal_RenewSucceeded

Dovremmo vedere questo con ogni rinnovo.

HadrLeaseRenewal_LeaseNotValid

Equivalente a errore: il cluster di failover del server 19419Windows non ha ricevuto un segnale di evento processo dal gruppo di disponibilità di hosting di SQL Server '%. * ls ' entro il periodo di timeout del lease.

HadrLeaseRenewal_StopLeaseRenewal

Dovrebbe essere visualizzato durante un evento di failover.

HadrLeaseRenewal_LeaseExpired

Equivalente a errore: il gruppo di disponibilità di hosting del server 19421SQL '%. * ls ' non ha ricevuto un segnale evento processo dal cluster di failover di Windows Server entro il periodo di timeout del lease.

HadrLeaseRenewal_FailedWithWindowsError

Il rinnovo del lease non è riuscito a causa di un errore di Windows.

Per altre informazioni, vedere diagnostica di timeout del lease del gruppo di disponibilità AlwaysOn migliorata. Per altre informazioni sul timeout del lease, vedere funzionamento : timeout del lease di SQL Server AlwaysOn.

Stato

Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".

Serve aiuto?

Amplia le tue competenze
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa a Microsoft Insider

Queste informazioni sono risultate utili?

Come valuti la qualità della lingua?
Cosa ha influito sulla tua esperienza?

Grazie per il feedback!

×