Avamar: AlwaysOn SQL Artımlı Yedeklemeleri "Log Gap" Hataları Nedeniyle Rastgele Başarısız Oluyor

Summary: Günlük Sıra Numarası (LSN) karşılaştırması sırasında artımlı yedekleme için SQL sunucusu, Veritabanı için en son LSN'yi döndürür. Ancak Avamar meta verileri, sqlmeta.xml dosyasında daha eski LSN değerine sahip. Bu durum, SQL Incremental yedeklemelerinin bir günlük boşluğu tespit edildiğinde veya tam yedekleme bulunamadığında başarısız olmasına neden oluyor. Küme yedeklemesi için tablo sys.database_recovery_status en son LSN değeriyle güncellenirken 1 saniyelik genel bir gecikme olduğu gözlemlenmiştir. Sonuç olarak, Avamar SQL Plugin sorgusundan eski LSN numarası döndürülür. ...

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

SQL artımlı yedekleme, AlwaysOn Küme düğümlerinde rastgele şu hatayla başarısız olur:
 
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'daki LSN bilgileri güncel değildir ve aynı Veritabanının SQL sunucu görünümüyle senkronize değildir.

Cause

SQL artımlı yedeklemeleri için işlem, günlük boşluğunu bulurken sys.database_recovery_status'den alınan LSN numarasını karşılaştırır. Bu görev için kullanılan sorgu şu şekildedir:

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

Günlük şöyle görünür:

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'

Bu artımlı işlem sırasında sqlmeta.xml dosyası aşağıdaki sorgu kullanılarak güncelleştirilmiştir:

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


İki sorgunun sonucunda Veritabanı için aynı LSN numarası bildirilmelidir.
Sonuç eşleşmezse Artımlı yedeklemeler sırasında onaylanmış bir zorla girme "günlük zinciri" dizisi ve günlük boşluğu hatası beklenir. Küme yedeklemeleri sırasında ideal bir senaryoda, yedekleme tamamlandıktan sonra Microsoft SQL Server tablo sys.database_recovery_status en son LSN değeriyle günceller. Avamar SQL eklentisi bu tabloyu LSN için sorgular ve değeri SQL meta verilerinde depolar. Bir sonraki artımlı yedekleme sırasında Avamar SQL eklentisi tabloyu tekrar sorgular ve en son LSN değerini alır. Bu LSN daha sonra SQL meta verilerinde depolanan LSN ile karşılaştırılır ve bir yedekleme gerçekleştirilir.

Yoğun Always küme ortamlarında Avamar SQL eklentisi tabloyu LSN değeri için sorgularken eski LSN değeri elde edilir ve SQL Meta Verilerinde depolanır. Microsoft SQL Server bir süre sonra tabloyu güncelleştiriyor. Bir sonraki artımlı yedekleme sırasında SQL eklentisi tabloyu tekrar sorguladığında en son LSN değerini alır. Bu değer, sqlmeta.xml dosyasında saklanan eski LSN ile karşılaştırıldığında bir günlük boşluğu bulunur ve yedekleme tam olarak yükseltilir.

Resolution

Geçici geçici çözüm:

  • Bu arızayı çözmek için veritabanını tam yedeklemeye zorlayın.
    • Bu, sqlmeta.xml ve SQL Server'daki belirli Veritabanı için LSN numara serisini yeniden eşitler.
    • Bu Veritabanının sonraki tüm artımlı yedeklemeleri başarıyla tamamlanmalıdır. 

Kalıcı Çözüm:

  • avsql.cmd dosyasına "--latest-lsn-from-msdb=true" bayrağını eklediğinizden emin olun ve istemci eklentisi sürümüne göre düzeltmeyi (HF) uygulayın:
    • v19.10-100-135 => HF yok, derleme 166'ya yükseltin ve ilgili HF'yi uygulayın
    • v19.10-100-166 (SP1) => HF 338887
    • v19.12-100-186 => HF 338888

Düzeltmeyi Dell Support tarafından indirmek için Avamar'da açıklanan adımlara bakın: Dell Destek web sitesinde bir ürün düzeltmesi, yama, yükleme veya yükseltme paketi bulma ve indirme

Düzeltmeyi uygulamak için README dosyasını kullanarak Dell Destek tarafından sağlanan talimatları izleyin veya ilgili düzeltme için Dell Knowledge Base makalesine bakın.

Dikkat: Düzeltmeyi uyguladıktan sonra sorun devam ederse daha fazla yardım için Dell Destek ekibiyle iletişime geçin.

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.