Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Специфика работы AlwaysOn в синхронном режиме фиксации транзакций и отработки диф. бэкапа  [new]
МуМу
Member

Откуда:
Сообщений: 1134
Вопрос, с которым пока разбираемся. Но есть некоторые факты. Включен режим синхронизации серверов через AlwaysOn в синхронном режиме фиксации транзакций. Есть процесс дифференциального бэкапа, который резко в некоторый момент стал гораздо дольше. А это нельзя объяснить, размером изменений - есть качественные показатели(репликация - на нее изначально грешили) показывающие что не так уж все плохо. Есть показатели нагрузки дисков и т.п. Завтра окончательно проверим, пока версия следующая. В режиме синхронной транзакции включаются механизмы распределенной фиксации транзакции - которые влияют на лог транзакции и на сам факт фиксации транзакции в распределенной среде. В случае длинной и большой транзакции - возможна ситуация при которой снятие дифференциального бэкапа может блокироваться фактом отсутствия подтверждения фиксации транзакции на второй ноде. А коллеги предполагают, что чуть ли не деадлок может случится в распределенной среде(в случае синхронной фиксации)- но я в это не верю:). Может вообще какой то вероятностный баг? Коллеги каково ваше мнение?
Ключевой вопрос - у кого крутится AlwaysOn в режиме синхронной фиксации транзакции, а также есть длинные(и массивные по изменению данных) транзакции и при этом снимается на основной ноде в это время дифференциальный бэкап?
14 фев 17, 00:14    [20209499]     Ответить | Цитировать Сообщить модератору
 Re: Специфика работы AlwaysOn в синхронном режиме фиксации транзакций и отработки диф. бэкапа  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Есть опыт синхронной реплики, есть опыт дифф-бэкапов. Но второе практиковали на 5 лет раньше первого, потому что на данный момент можем за вменяемое время снять полный бэкап и не морочимся. Да, full-бэкап снимаем на обеих нодах.

Чисто умозрительно, дифф бэкап именно данных на лог не должен быть завязан (ходи себе dirty-страницы собирай), кроме финальной фазы, когда надо добэкапить лог для целостности.

Но. Если у нас корячится длительная транзакция (типа, ребилда на двое-трое суток), мы реплику в асинхрон переводим, потому что сейчас перфоманс записи в лог опережает скорость передачи на вторую реплику (10 Gbit сеть в процессе). И даже в асинхронном режиме с длинной транзакцией и очередью, время полного бэкапа может проседать на 10-20%.

Сообщение было отредактировано: 14 фев 17, 01:07
14 фев 17, 00:57    [20209547]     Ответить | Цитировать Сообщить модератору
 Re: Специфика работы AlwaysOn в синхронном режиме фиксации транзакций и отработки диф. бэкапа  [new]
o-o
Guest
МуМу
. В случае длинной и большой транзакции - возможна ситуация при которой снятие дифференциального бэкапа может блокироваться фактом отсутствия подтверждения фиксации транзакции на второй ноде.

Бэкапам данных фиолетово на открытые транцакциии,
для того они и дописывают кусок лога от самой ранней открытой транзакции на момент начала чтения страниц данных,
чтобы, если что(транзакция не закоммичена на момент окончания чтения), откатить незакоммиченные изменения.
Единственное, что именно блокирует бэкап данных(дифф, полный) , это другой ранее начатый бэкап данных.
И это можно увидеть, опросив блокировки: там будет висеть LCK_M_U with a waittype of BULKOP_BACKUP_DB.
Кстати, замедление, это совсем необязательно блокировка.
Например(не ваш случай, у вас полная модель), массовая загрузка данных в простой модели начинает прилично тормозить во время бэкапа.
Так это потому, что вместо минимального логирования начинается полное.
Бэкап тоже начинает заметно тормозить, раз и без него интенсивно диски используют, да еще теперь и в лог пишут
14 фев 17, 09:01    [20209750]     Ответить | Цитировать Сообщить модератору
 Re: Специфика работы AlwaysOn в синхронном режиме фиксации транзакций и отработки диф. бэкапа  [new]
МуМу
Member

Откуда:
Сообщений: 1134
Увы, исследования показывают другое. В двух случаях после завершения большой транзакции в районе минуты завершается бэкап. Не думаю что это совпадение.(7-мь часов выполнялся бэкап) Сейчас рассмотрим третий случай(по системе мониторинга) - если будет такая же ситуация то наверное будем составлять письмо в Microsoft. Вероятно баг какой то. Напомню, что просадка выполнения бэкапа измеряется не 10-и процентов а 100-ми.
14 фев 17, 13:28    [20210576]     Ответить | Цитировать Сообщить модератору
 Re: Специфика работы AlwaysOn в синхронном режиме фиксации транзакций и отработки диф. бэкапа  [new]
МуМу
Member

Откуда:
Сообщений: 1134
Еще раз напомню, что это не просто бэкап, а бэкап с базы в режиме AlwaysON с синхронным режимом фиксации транзакций.(ну еще плюс длинная транзакция в этот момент)
14 фев 17, 13:31    [20210592]     Ответить | Цитировать Сообщить модератору
 Re: Специфика работы AlwaysOn в синхронном режиме фиксации транзакций и отработки диф. бэкапа  [new]
msLex
Member

Откуда:
Сообщений: 9540
МуМу
Еще раз напомню, что это не просто бэкап, а бэкап с базы в режиме AlwaysON с синхронным режимом фиксации транзакций.(ну еще плюс длинная транзакция в этот момент)


Вы что, всерьез считает, что никто не делает бекапы в синхронном AlwaysON?

Длинная транзакция влияет на диф и фул бекапы только тем, что в файл бекапа попадает весь лог с начала самой древней незавершенной (на момента начала бекапа) транзакции, что может существенно увеличить размер файла бекапа и время выполнения операции бекап.

Но при этом бекап, естественно, не ждет завершения всех транзакций, т.к. в нормально нагруженных системах всегда есть открытые транзакции, и именно для этого при восстановление из бекапа и присутствует третья стадия - undo незавершенных транзакций.
14 фев 17, 13:41    [20210638]     Ответить | Цитировать Сообщить модератору
 Re: Специфика работы AlwaysOn в синхронном режиме фиксации транзакций и отработки диф. бэкапа  [new]
o-o
Guest
МуМу
7-мь часов выполнялся бэкап

а помониторить, что в sys.dm_exec_requests.percent_complete?
ведь станет сразу видно, зависон на каком-то проценте или медленно, но равномерно идет к финишу.
ибо лог он дописывает в самом конце, и если именно с чтением лога проблема,
висеть будет на определенном проценте ближе к концу
14 фев 17, 13:43    [20210646]     Ответить | Цитировать Сообщить модератору
 Re: Специфика работы AlwaysOn в синхронном режиме фиксации транзакций и отработки диф. бэкапа  [new]
МуМу
Member

Откуда:
Сообщений: 1134
Да посмотреть sys.dm_exec_requests.percent_complete было бы не плохо. Но проблема что подобная ситуация возникнет через пару месяцев. Сейчас смотрим архивные данные (счетчики производительности, sysprocesses, некоторые трассы) и по ним ничего криминального не видно.(ну кроме описанной выше ситуации) Видимо для полной ясности придется подождать и поймать вживую.
14 фев 17, 14:21    [20210782]     Ответить | Цитировать Сообщить модератору
 Re: Специфика работы AlwaysOn в синхронном режиме фиксации транзакций и отработки диф. бэкапа  [new]
МуМу
Member

Откуда:
Сообщений: 1134
К сожалению тщательно спроектированный эксперимент провалился. Изначальная идея оказалась возможно верной, но не достаточной, будем ждать повторения у клиента(увы:(, не моделируется). Будем отдельно логировать sys.dm_exec_requests.percent_complete
20 мар 17, 23:12    [20315837]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить