Avamar: SQL Yedeklemesi hata veya özel durumlarla tamamlandı.
Summary: SQL Eklentisi kullanılarak yapılan Avamar Yedeklemesi, istisnalar veya hatalarla tamamlandı. 995 G/Ç işlemi, bir iş parçacığı çıkışı, bir uygulama isteği ya da işletim sistemi hatası 0x8007000e nedeniyle iptal edildi. (Bu işlemi tamamlamak için yeterli depolama alanı yok.) ...
Symptoms
- SQL Server için Windows uygulama günlükleri.
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 günlükleri
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.)
- Aşağıda listelenen dosyada kurtarılamaz bir G/Ç hatası oluştu.
"(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
Yedekleme işlemi sırasında yüksek bellek ve CPU kullanımı gözlemlenmiştir. Yukarıdaki hata, avsql'nin SQL Server'dan veri okumak için SQLVDI arabirim API'sini (paylaşılan veya statik bir kitaplık) kullanmaya çalışması nedeniyle oluşur. Normal koşullarda bu işlem, aktarım sırasında segment paylaşımı için bellek ayırmanın başarılı olduğunu varsayar. SQLVDI arayüzündeki veri aktarımı başarısız olur, avsql günlüğe bir mesaj kaydeder ve eklentinin kapatma işlemi sırasında kanalı avtar a keser. İlk adım, aşağıdaki Transact-SQL (TSQL) sorgularını çalıştırarak SQL kullanılabilir belleğini doğrulamaktır:
Toplam işletim sistemi belleğini ve kullanılabilir belleği kontrol etmek için aşağıdaki TSQL sorgusu:
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;
Avamar yedekleme çalıştırması sırasında SQL Server tarafından tüketilen belleği kontrol etmek için sorgu aşağıda verilmiştir:
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;
Avamar yedeklemelerinin düzgün çalışması için en az %20 veya daha fazla boş bellek olmalıdır. Varsayılan olarak, SQL Server kullanılabilir bellek kaynaklarının çoğunu kullanır. Optimum performansın sağlanması için SQL işlemleri için ayrılan bellek miktarını sınırlayacak şekilde yapılandırılmalıdır.
Bu hataların bilinen diğer nedenleri şunlardır:
- MAXTRANSFERSIZE, Avamar 7.0'da 4 MB olarak değiştirildi ve maxtransfer'in 64 KB olduğu durumlarda bile bu hatayı görüyoruz:
- Bu hata, özellikle geri yükleme işlemleri sırasında genellikle yetersiz disk alanını gösterir. Örneğin, günlüğe kaydedilen bir hata şunları gösterebilir:
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
- Pinal Dave'e göre (https://blog.sqlauthority.com/2016/04/14/sql-server-backup-randomly-failing-error-112-not-enough-space-disk/) (Dış Site)
- Sıkıştırılmış bir Veritabanının SQL yedek boyutu başlangıçta ve sonunda farklı olur ve bu tutarsızlık bu hataya neden olabilir
- Özellikle büyük Veritabanı yedeklemeleri için aşağıdaki avsql bayrağını gösterildiği gibi ayarlayarak MAXTRANSFERSIZE değerini değiştirirken
avsql flag : —max-transfer-size=65536
- Aşağıdaki ekran alıntısında görüldüğü üzere avsql bağlantı hatası bildirdikten sonra görülen hata:
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.)
-
- Bu semptomları hafifletmeye ek olarak, "vditransfertimeoutsecs" değerini büyük bir değere ayarlamak avtar boru bağlantısı zaman aşımına uğramasını önler
Resolution
MCGUI Veri Kümesine veya avsql.cmd dosyasına bayrak eklemek için aşağıdaki yöntemlerden birini kullanın:
- Yöntem #1 - Veri Kümesine Ekleme
- SQL Eklentisi için D ataset'e aşağıdaki bayraklarıekleyin.
-
NOT: Her iki bayrağın da başında "[avsql]" bulunmalıdır
[avsql]max-transfer-size=65536
[avsql]vditransfertimeoutsecs=10800
- Yöntem #2 - avsql.cmd dosyasına eklendi
- C:\Program Files\avs\var\avsql.cmd dosyasına aşağıdaki bayrakları ekleyin:
--max-transfer-size=65536
--vditransfertimeoutsecs=10800
-
-
NOT: Bazı durumlarda, büyük Sanal Makineler zaman aşımı bayrağı için daha büyük bir değer gerektirebilir:
-
- Yöntem # 3 - Config Manager'dan "Shared Memory", "Named Pipes" ve "TCP/IP" protokollerini devre dışı bırakın ve yeniden etkinleştirin (Enabled option). Bunun için SQL Server'ın yeniden başlatılması gerekir:
