Авамар: Інкрементні резервні копії AlwaysOn SQL випадковим чином зазнають невдачі через помилки «розриву в журналі»

Summary: Для інкрементного резервного копіювання під час порівняння порядкового номера журналу (LSN) SQL-сервер повертає останній LSN для бази даних. Однак метадані Avamar мають старіше значення LSN у файлі sqlmeta.xml. Це призводить до збою інкрементальних резервних копій SQL при виявленні прогалин у журналі або не знайдено повної резервної копії. Для резервного копіювання кластера було помічено, що існує загальна затримка в 1 секунду при оновленні таблиці sys.database_recovery_status з останнім значенням LSN. В результаті застарілий номер LSN повертається із запиту Avamar SQL Plugin. ...

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 Incremental зазнає невдачі на вузлах кластера AlwaysOn з помилкою:
 
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.

Інформація LSN в sqlmeta.xml застаріла і не синхронізована з представленням SQL-сервера тієї ж бази даних.

Cause

Для інкрементних резервних копій SQL процес порівнює номер LSN, який отримується з sys.database_recovery_status під час пошуку прогалин у журналі. Для цього завдання використовується такий запит:

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

Журнал виглядатиме так:

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 файл під час цього поступового оновлення за допомогою наступного запиту:

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


Результати двох запитів повинні повідомляти про однаковий номер LSN для бази даних.
Якщо результат не збігається, то під час інкрементального резервного копіювання очікується підтверджена послідовність «ланцюжка журналів» і помилка розриву в журналі. В ідеальному випадку під час резервного копіювання кластера, після завершення резервного копіювання Microsoft SQL Server оновлює таблицю sys.database_recovery_status останнім значенням LSN. Плагін Avamar SQL запитує цю таблицю для LSN і зберігає значення в метаданих SQL. Під час чергового інкрементного резервного копіювання плагін Avamar SQL знову робить запит до таблиці та отримує останнє значення LSN. Потім цей LSN порівнюється з LSN, що зберігається в метаданих SQL, і виконується резервне копіювання.

У завантажених кластерних середовищах, коли плагін Avamar SQL запитує в таблиці значення LSN, старіше значення LSN отримується та зберігається в метаданих SQL. Через деякий час Microsoft SQL Server оновлює таблицю. Під час наступного інкрементного резервного копіювання, коли плагін SQL знову запитує таблицю, він отримує останнє значення LSN. Коли це значення порівнюється зі застарілим LSN, що зберігається у файлі sqlmeta.xml, виявляється прогалина в журналі, і резервна копія просувається до повного.

Resolution

Тимчасовий спосіб вирішення:

  • Примусово створіть повну резервну копію цієї бази даних, щоб вирішити цю помилку.
    • Це повторно синхронізує послідовність номерів LSN для конкретної бази даних у sqlmeta.xml та SQL Server.
    • Усі подальші інкрементні резервні копії цієї бази даних тепер мають бути успішно завершені. 

Постійне виправлення:

  • Переконайтеся, що ви додали прапорець "--latest-lsn-from-msdb=true" до файлу avsql.cmd та застосуйте HotFix (HF) відповідно до версії плагіна клієнта:
    • v19.10-100-135 => Немає доступного ВЧ, оновіться до збірки 166 і застосуйте відповідний ВЧ
    • v19.10-100-166 (SP1) => ВЧ 338887
    • v19.12-100-186 => ВЧ 338888

Щоб завантажити виправлення зі сторони підтримки Dell, виконайте кроки, описані в Avamar: Як знайти та завантажити поточне виправлення, виправлення, інсталяцію або пакет оновлення продукту з веб-сайту підтримки Dell

Щоб застосувати поточне виправлення, дотримуйтесь інструкцій, наданих службою підтримки Dell за допомогою файлу README, або перегляньте статтю бази знань Dell, щоб дізнатися про конкретне виправлення.

Застереження: Якщо після застосування поточного виправлення проблема не зникає, зверніться до служби підтримки Dell за додатковою допомогою.

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.