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ä. ...
Symptoms
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.