Avamar. Может произойти сбой многопоточного резервного копирования и восстановления SQL с сообщением «Выполняется ожидание API, и истек интервал ожидания»
Summary: При резервном копировании или восстановлении баз данных размером ~1 Тбайт в SQL Server 2017 2019 шести или более потоков задание может приостановиться и истечь время ожидания, так как инфраструктура виртуальных рабочих столов использует счетчик семафоров вместо SetEvent, что приводит к взаимоблокировке в avsql. ...
Symptoms
Сбой резервного копирования больших SQL с несколькими потоками
- Может произойти сбой многопотокового резервного копирования и восстановления SQL со следующей ошибкой:
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? - Все порожденные потоки avtar для
“avsql stack execution”Байты выполнения не отображаются. - Эта проблема возникает, когда шесть или более потоков настроены для баз данных размером приблизительно один терабайт или больше.
- Эта проблема затрагивает среды Microsoft SQL Server 2017 и 2019. Запуск резервного копирования с одним потоком завершается, но занимает больше времени.
Cause
Взаимоблокировка, вызванная изменением поведения VDI
Эта проблема вызвана изменением в реализации интерфейса виртуальных устройств (VDI) Microsoft для SQL Server 2017 и 2019. В SQL Server 2016 метод avsql плагин использовал свойство SetEvent сигнализирует о завершении настройки резервного копирования. Начиная с SQL Server 2017/2019, на уровне VDI вместо этого используется счетчик семафоров. Если включена многопотоковая передача, avsql увеличивает счетчик семафоров, в результате чего счетчик становится ненулевым и создает взаимоблокировку, предотвращающую “avsql” потоки не выполняются, что приводит к ошибке тайм-аута.
- Различия в поведении VDI в SQL 2016 (
SetEvent) и SQL 2017/2019 (семафор). - Avamar
“avsql”ожидает, чтоSetEventсемантика. - Многопотоковая передача активирует путь кода, который манипулирует семафором.
- Взаимоблокировка приводит к отсутствию хода выполнения порожденных потоков avtar и появлению сообщения об истечении времени ожидания.
Resolution
Постоянное решение
Обновите клиент резервного копирования Avamar и подключаемый модуль SQL до версии 19.10 или более поздней, которая включает исправление кода. Dell рекомендует выполнить обновление до последней поддерживаемой версии (например, Avamar 19.12.x), чтобы получить последние исправления и улучшения.
Примените последнее накопительное исправление для установленной версии:
- Для версии 19.10.100-166 HF338875
- Для версии 19.12.100-186 HF953552
Скачайте необходимое оперативное исправление со страницы службы поддержки Dell:
Дополнительные сведения см. в статье Avamar: как найти и скачать исправления, исправления или пакет установки и модернизации с веб-сайта Dell Support .