Avamar: AlwaysOn SQL Incremental Backup epäonnistuu satunnaisesti log gap -virheiden vuoksi

Summary: LSN (Log Sequence Number) -vertailun aikaista lisäävää varmuuskopiointia varten SQL-palvelin palauttaa tietokannan uusimman LSN:n. Avamar-metatietojen LSN-arvo on kuitenkin vanhempi sqlmeta.xml tiedostossa. Tämä aiheuttaa SQL-lisäävien varmuuskopioiden epäonnistumisen, kun lokiaukko tunnistettiin tai täydellistä varmuuskopiota ei löytynyt. Klusterivarmuuskopioinnin osalta havaittiin, että taulukon päivittämisessä sys.database_recovery_status uusimpaan LSN-arvoon liittyy yleinen 1 sekunnin viive. Tämän seurauksena vanhentunut LSN-numero palautetaan Avamar SQL Plugin -kyselystä. ...

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

Randomly SQL Incremental -varmuuskopiointi epäonnistui AlwaysOn-klusterisolmuissa ja aiheutti virheen:
 
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.

sqlmeta.xml LSN-tiedot ovat vanhentuneita, eikä niitä ole synkronoitu saman tietokannan SQL Server -näkymän kanssa.

Cause

SQL-lisäävien varmuuskopiointien osalta prosessi vertaa LSN-numeroa, joka noudetaan sys.database_recovery_status ja etsii lokiaukkoa. Tässä tehtävässä käytetty kysely on:

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

Loki näyttäisi tältä:

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 tiedosto tämän lisäävän päivityksen aikana seuraavalla kyselyllä:

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


Näiden kahden kyselyn tuloksilla on oltava sama tietokannan LSN-numero.
Jos tulos ei täsmää, lisäävien varmuuskopiointien aikana odotetaan vahvistettua log chain -murtojärjestystä ja log gap -virhettä. Ihannetilanteessa klusterivarmuuskopioinnin aikana Microsoft SQL Server päivittää taulukossa sys.database_recovery_status uusimmalla LSN-arvolla varmuuskopioinnin jälkeen. Avamar SQL -laajennus tekee tästä taulukosta LSN-kyselyn ja tallentaa arvon SQL-metatietoihin. Seuraavassa lisäävässä varmuuskopioinnissa Avamar SQL -laajennus tekee uuden kyselyn taulukosta ja saa uusimman LSN-arvon. Tätä LSN:ää verrataan sitten SQL-metatietoihin tallennettuun LSN:ään, ja se varmuuskopioidaan.

Kun Varattu aina -klusteriympäristöissä Avamar SQL -laajennus kyselee taulukosta LSN-arvoa, vanhempi LSN-arvo haetaan ja tallennetaan SQL-metatietoihin. Microsoft SQL Server päivittää taulukkoa jonkin ajan kuluttua. Kun SQL-laajennus tekee taulukkoon seuraavan lisäävän varmuuskopioinnin aikana uuden kyselyn, se saa uusimman LSN-arvon. Kun tätä arvoa verrataan sqlmeta.xml tiedostoon tallennettuun vanhentuneeseen LSN:ään, lokiaukko löytyy ja varmuuskopio ylennetään täyteen.

Resolution

Tilapäinen kiertotapa:

  • Pakota tietokannan täydellinen varmuuskopiointi vian korjaamiseksi.
    • Tämä synkronoi tietyn tietokannan LSN-numerosarjan uudelleen sqlmeta.xml- ja SQL-palvelimissa.
    • Kaikkien myöhempien tietokannan lisäävien varmuuskopiointien pitäisi nyt onnistua. 

Pysyvä korjaus:

  • Muista lisätä avsql.cmd tiedostoon merkintä --latest-lsn-from-msdb=true ja ottaa HotFix (HF) -korjaus käyttöön asiakaslaajennuksen version mukaan:
    • v19.10-100-135 => HF:ää ei ole saatavilla, päivitä koontiversioon 166 ja ota käyttöön vastaava HF
    • v19.10-100-166 (SP1) => HF-338887
    • v19.12-100-186 => HF 338888

Lataa hotfix-korjaus Dellin tukipuolella Avamarissa kuvatuilla tavoilla: Hotfix-korjauksen, korjaustiedoston, asennuksen tai päivityspaketin etsiminen ja lataaminen Dellin tukisivustosta

Voit asentaa hotfix-korjauksen noudattamalla Dellin tuen antamia ohjeita README-tiedoston avulla tai katsomalla hotfix-korjausta Dellin tietämyskannan artikkelista.

Huomio: Jos ongelma jatkuu hotfix-korjauksen asentamisen jälkeen, ota yhteys Dellin tukeen.

Affected Products

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