Avamar:SQL 多重串流備份和還原可能會失敗,並顯示「api 正在等待且逾時間隔已過」
Summary: 當六個或更多流在 SQL Server 2017 2019 上備份或還原 ~1 TB 資料庫時,作業可能會停止並超時,因為 VDI 使用信號量計數而不是 SetEvent,從而導致 avsql 中的死鎖。
This article applies to
This article does not apply to
This article is not tied to any specific product.
Not all product versions are identified in this article.
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”不顯示進度位元組。 - 當為大約 1 TB 或更大的資料庫配置了六個或更多流時,會出現此問題。
- 此問題會影響Microsoft SQL Server 2017 和 2019 環境。使用單一串流執行備份會完成,但需要較長時間。
Cause
VDI 行為變更造成的死鎖
此問題是由 SQL Server 2017 和 2019 的 Microsoft 虛擬裝置介面 (VDI) 實作變更所造成。在 SQL Server 2016 中, avsql 已使用附掛程式 SetEvent 參數以表示備份組態完成。從 SQL Server 2017/2019 開始,VDI 層會改用信號量計數。啟用多重串流後, avsql 元件遞增信號量計數,使計數不為零併產生死鎖,從而防止 “avsql” 執行緒無法進行,導致逾時錯誤。
- SQL 2016 之間的 VDI 行為差異 (
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 支援尋找和下載 hotfix、修補程式或安裝與升級套件 。
Affected Products
AvamarArticle Properties
Article Number: 000200834
Article Type: Solution
Last Modified: 21 Sep 2026
Version: 7
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.