Разве резервные копии журнала транзакций каждые 15 минут занимают больше места на диске, чем резервные копии журнала каждые 6 часов?

10

В нашей среде в сетевом хранилище недостаточно места. В то же время я хотел бы убедиться, что мы делаем резервные копии журнала транзакций каждые 15 минут вместо текущих каждые 6 часов. Мой вопрос: будет ли интервал резервного копирования журнала с 6 часов на каждые 15 минут занимать больше места на диске?

SqlNovice
источник
@eckes Какое это имеет отношение к частоте резервного копирования? Если вам нужно место для 3-дневного резервного копирования журнала, какая разница, если резервные копии создаются каждые 6 часов или 15 минут?
Брент Озар
Будьте осторожны, независимо от того, как часто вы создаете резервные копии, вы должны запланировать достаточный резерв для хранилища журналов, чтобы выжить в течение нескольких дней (по выходным?) Без рабочей резервной копии. Если, конечно, вы можете вмешиваться в течение нескольких минут в любое время дня.
eckes

Ответы:

13

Нет, но это может сделать ваш журнал транзакций меньше, поэтому ваш SQL Server будет использовать меньше места.

Для простоты, скажем, вы генерируете 1 МБ активности журнала транзакций каждую минуту. Через 15 минут вы сгенерировали 15 МБ активности журнала, но это также означает, что ваш журнал транзакций должен иметь размер не менее 15 МБ (при условии, что вы используете модель полного восстановления).

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

Однако, если вы будете ждать 6 часов, это будет занесено в журнал 360 МБ активности - ваш файл журнала транзакций (LDF) будет больше.

Здесь я использую небольшие простые цифры - вы хотите изменить их для своей среды, чтобы увидеть влияние на собственное пространство журнала транзакций.

Брент Озар
источник
6

В каждом файле журнала транзакций, записываемом на диск, есть небольшие издержки, даже если в БД не произошло никаких изменений. В некоторых моих базах данных (SQL Server 2014, сжатие включено для резервных копий) журналы транзакций, записанные в периоды бездействия, обычно составляют 9,5 КБ на файл TRN.

Но, кроме этих накладных расходов, журналы транзакций будут содержать все изменения, сделанные с момента написания последнего файла TRN, поэтому объем общих данных не будет значительно меняться.

Чем чаще вы пишете файлы, тем меньше рискуете потерять данные.

Некоторые эксперты рекомендуют запускать эти резервные копии журналов каждую минуту . Да, действительно. Обычно я стараюсь запускать их примерно каждые 3 минуты в рабочее время, когда происходит большая часть активности, затем примерно каждые 10-15 минут в непиковое время (для систем, которые реально работают только в рабочее время, т.е. если ваша система работает круглосуточно ...).

СаМ
источник