Avamar: SQL-varmuuskopiointi on suoritettu virheellä tai poikkeuksilla.
Summary: Avamar-varmuuskopiointi SQL-laajennuksella täydennetty poikkeuksin tai virhein. 995 I/O-toiminto on keskeytetty joko säikeen poistumisen, sovelluspyynnön tai 0x8007000e käyttöjärjestelmävirheen vuoksi. (Toiminnon suorittamiseen ei ole riittävästi tallennustilaa.) ...
Symptoms
- Windowsin SQL Server -sovelluslokit.
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 -lokit
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.)
- Alla olevassa tiedostossa tapahtui I/O-virhe, jota ei voi palauttaa.
"(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
Varmuuskopioinnin aikana on havaittu suurta muistin ja suorittimen käyttöä. Edellä mainittu virhe ilmenee, koska avsql yrittää käyttää SQLVDI-liittymän ohjelmointirajapintaa (jaettua tai staattista kirjastoa) tietojen lukemiseen SQL-palvelimesta. Normaaleissa olosuhteissa tämä prosessi olettaa, että muistin varaus segmenttien jakamiseen siirron aikana onnistuu. SQLVDI-käyttöliittymän tiedonsiirto epäonnistuu, avsql kirjaa viestin ja katkaisee putken avtariin laajennuksen sammutusprosessin aikana. Ensimmäinen vaihe on tarkistaa SQL:n käytettävissä oleva muisti suorittamalla seuraavat Transact-SQL (TSQL) -kyselyt:
Seuraava TSQL-kysely käyttöjärjestelmän muistin kokonaismäärän ja käytettävissä olevan muistin tarkistamiseksi:
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;
Tässä on kysely, jolla tarkistetaan SQL Serverin käyttämä muisti Avamar-varmuuskopioinnin aikana:
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;
Vähintään 20 % vapaata muistia pitäisi olla, jotta Avamar-varmuuskopiot toimivat oikein. Oletusarvoisesti SQL Server kuluttaa suurimman osan käytettävissä olevista muistiresursseista. Se on määritettävä rajoittamaan SQL-toiminnoille varatun muistin määrää optimaalisen suorituskyvyn varmistamiseksi.
Muita tunnettuja syitä näihin virheisiin ovat:
- MAXTRANSFERSIZE muutettiin 4 Mt:ksi Avamar 7.0:ssa, ja tämä virhe näkyy, vaikka maxtransfer oli 64 kt:
- Tämä virhe tarkoittaa usein sitä, että levytila ei riitä etenkään palautuksen aikana. Lokiin kirjattu virhe voi näyttää esimerkiksi:
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 Daven (https://blog.sqlauthority.com/2016/04/14/sql-server-backup-randomly-failing-error-112-not-enough-space-disk/) mukaan (Ulkoinen sivusto)
- Pakatun tietokannan SQL-varmuuskopion koko olisi erilainen alussa ja lopussa, mikä voi johtaa tähän virheeseen
- Kun muutat MAXTRANSFERSIZE-arvoa määrittämällä alla oleva avsql-merkintä kuvan osoittamalla tavalla, erityisesti suurille tietokannan varmuuskopioille
avsql flag : —max-transfer-size=65536
- Vika havaittu sen jälkeen, kun avsql ilmoitti yhteyshäiriöstä, kuten alla olevassa katkelmassa näkyy:
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.)
-
- Näiden oireiden lieventämisen lisäksi "vditransfertimeoutsecs" -arvon asettaminen suureksi arvoksi estäisi avtar-putkiliitännän aikakatkaisun
Resolution
Voit lisätä lippuja MCGUI-tietojoukkoon tai avsql.cmd-tiedostoon jollakin seuraavista tavoista:
- Tapa #1 - Lisääminen tietojoukkoon
- Lisää seuraavat liputSQL-laajennuksen D-atasetiin.
-
HUOMAUTUS: Molempien lippujen alussa on oltava "[avsql]"
[avsql]max-transfer-size=65536
[avsql]vditransfertimeoutsecs=10800
- Tapa #2 - Lisätty avsql.cmd tiedostoon
- Lisää seuraavat merkinnät C:\Program Files\avs\var\avsql.cmd tiedostoon
--max-transfer-size=65536
--vditransfertimeoutsecs=10800
-
-
HUOMAUTUS: Joissakin tapauksissa suuret virtuaalikoneet saattavat vaatia suuremman arvon aikakatkaisulipulle:
-
- Menetelmä #3 - Ottaa protokollat "Jaettu muisti", "Nimetyt putket" ja "TCP/IP" käyttöön ja ottaa ne uudelleen käyttöön Config Managerissa (käytössä-vaihtoehto). Tämä edellyttää SQL Serverin uudelleenkäynnistystä:
