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

Откуда:
Сообщений: 4
Помогите начинающему ...

Запускается план кажд ночь и создает копию базы и логов.
Создаю еще задание которое делает дифференциальную копию базы кажд 3 часа. База 2 гб, а вот дифференциальная растет и растет, уже стала больше самой базы.

Объясните пожалуйста, что это за механизм такой роста и что я неправильно делаю, почему дифф растет и до какого размера будет расти?

И достаточно ли данного сценария для последующего восстановления на случай потери данных (тьфу-тьфу-тьфу)
13 май 05, 05:21    [1534996]     Ответить | Цитировать Сообщить модератору
 Re: Дифференциальноая копия -проблема с пониманием  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Manya_v_sql
Создаю еще задание которое делает дифференциальную копию базы кажд 3 часа. База 2 гб, а вот дифференциальная растет и растет, уже стала больше самой базы.
Дело в том, что диф бэкап - этот бэкап тех страниц памяти базы, на которых были сделаны изменения после последнего полного. Т.е. при проведении полного бэкапа специальный флажок архивирования, который имеет каждая страница сбрасывается (или устанавливается - как угодно), что сигнализирует о том, что со времени последнего полного бэкапа страница не была изменена. При внесении любого изменения на странице этот флаг принимает противоположное состояние и при проведении диф бэкапа обязательно попадет в него, при этом флаг архивации не изменяется. Посему, в связи с тем, что страниц с измененным флагом архивации после последнего полного становится всё больше и больше во времени, диф бэкап тоже будет расти.
Отсюда следует, что диф бэкап без опции INIT почти всегда не имеет никакого смысла (если конечно не потребуется восстановление в промежуточное состояние), а ведет только к дополнительному росту файла бэкапа.
Особенно же диф бэкап эффективен для сохранения страховой копии, когда одни и те же данные очень часто меняются.
13 май 05, 06:49    [1535018]     Ответить | Цитировать Сообщить модератору
 Re: Дифференциальноая копия -проблема с пониманием  [new]
Александр Гладченко
Member

Откуда:
Сообщений: 10753
Блог
https://www.sql.ru/articles/mssql/03090101SpeedyDBRecoveryWithDifferentialBackups.shtml
13 май 05, 11:16    [1535715]     Ответить | Цитировать Сообщить модератору
 Re: Дифференциальноая копия -проблема с пониманием  [new]
Dvch
Guest
diff backup каждый раз не перезатирается а добавляется в backup файл, так что скорее всего там у Вас уже несколько разys[ копий разностного бэкапа
А куда там подставить (with INIT /NOINIT) не разобрался еще (пошел читать доку)
13 май 05, 13:14    [1536470]     Ответить | Цитировать Сообщить модератору
 Re: Дифференциальноая копия -проблема с пониманием  [new]
Manya_v_sql
Member

Откуда:
Сообщений: 4
что-то стало проясняться. Но стало еще больше появляться вопросов, простите уж за любопытство, но хочется докопаться, ведь истина где-то рядом :).
Тогда вот еще что
1) если дифф удалить (или перенести на др носитель) вечером большую что сейчас есть, она же все равно будет кажд 3 часа запускаться. А т.к. полная копия делается кажд ночь, то дифф будет все равно содержать последние изменения после ночного, зато размер существенно мал. Зачем мне дифф недельнойй давности, если естьполная копия и после нее дифф. Или это криво все -таки?

2) Если у меня есть поная копия и дифф, я могу восстановить базу в случае потери? или это имеет смысл только когда журнал не пострадал? и восстановлю я на момент последнего дифф
Или в любом случае мне нужно еще после дифа сделанная копия журнала.

3) мне показалось после прочтения статьи, см выше, что журнал после полной и дифф копии только если мне надо восстановить на определнное время, например на 9:21.

4) С with init тоже пока не ясно, слышу 1-й раз об этом к своему стыду.



Бросьте в меня камень, если я говорю не так...
14 май 05, 06:08    [1538775]     Ответить | Цитировать Сообщить модератору
 Re: Дифференциальноая копия -проблема с пониманием  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
1.Действительно, если восстановление на какой-то промежуточный момент времени никогда не понадобится, вообще, достаточно иметь только последнюю копию полного, последнюю копию диф и все последующие после него лога.
2.Без копий лога после последнего дифа восстановить на последний момент времени не удастся, только на момент последнего дифа.
3.ничего не понятно - в чем вопрос то? Если в том, что можно ли без копий лога восстановить на заданный момен, который не совпадает с моментом ни полного, ни дифа, то, да, для восстановления на заданный момент, в общем случае, без копий лога не удастся.
4.А что тут не понятного? Открывем BOL и читаем про BACKUP, находим про опцию INIT и видим, что если она определена, то все наборы копий будут перезаписаны, за определенным исключением для кипий на ленту.
14 май 05, 06:39    [1538785]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить