Avamar: Přírůstkové zálohy AlwaysOn SQL náhodně selhávají kvůli chybám "log gap"

Summary: V případě přírůstkového zálohování během porovnávání pořadového čísla protokolu (LSN) vrací SQL Server nejnovější LSN pro databázi. Metadata Avamar však mají v souboru sqlmeta.xml starší hodnotu LSN. To způsobuje selhání přírůstkových záloh SQL, když byla identifikována mezera v protokolu nebo nebyla nalezena úplná záloha. U zálohování clusteru bylo zjištěno, že při aktualizaci sys.database_recovery_status tabulky o nejnovější hodnotu LSN dochází k obecnému zpoždění 1 sekundy. V důsledku toho se z dotazu doplňku Avamar SQL vrátí zastaralé číslo LSN. ...

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

Přírůstkové zálohování SQL náhodně selže na uzlech clusteru AlwaysOn s chybou:
 
2021/03/22-04:30:53.62299 [avsql_assist]  Before alignment - Str1: '240000000392000001', Str2: '241000000328000001'
2021/03/22-04:30:53.62299 [avsql_assist]  After alignment - Str1: '240000000392000001', Str2: '241000000328000001'
2021/03/22-04:30:53.62299 [avsql_assist]  <=== avsql_assist::align_numeric_ustrings
2021-03-22 00:30:53 avsql Info <15765>: A log gap was identified or a full backup was not found.
2021/03/22-04:30:53.62299 [avsql_assist]  ===> sqlconnect::~sqlconnect
2021/03/22-04:30:53.62299 [avsql_assist]  <=== sqlconnect::~sqlconnect
2021/03/22-04:30:53.62299 [avsql_assist]  <=== avsql_assist::snapup_check_timestamps
2021-03-22 00:30:53 avsql Error <40418>: Skipping database 'oalistener07\OA05_AG/_Sync' due to the following reason: A log gap was identified or a full backup was not found.

Informace LSN v sqlmeta.xml jsou zastaralé a nesynchronizované se zobrazením SQL serveru stejné databáze.

Cause

U přírůstkových záloh SQL proces porovnává číslo LSN, které se načte z sys.database_recovery_status při hledání mezery v protokolu. Dotaz použitý pro tuto úlohu je:

SELECT last_log_backup_lsn FROM sys.database_recovery_status "WHERE database_id = DB_ID(N’db2-mi')"

Protokol by vypadal takto:

2022/08/24-03:28:01.12199 [avsql_assist]  retrieving last backup lsn for 'db2-mi' db from sys.database_recovery_status
2022/08/24-03:28:01.12199 [avsql_assist]  ===> sqlconnectimpl_smo::InitDll
2022/08/24-03:28:01.12199 [avsql_assist]  SMO dll already loaded.
2022/08/24-03:28:01.12299 [avsql_assist]  <=== sqlconnectimpl_smo::InitDll
2022/08/24-03:28:01.12400 [avsql_assist]  ==> SMOWrap::SMO_GetLastBackupLSN
2022/08/24-03:28:01.28200 [avsql_assist]  database 'db2-mi', last backup lsn = '315000000022400001' 
2022/08/24-03:28:01.28200 [avsql_assist]  <=== sqlconnectimpl_smo::get_last_backup_lsn
2022/08/24-03:28:01.28200 [avsql_assist]  ===> avsql_metadata::get
2022/08/24-03:28:01.28200 [avsql_assist]  ===> avsql_metadata::get
2022/08/24-03:28:01.28299 [avsql_assist]  <=== avsql_metadata::get
2022/08/24-03:28:01.28299 [avsql_assist]  <=== avsql_metadata::get
2022/08/24-03:28:01.28299 [avsql_assist]  Last backup LSN: '315000000022400001' (Get from sqlmeta.xml), Current LSN: '315000000022400001'

sqlmeta.xml soubor během této přírůstkové aktualizace pomocí následujícího dotazu:

SELECT last_lsn, type, user_name FROM msdb..backupset WHERE database_name=N'db2-mi' AND type LIKE 'L' ORDER by last_lsn DESC


Výsledky těchto dvou dotazů by měly hlásit stejné číslo LSN pro databázi.
Pokud se výsledek neshoduje, je během přírůstkových záloh očekávána potvrzená sekvence vloupání do řetězce protokolů a chyba mezery v protokolu. V ideálním případě během zálohování clusteru Microsoft SQL Server po dokončení zálohování aktualizuje tabulku sys.database_recovery_status nejnovější hodnotou LSN. Doplněk Avamar SQL se v této tabulce dotazuje na LSN a uloží hodnotu do metadat SQL. Během dalšího přírůstkového zálohování se doplněk Avamar SQL znovu dotazuje na tabulku a získá nejnovější hodnotu LSN. Tento LSN se pak porovná s LSN uloženým v metadatech SQL a provede se zálohování.

Když se v rušných prostředích clusteru Always plugin Avamar SQL dotazuje tabulky na hodnotu LSN, získá se starší hodnota LSN a uloží se do metadat SQL. Microsoft SQL Server po určité době aktualizuje tabulku. Během příštího přírůstkového zálohování, když se modul plug-in SQL znovu dotazuje na tabulku, získá nejnovější hodnotu LSN. Když se tato hodnota porovná se zastaralým souborem LSN uloženým v souboru sqlmeta.xml, najde se mezera v protokolu a záloha se povýší na úplnou.

Resolution

Dočasné zástupné řešení:

  • Vynuťte úplnou zálohu této databáze, aby se tato chyba vyřešila.
    • Tím se znovu synchronizuje číselná řada LSN pro konkrétní databázi v sqlmeta.xml a SQL Server.
    • Všechny následné přírůstkové zálohy této databáze by se teď měly úspěšně dokončit. 

Trvalá oprava:

  • Nezapomeňte do souboru avsql.cmd přidat příznak "--latest-lsn-from-msdb=true" a použijte opravu HotFix (HF) podle verze modulu plug-in klienta:
    • v19.10-100-135 => HF není k dispozici, upgradujte na build 166 a použijte odpovídající HF
    • v19.10-100-166 (SP1) => HF 338887
    • v19.12-100-186 => HF 338888

Chcete-li stáhnout opravu hotfix ze strany podpory společnosti Dell, postupujte podle kroků popsaných v článku Avamar: Jak najít a stáhnout opravu hotfix, opravu, instalaci nebo balíček upgradu produktu z webu podpory společnosti Dell

Chcete-li použít opravu hotfix, postupujte podle pokynů poskytnutých podporou společnosti Dell pomocí souboru README nebo si přečtěte článek znalostní databáze Dell pro konkrétní opravu hotfix.

Upozornění: Pokud problém přetrvává i po instalaci opravy hotfix, požádejte o další pomoc podporu společnosti Dell.

Affected Products

Avamar Plug-in for SQL
Article Properties
Article Number: 000184526
Article Type: Solution
Last Modified: 05 Sep 2025
Version:  5
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.