Avamar: El respaldo de SQL se completó con errores o excepciones.
Resumen: El respaldo de Avamar mediante el plug-in de SQL se completó con excepciones o errores. 995 la operación de I/O se anuló debido a una salida del subproceso, una solicitud de aplicación o un error del sistema operativo 0x8007000e. (No hay suficiente almacenamiento disponible para completar esta operación). ...
Síntomas
- Registros de aplicaciones de Windows para SQL Server.
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.).
- Registros SQL de Avamar
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.)
- Se produjo un error de I/O irrecuperable en el archivo que se indica a continuación.
"(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.Causa
Se observó un alto uso de memoria y CPU durante el proceso de respaldo. La falla anterior se produce debido a que avsql está intentando usar el comando SQLVDI API de interfaz (una biblioteca, ya sea compartida o estática) para leer datos de SQL Server. En condiciones normales, este proceso supone que la asignación de memoria para el uso compartido de segmentos durante la transferencia se realizó correctamente. La transferencia de datos en el SQLVDI falla la interfaz, avsql registra un mensaje y rompe la canalización a avtar durante el proceso de apagado del plug-in. El primer paso es validar la memoria disponible de SQL mediante la ejecución de lo siguiente Transact-SQL (TSQL) consultas:
Siguiendo TSQL Consulta para comprobar la memoria total del SO y la memoria disponible:
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;
Esta es la consulta para comprobar la memoria consumida por SQL Server durante la ejecución del respaldo de 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;
Debe haber al menos un 20 % o más de memoria libre para que los respaldos de Avamar se ejecuten correctamente. De forma predeterminada, SQL Server consume la mayoría de los recursos de memoria disponibles. Se debe configurar para limitar la cantidad de memoria asignada a las operaciones de SQL a fin de garantizar un rendimiento óptimo.
Las otras razones conocidas para estas fallas son las siguientes:
MAXTRANSFERSIZEse cambió a 4 MB en Avamar 7.0 y esta falla se muestra incluso dondemaxtransferantes 64 KB:- Este error suele indicar que no hay suficiente espacio en disco, especialmente durante las operaciones de restauración. Por ejemplo, una falla registrada podría mostrar:
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
- De acuerdo con Pinal, Dave (
SQL SERVER – Backup Randomly Failing with Error 112 (There is not enough space on the disk.) (Sitio externo)- El tamaño del respaldo de SQL de una base de datos comprimida sería diferente al principio y al final, y esta discrepancia puede provocar esta falla
- Al cambiar el
MAXTRANSFERSIZEConfigurando las siguientes opciones:avsqlmarca como se muestra, especialmente para respaldos de bases de datos grandes
avsql flag : —max-transfer-size=65536
- Falla observada después
avsqlSe informó de un fallo de conectividad como se ve en el siguiente fragmento:
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.)
-
- Además de mitigar estos síntomas, se debe establecer la opción "
vditransfertimeoutsecs" a un valor grande evitaríaavtarTiempo de espera de conexión de tubería
- Además de mitigar estos síntomas, se debe establecer la opción "
Resolución
Utilice uno de los siguientes métodos para agregar marcas en el conjunto de datos de MCGUI o en el archivo avsql.cmd:
- Método #1 - Agregar al conjunto de datos
- Agregue las siguientes marcas en unataset D para el plug-in de SQL.
-
NOTA: Ambas marcas deben tener interlineado
"[avsql]"
[avsql]max-transfer-size=65536
[avsql]vditransfertimeoutsecs=10800
- Método #2 - Añadido al archivo avsql.cmd
- Agregue las siguientes marcas a la carpeta
C:\Program Files\avs\var\avsql.cmdarchivo
- Agregue las siguientes marcas a la carpeta
--max-transfer-size=65536
--vditransfertimeoutsecs=10800
-
-
NOTA: En algunas circunstancias, las máquinas virtuales grandes pueden requerir un valor mayor para la marca de tiempo de espera agotado:
-
- Método #3 - Deshabilitar y volver a habilitar protocolos"
Shared Memory," "Named Pipes" and "TCP/IP"desde Configuration Manager (opción activada). Esto requeriría un reinicio de SQL Server:
