Какая польза от восстановления заголовка только при выполнении резервного копирования?

10

Когда я отслеживаю свои резервные копии с помощью следующего запроса:

SELECT      command, percent_complete,
            'elapsed' = total_elapsed_time / 60000.0,
            'remaining' = estimated_completion_time / 60000.0
FROM        sys.dm_exec_requests
WHERE       command like 'BACKUP%'
or command like 'RESTORE%'

Я заметил, что перед резервным копированием, SQL Server выполняет восстановление заголовка только затем резервное копирование.

Мне было интересно, какая польза от него и можно ли как-то сократить время его выполнения. Похоже, это займет больше времени, чем фактическое резервное копирование.

Николя де Фонтене
источник

Ответы:

7

Я заметил, что перед резервным копированием, SQL Server выполняет восстановление заголовка только затем резервное копирование.

Это может быть частью шагов восстановления, которые выполняются внутри сервера sql.

Вы можете посмотреть на этапах восстановления, используя DBCC TRACEON(3604, 3605, 3004);. Используйте его только для образовательных целей на сервере NON PROD.

введите описание изображения здесь

введите описание изображения здесь

Как вы можете видеть выше, существует, по существу, 3 основных этапа восстановления - этап копирования, отмены и восстановления, а также другие подэтапы, в которых он открывается и загружается также резервный набор.

Похоже, это займет больше времени, чем фактическое резервное копирование.

Чтобы улучшить время восстановления, вы должны

  • Включить мгновенную инициализацию файла.
  • Используйте T-SQL и восстановите with REPLACEдля существующей базы данных вместо удаления и восстановления.
  • Убедитесь, что вы делаете правильное обслуживание MSDB.
  • Проверьте на VLFs. Чем больше VLF, тем дольше время восстановления.

Обратитесь к няне медленного резервного копирования или восстановления @AaronBertrand .

Кин Шах
источник
6

RESTORE HEADERONLY позволяет SQL Server проверять целевой файл на наличие определенных свойств перед фактическим резервным копированием.

Вы можете предотвратить это, запустив резервные копии с помощью T-SQL BACKUP DATABASE ...в задании агента SQL Server вместо использования графического интерфейса плана обслуживания, который изобилует проблемами.

Макс Вернон
источник
3

RESTORE HEADERONLYЭто может занять много времени, если ваша резервная копия содержит много файлов виртуальных журналов (VLF). Возможно, вам удастся решить, сколько времени потребуется для восстановления, если вы уменьшите размер файла журнала исходных баз данных до нужного размера.

Avarkx
источник