Avamar: El respaldo de SQL se completó con errores o excepciones.
Summary: 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). ...
Symptoms
- 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.
Cause
Se observó un alto uso de memoria y CPU durante el proceso de respaldo. La falla anterior se produce porque avsql intenta usar la API de la interfaz SQLVDI (una biblioteca, 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 la interfaz de SQLVDI falla, 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 las siguientes consultas de Transact-SQL (TSQL):
Realice la siguiente consulta de TSQL 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:
- MAXTRANSFERSIZE se cambió a 4 MB en Avamar 7.0 y vemos esta falla incluso donde maxtransfer era de 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
- Según Pinal, Dave (https://blog.sqlauthority.com/2016/04/14/sql-server-backup-randomly-failing-error-112-not-enough-space-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
- Cuando cambie MAXTRANSFERSIZE mediante la configuración de la siguiente marca avsql como se muestra, especialmente para respaldos de bases de datos grandes
avsql flag : —max-transfer-size=65536
- Se observa una falla después de que avsql informó una falla de conectividad, como se muestra 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, la configuración de "vditransfertimeoutsecs" en un valor grande evitaría que se agote el tiempo de espera de la conexión de la tubería avtar
Resolution
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 "[avsql]" como inicio
[avsql]max-transfer-size=65536
[avsql]vditransfertimeoutsecs=10800
- Método #2 - Añadido al archivo avsql.cmd
- Agregue las siguientes marcas al archivo C:\Program Files\avs\var\avsql.cmd
--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 - Deshabilite y vuelva a habilitar los protocolos "Shared Memory", "Named Pipes" y "TCP/IP" en el administrador de configuración (opción habilitada). Esto requeriría un reinicio de SQL Server:
