Вы здесь

Почему бэкап больше чем база данных?

Недавно на линию консультации пришел такой вопрос: Настроено обслуживание баз данных с помощью QMB. Почему файл резервной копии получается большего размера чем файлы базы данных?

Дело в том, что SQL Server умеет сохранять в одном файле произвольное количество резервных копий. Это определяется параметром NOINIT в T-SQL команде BACKUP. Если параметр указан, то при создании бэкапа в существующий файла новая резервная копия будет дописана в конец. Если нет, то файл будет повторно инициализирован. В задачах QMB все скрипты содержат параметр NOINIT.

Параметр NOINT в T-SQL скриптах QMB

Поэтому в QMB все зависит от того, какой шаблон задан в свойствах политики обслуживания для наименований резервных копий и создаваемых подпапок.

Шаблоны имени бэкапов в свойствах политики обслуживания

Так если шаблон имени файла содержит маркер %timestamp% (дата/время на момент исполнения задачи), то каждая резервная копия всегда будет записываться в свой файл. Потому что её имя всегда будет уникально. Если в наименование файла вместо %timestamp% использовать %date%, то резервные копии будут складываться в один файл в рамках одного дня.

Как можно посмотреть какие резервные копии хранятся в файле бэкапа?

При желании можно получить список всех резервных копий, хранящихся в определенном файле с помощью команды RESTORE HEADERONLY. Ниже приведен пример чтения содержимого файла backup_20160322_cmp.bak:

RESTORE HEADERONLY FROM DISK = N'F:\Backup\Srv01\backup_20160322_cmp.bak'

На рисунке ниже показан результат исполнения скрипта в SSMS:

Restore Headeronly в SSMS

Обратите внимание, на колонки:

DataBaseName - файл содержит резервные копии для разных баз данных.

BackupType – файл содержит разные типы резервных копий (полная, разностная, журнал транзакций).

Position – каждая резервная копия имеет уникальную позицию внутри файла.

Compressed - признак сжатой резервной копии (доступно с SQL 2008R2).

Внимание! В один файл нельзя записывать сжатые и несжатые резервные копии. Поэтому по умолчанию в шаблоне имени файла в QMB предлагается указывать маркер %cmp%, который будет добавлять префикс cmp если сжатие включено.

Рекомендации

Рекомендуется записывать в один файл только одну резервную копию по следующим причинам:

  1. Выше надежность – лучше потерять одну резервную копию, чем несколько.
  2. Меньше нагрузка на сеть при копировании. QMB умеет копировать новые и измененные файлы резервных копий. Таким образом файл будет каждый раз копироваться после добавлении в него новой резервной копии.

Категории: