Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Firebird, InterBase Новый топик    Ответить
 Nbackup. Размер инкрементного бэкапа  [new]
Atanas
Member

Откуда:
Сообщений: 73
Добрый вечер,

Мы делаем через nbackup бэкап 0-го уровня по утрам. И потом каждый час бэкап 1-го уровня.
При размере БД 100Гб, один-два раза в месяц размер инкрементного бэкапа 1-го уровня может стать 50Гб. Причем сделанного через 3-4 часа от нулевого.
Есть ли возможность выяснить причину? Таблиц размером в половину БД у нас нет, самая большая, думаю не более 10%.
Обновлений кучи таблиц одновременно тоже не делаем. Но размер бэкапа говорит что происходит что-то очень нехорошее...
28 авг 19, 20:26    [21959400]     Ответить | Цитировать Сообщить модератору
 Re: Nbackup. Размер инкрементного бэкапа  [new]
Atanas
Member

Откуда:
Сообщений: 73
SS x64, ver: 3.0.3.32900
Размер страницы: 16K
28 авг 19, 20:43    [21959406]     Ответить | Цитировать Сообщить модератору
 Re: Nbackup. Размер инкрементного бэкапа  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9831
Atanas,

ну если ткнуть пальцем в небо. Автоматический sweep между этими бекапами не запускается случайно?
28 авг 19, 21:04    [21959408]     Ответить | Цитировать Сообщить модератору
 Re: Nbackup. Размер инкрементного бэкапа  [new]
Atanas
Member

Откуда:
Сообщений: 73
Симонов Денис,

Да, Sweep запускается в обед, когда народу немного.
Получается он способен половину страниц БД пометить?
29 авг 19, 09:24    [21959546]     Ответить | Цитировать Сообщить модератору
 Re: Nbackup. Размер инкрементного бэкапа  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 28117
Atanas,

видимо, не надо делать нбэкап 0 уровня, когда в базе застряла активная транзакция, в результате чего по всей базе куча версий.

Инкремент всегда содержит те страницы, которые менялись относительно предыдущего уровня. Если этих страниц пол-базы, значит пол-базы менялось.
Я вообще видел систему, в которой 3-4 раза в день менялись ВСЕ данные.
29 авг 19, 10:53    [21959632]     Ответить | Цитировать Сообщить модератору
 Re: Nbackup. Размер инкрементного бэкапа  [new]
Atanas
Member

Откуда:
Сообщений: 73
kdv,

Понял, спасибо. Но нулевой и инкрементные нам нужны. Поэтому хочу попробовать такую тактику.
1. Утром перед бэкапом 0-го уровня отстреливаю коннекты с write-транзакциями более получаса;
2. Запускаю сборку мусора;
3. Запускаю бэкап 0-го уровня.

А read-транзакции тоже при делах могут быть?
29 авг 19, 11:26    [21959657]     Ответить | Цитировать Сообщить модератору
 Re: Nbackup. Размер инкрементного бэкапа  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 28117
Atanas,

read - нет, они меняют только tip и header page, а этих страниц мало.

В принципе, тактика с "отстрелом" имела бы смысл, если бы 50% базы не модифицировались. Но они так или иначе модифицируются.
Sweep же не просто так меняет флаг страницы на swept, если убрал там мусор. А если там был мусор, значит там были версии, значит данные на этих страницах менялись.

Впрочем, тактика хорошая - по крайней мере здесь точно по размерам инкрементов уровня 1 будет ясно, когда происходят массовые обновления "всего".
Но всё равно, я писал об этом тут
http://www.ibase.ru/files/firebird/nbackup_ru.pdf
если одна страница менялась 50 раз, то в инкремент запишется только одна эта страница.
если 50 страниц менялось хотя бы 1 раз, то в инкремент запишутся 50 страниц.

p.s. кстати, якобы было, что в 3.0 после рестора все страницы содержат флаг swept = false, в результате первый свип проходит по всей базе, и меняет вообще все страницы БД. Я вот не помню, сейчас это поправили. Видимо нет, ибо
C:\Firebird3\gbak -c e.fbk e.fdb

C:\Firebird3>nbackup -b 0 e.fdb e.nb0
time elapsed 0 sec
page reads 315
page writes 315

C:\Firebird3>gfix -sweep e.fdb

C:\Firebird3>nbackup -b 1 e.fdb e.nb1
time elapsed 0 sec
page reads 110
page writes 110


То есть, после рестора запуск sweep приводит к обновлению всех страниц БД в базе. В результате чего инкремент после свипа будет максимальным.
Вполне может быть, что у вас страниц данных в базе как раз 50%. Остальное - индексы и прочее.
29 авг 19, 12:03    [21959690]     Ответить | Цитировать Сообщить модератору
 Re: Nbackup. Размер инкрементного бэкапа  [new]
hvlad
Member

Откуда:
Сообщений: 10531
kdv
в 3.0 после рестора все страницы содержат флаг swept = false, в результате первый свип проходит по всей базе, и меняет вообще все страницы БД.
Да, так и есть
29 авг 19, 12:05    [21959692]     Ответить | Цитировать Сообщить модератору
 Re: Nbackup. Размер инкрементного бэкапа  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 28117
kdv,

не "всех страниц в базе", а всех страниц данных, хотя после рестора там нет ни версий ни мусора.
29 авг 19, 12:05    [21959693]     Ответить | Цитировать Сообщить модератору
 Re: Nbackup. Размер инкрементного бэкапа  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 28117
hvlad,

в IB это как-то победили. То есть, при ресторе у страниц данных swept=true.
29 авг 19, 12:06    [21959694]     Ответить | Цитировать Сообщить модератору
 Re: Nbackup. Размер инкрементного бэкапа  [new]
hvlad
Member

Откуда:
Сообщений: 10531
kdv
hvlad,

в IB это как-то победили. То есть, при ресторе у страниц данных swept=true.
Возможно, они вообще не хранят этот флаг на DP.
Я буду рассматривать этот вариант на следующую ODS.
29 авг 19, 12:07    [21959695]     Ответить | Цитировать Сообщить модератору
 Re: Nbackup. Размер инкрементного бэкапа  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 28117
hvlad,

http://docwiki.embarcadero.com/InterBase/2017/en/What's_New
"First Sweep of a Restored Database is now a Fast Sweep

With InterBase 2017, any database that you restore is immediately marked as swept, therefore the first sweep of that database is a fast sweep. In order to take advantage of this feature, you need to perform a database restore with InterBase 2017 and use either ODS 15 or ODS 16. See Sweep Interval and Automated Housekeeping for more information about sweeping. "

Отсюда не очень понятно, но "now a fast sweep" как бы намекает.
29 авг 19, 12:23    [21959705]     Ответить | Цитировать Сообщить модератору
 Re: Nbackup. Размер инкрементного бэкапа  [new]
Atanas
Member

Откуда:
Сообщений: 73
Симонов Денис, kdv, hvlad

Спасибо! Как проверю, отпишусь.
29 авг 19, 12:40    [21959723]     Ответить | Цитировать Сообщить модератору
 Re: Nbackup. Размер инкрементного бэкапа  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48163

Atanas
2. Запускаю сборку мусора;

А Вы уверены, что вам нужен этот костыль для кривой работы с транзакциями в приложении?

Posted via ActualForum NNTP Server 1.5

29 авг 19, 12:44    [21959738]     Ответить | Цитировать Сообщить модератору
 Re: Nbackup. Размер инкрементного бэкапа  [new]
Atanas
Member

Откуда:
Сообщений: 73
Dimitry Sibiryakov,

Пока нужен. Не все отловили и исправили.
29 авг 19, 12:49    [21959756]     Ответить | Цитировать Сообщить модератору
 Re: Nbackup. Размер инкрементного бэкапа  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9831
Atanas, kdv

ну значит моя догадка про swept флаг верна
29 авг 19, 19:33    [21960106]     Ответить | Цитировать Сообщить модератору
 Re: Nbackup. Размер инкрементного бэкапа  [new]
Atanas
Member

Откуда:
Сообщений: 73
Всем спасибо за участие!
Три недели полет нормальный. С момента настройки больше огромных бэкапов не было.
16 сен 19, 10:09    [21971372]     Ответить | Цитировать Сообщить модератору
Все форумы / Firebird, InterBase Ответить