Avamar: il backup e il ripristino multi-stream di SQL potrebbero non riuscire con il messaggio "L'API era in attesa e l'intervallo di timeout era trascorso"
Summary: Quando sei o più flussi eseguono il backup o il ripristino di database di ~1 TB su SQL Server 2017 2019, il processo potrebbe bloccarsi e andare in timeout perché VDI utilizza un conteggio dei semafori anziché SetEvent, causando un deadlock in avsql. ...
Symptoms
Il backup SQL di grandi dimensioni ha esito negativo con più flussi
- Il backup e il ripristino multi-streaming SQL potrebbero avere esito negativo con il seguente errore:
2021-09-16 15:01:54 avsql Error <6478>: VDS::Getconfig failed with 'The api was waiting and the timeout interval had elapsed' 2021-09-16 15:01:54 avsql Error <6478>: VDS::Getconfig failed with 'The api was waiting and the timeout interval had elapsed' 2021-09-16 15:01:54 avsql Error <6478>: VDS::Getconfig failed with 'The api was waiting and the timeout interval had elapsed' 2021-09-16 15:01:54 avsql Error <6479>: Timed out. Was Microsoft SQLServer running? - Tutti i thread avtar generati per il
“avsql stack execution”Non mostra nessun byte di avanzamento. - Il problema si verifica quando sono configurati sei o più flussi per database di circa un terabyte o più.
- Questo problema riguarda gli ambienti Microsoft SQL Server 2017 e 2019. L'esecuzione del backup con un singolo flusso viene completata, ma richiede più tempo.
Cause
Deadlock causato dalla modifica del comportamento della VDI
Questo problema è causato da una modifica nell'implementazione di Microsoft Virtual Device Interface (VDI) per SQL Server 2017 e 2019. In SQL Server 2016, il avsql plug-in utilizzato il SetEvent per segnalare il completamento della configurazione di backup. A partire da SQL Server 2017/2019, il livello VDI utilizza invece un conteggio dei semafori. Quando il multi-streaming è abilitato, il avsql Il componente incrementa il conteggio dei semafori, che lascia il conteggio diverso da zero e crea un deadlock che impedisce il “avsql” thread dall'avanzamento, con conseguente errore di timeout.
- Differenza di comportamento VDI tra SQL 2016 (
SetEvent) e SQL 2017/2019 (semaforo). - Avamar
“avsql”il componente prevede che ilSetEventsemantica. - Il multi-streaming attiva il percorso del codice che modifica il semaforo.
- Il deadlock determina l'assenza di progressi nei thread avtar generati e il messaggio di timeout.
Resolution
Risoluzione permanente
Aggiornare il backup client Avamar e il plug-in SQL alla versione 19.10 o successiva, che include la correzione del codice. Dell consiglia di eseguire l'upgrade alla versione supportata più recente (ad esempio, Avamar 19.12.x) per ottenere le correzioni e i miglioramenti più recenti.
Applicare l'hot-fix cumulativo più recente per la versione installata:
- Per versione 19.10.100-166 HF338875
- Per versione 19.12.100-186 HF953552
Scaricare l'hotfix richiesto dal supporto Dell:
Per ulteriori informazioni, consultare l'articolo Avamar: come trovare e scaricare hotfix, patch o pacchetti di installazione e upgrade dal supporto Dell .