Avamar:SQL 备份已完成,但有错误或异常。

Summary: 使用 SQL 插件的 Avamar 备份已完成,但出现异常或错误。995 I/O作已中止,因为线程退出或应用程序请求或作系统错误0x8007000e。(没有足够的存储空间来完成此作。)

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 插件的 Avamar 备份已完成,但存在可在 Avamar 日志和 Windows 应用程序日志中看到的异常。
  • 适用于 SQL Server 的 Windows 应用程序日志。  
10/9/2013 10:33:24 PM MSSQLSERVER Error Backup  3041 NT AUTHORITY\SYSTEM RFSQL03 BACKUP failed to complete the command BACKUP DATABASE ASAP. Check the backup application log for detailed messages. 10/9/2013 10:33:24 PM MSSQLSERVER Error Server  18210 NT AUTHORITY\SYSTEM RFSQL03 BackupVirtualDeviceSet::SetBufferParms: Request large buffers failure on backup device '(local)_ASAP_db_sched-sql_backup-1381372200061#12-3006-SQL'. Operating system error 0x8007000e(Not enough storage is available to complete this operation.).
  • Avamar SQL 日志
2013-12-17 22:08:23 avsql Error <9072>: sqlconnectimpl_smo::execute Microsoft.SqlServer.Management.Common.ExecutionFailureException: An exception occurred while executing a Transact-SQL statement or batch. ---> System.Data.SqlClient.SqlException: Write on "(local)_TMEngine_8PM-BACKUP-SQL-1387332000116#1-3006-SQL" failed: 112 (There is not enough space on the disk.)
  • 下面列出的文件上发生不可恢复的 I/O 错误。
 "(local)_TMEngine_8PM-DATACAPAPP01-SQL-1387332000116#1-3006-SQL:" 995(The I/O operation has been aborted because of either a thread exit or an application request.). 
BACKUP DATABASE is terminating abnormally.


 

Cause

在备份过程中观察到高内存和 CPU 使用率。发生上述故障是因为 avsql 尝试使用 SQLVDI 接口 API(共享或静态库)从 SQL Server 读取数据。在正常情况下,此过程假定在传输期间成功为分段共享分配内存。SQLVDI 接口上的数据传输失败,avsql 会记录一条消息,并在插件关闭过程中断开通往 avtar 的管道。第一步是通过运行以下 Transact-SQL (TSQL) 查询来验证 SQL 可用内存:

以下 TSQL 查询可检查总作系统内存和可用内存:

SELECT

(total_physical_memory_kb/1024) AS Total_OS_Memory_MB,

(available_physical_memory_kb/1024)  AS Available_OS_Memory_MB

FROM sys.dm_os_sys_memory;

下面是用于检查 SQL Server 在 Avamar 备份运行期间使用的内存的查询:

SELECT 

(physical_memory_in_use_kb/1024) AS Memory_used_by_Sqlserver_MB, 

(locked_page_allocations_kb/1024) AS Locked_pages_used_by_Sqlserver_MB, 

(total_virtual_address_space_kb/1024) AS Total_VAS_in_MB,

process_physical_memory_low, 

process_virtual_memory_low 

FROM sys.dm_os_process_memory; 

至少应有 20% 或更多的可用内存,以便 Avamar 备份正常运行。默认情况下,SQL Server 使用最多的可用内存资源。必须将其配置为限制为 SQL作分配的内存量,以确保最佳性能。

这些故障的其他已知原因是: 

  1. MAXTRANSFERSIZE 在 Avamar 7.0 中更改为 4 MB,即使在 maxtransfer 为 64 KB 的情况下,我们也会看到此故障:
    1. https://www.dell.com/community/en/conversations/avamar/avamar-sql-client-error-there-is-not-enough-space-on-the-disk/647f31b1f4ccf8a8de7de8cf
  2. 此错误通常表示磁盘空间不足,特别是在恢复作期间。例如,记录的故障可能会显示:
 2024/05/01-18:25:39.60800 [avsql_t0]  ===> avsql_avtarpipe_ctl::wait
2024/05/01-18:25:39.60899 [sqlcommand restore(FxCentral)]  Caught Exception : Microsoft.SqlServer.Management.Common.ExecutionFailureException: An exception occurred while executing a Transact-SQL statement or batch. ---> System.Data.SqlClient.SqlException: There is insufficient free space on disk volume 'H:\' to create the database. The database requires 870622363648 additional free bytes, while only 140103278592 bytes are available
  1. 根据 Pinal Dave (https://blog.sqlauthority.com/2016/04/14/sql-server-backup-randomly-failing-error-112-not-enough-space-disk/) (外部网站)
    1. 压缩数据库的 SQL 备份大小在开始时和结束时会有所不同,这种差异可能会导致此故障
  2. 通过设置下面的 avsql 标记来更改 MAXTRANSFERSIZE 时,尤其是对于大型数据库备份,尤其如此  
avsql flag : —max-transfer-size=65536
  1. 在 avsql 报告连接故障后出现故障,如下面的代码片段所示: 
2020-11-03 15:32:36 avsql Info <10684>: Setting ctl message version to 3 (from 1)
2020-11-03 15:32:36 avsql Info <16136>: Setting ctl max message size to 268435456
2020-11-03 15:32:38 avsql Info <6688>: Process 9540 (C:\Program Files\avs\bin\avtar) finished (code 536870920: cannot establish connection with server (possible network or DNS failure))
2020-11-03 15:32:38 avsql Warning <6690>: CTL workorder "NAH-1604435554526#1" non-zero exit status 'code 536870920: cannot establish connection with server (possible network or DNS failure)'
2020-11-03 15:32:38 avsql Info <7732>: Waiting for avtar to finish
2020-11-03 15:32:38 avsql Info <6444>: Plugin exited with 'code 536870920: cannot establish connection with server (possible network or DNS failure)'
2020-11-03 15:32:38 avsql Error <18491>: SQL plug-in will now terminate due to the following avtar error: 'code 536870920: cannot establish connection with server (possible network or DNS failure)'
2020-11-03 15:32:38 avsql Info <6446>: SQL VDI transfer of 'sql_111\spd/SPMonitoring/f-0.SPMonitoring' to 'sql_111_spd_SPMonitoring_NAH-1604435554526-3006-SQL' successful
2020-11-03 15:32:38 avsql Error <40258>: sqlconnectimpl_smo::execute Microsoft.SqlServer.Management.Common.ExecutionFailureException: An exception occurred while executing a Transact-SQL statement or batch. ---> System.Data.SqlClient.SqlException: Write on "lfosat993_csotspd_SPMonitoring_NAH-1604435554526-3006-SQL" failed: 112(There is not enough space on the disk.)
    1. 除了缓解这些症状之外,将“vditransfertimeoutsecs”设置为较大的值可避免 avtar 管道连接超时

Resolution

解决办法:

使用以下方法之一在 MCGUI 数据集或 avsql.cmd 文件中添加标志:

  • 方法#1 - 添加到数据集
    • SQL 插件的数据集中添加以下标志
    • NOTE: 两个标志都必须具有前导“[avsql]”
[avsql]max-transfer-size=65536
[avsql]vditransfertimeoutsecs=10800
  • 方法#2 - 添加到avsql.cmd文件
    • 将以下标志添加到 C:\Program Files\avs\var\avsql.cmd 文件
--max-transfer-size=65536
--vditransfertimeoutsecs=10800
    • NOTE: 在某些情况下,大型虚拟机可能需要较大的超时标记值:
  • 方法#3 - 从 Config Manager(已启用选项)禁用并重新启用协议“Shared Memory”、“Named Pipes”和“TCP/IP”。这需要重新启动 SQL Server:

配置管理器中的“TCP IP 属性”选项卡

 

Affected Products

Avamar Plug-in for SQL

Products

Avamar, Avamar Plug-in
Article Properties
Article Number: 000078628
Article Type: Solution
Last Modified: 25 Feb 2025
Version:  3
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.