Avamar: Das SQL-Backup wurde mit Fehlern oder Ausnahmen abgeschlossen.
Summary: Das Avamar-Backup mit dem SQL-Plug-in wurde mit Ausnahmen oder Fehlern abgeschlossen. 995 Der I/O-Vorgang wurde abgebrochen, weil entweder der Thread beendet, eine Anwendungsanforderung oder ein Betriebssystemfehler 0x8007000e. (Es ist nicht genügend Speicherplatz verfügbar, um diesen Vorgang abzuschließen.) ...
Symptoms
- Windows-Anwendungsprotokolle für 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.).
- Avamar-SQL-Protokolle
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.)
- In der unten aufgeführten Datei ist ein nicht behebbarer I/O-Fehler aufgetreten.
"(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
Während des Backupprozesses wurde eine hohe Speicher- und CPU-Auslastung festgestellt. Der obige Fehler tritt auf, weil avsql versucht, die SQLVDI-Schnittstellen-API (eine Bibliothek, entweder gemeinsam genutzt oder statisch) zu verwenden, um Daten vom SQL-Server zu lesen. Unter normalen Bedingungen wird bei diesem Prozess davon ausgegangen, dass die Speicherzuweisung für die Segmentfreigabe während der Übertragung erfolgreich ist. Die Datenübertragung auf der SQLVDI-Schnittstelle schlägt fehl, avsql protokolliert eine Meldung und unterbricht die Pipe zu avtar während des Herunterfahrens des Plug-ins. Der erste Schritt besteht darin, den verfügbaren SQL-Arbeitsspeicher zu überprüfen, indem Sie die folgenden Transact-SQL (TSQL)-Abfragen ausführen:
Folgende TSQL-Abfrage zur Überprüfung des gesamten Betriebssystemspeichers und des verfügbaren Arbeitsspeichers:
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;
Hier ist die Abfrage zur Überprüfung des Arbeitsspeichers, der von SQL Server während der Avamar-Backupausführung verbraucht wird:
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;
Es sollten mindestens 20 % freier Arbeitsspeicher vorhanden sein, damit Avamar-Backups ordnungsgemäß ausgeführt werden können. Standardmäßig verbraucht SQL Server die meisten verfügbaren Arbeitsspeicherressourcen. Er muss so konfiguriert werden, dass die für SQL-Vorgänge zugewiesene Speichermenge begrenzt wird, um eine optimale Performance zu gewährleisten.
Die anderen bekannten Gründe für diese Fehler sind:
- MAXTRANSFERSIZE wurde in Avamar 7.0 in 4 MB geändert und dieser Fehler tritt auch dann auf, wenn maxtransfer 64 KB betrug:
- Dieser Fehler weist häufig auf unzureichenden Speicherplatz hin, insbesondere während Wiederherstellungsvorgängen. Ein protokollierter Fehler kann beispielsweise Folgendes anzeigen:
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
- Laut Pinal Dave (https://blog.sqlauthority.com/2016/04/14/sql-server-backup-randomly-failing-error-112-not-enough-space-disk/) (externe Seite)
- Die SQL-Backupgröße einer komprimierten Datenbank wäre am Anfang und am Ende unterschiedlich und diese Diskrepanz kann zu diesem Fehler führen
- Beim Ändern von MAXTRANSFERSIZE durch Festlegen des folgenden avsql-Flags wie gezeigt, insbesondere für große Datenbankbackups
avsql flag : —max-transfer-size=65536
- Ausfall, der auftritt, nachdem avsql einen Verbindungsfehler gemeldet hat, wie im Ausschnitt unten zu sehen:
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.)
-
- Zusätzlich zur Minderung dieser Symptome würde das Festlegen von "vditransfertimeoutsecs" auf einen großen Wert ein Timeout der avtar-Pipe-Verbindung vermeiden
Resolution
Verwenden Sie eine der folgenden Methoden, um Flags im MCGUI-Datenvolumen oder in der avsql.cmd Datei hinzuzufügen:
- Methode #1 - Hinzufügen zum Datensatz
- Fügen Sie die folgenden Flags in einem Dataset für das SQL-Plug-in hinzu.
-
HINWEIS: Beide Flags müssen den führenden Hinweis "[avsql]" enthalten.
[avsql]max-transfer-size=65536
[avsql]vditransfertimeoutsecs=10800
- Methode #2 - Zur avsql.cmd Datei hinzufügen
- Fügen Sie der Datei C:\Program Files\avs\var\avsql.cmd die folgenden Flags hinzu:
--max-transfer-size=65536
--vditransfertimeoutsecs=10800
-
-
HINWEIS: Unter bestimmten Umständen erfordern große virtuelle Maschinen möglicherweise einen größeren Wert für das Timeout-Flag:
-
- Methode #3 - Deaktivieren Sie die Protokolle "Shared Memory", "Named Pipes" und "TCP/IP" im Config Manager (Option "Enabled"). Dies würde einen Neustart von SQL Server erfordern:
