仅在执行备份时,还原标头的用途是什么?


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仅执行备份头,然后执行备份。

我想知道它的用途是什么,以及是否可以以某种方式减少执行时间。它似乎比实际备份需要更长的时间。

Answers:


7

我注意到,在备份之前,SQL Server仅执行备份头,然后执行备份。

这可能是sql server内部执行的还原步骤的一部分。

您可以使用来查看还原阶段DBCC TRACEON(3604, 3605, 3004);仅在NON PROD服务器上将其用于教育目的。

在此处输入图片说明

在此处输入图片说明

正如您在上面看到的那样,还原基本上有3个主要阶段-数据复制,撤消和重做阶段以及其他子阶段,在其中也可以打开并加载备份集。

它似乎比实际备份需要更长的时间。

为了缩短还原时间,您应该

  • 启用即时文件初始化。
  • 使用T-SQL并with REPLACE为现有数据库进行还原,而不是删除和还原。
  • 确保对msdb进行了适当的维护。
  • 检查VLF。VLF越多,恢复时间越长。

请参阅通过@AaronBertrand照顾慢速备份或还原


6

RESTORE HEADERONLY 允许SQL Server在实际备份之前检查目标文件的某些属性。

您可以通过BACKUP DATABASE ...在SQL Server代理作业中使用T-SQL 而不是使用存在很多问题的维护计划GUI 来运行备份来防止这种情况。


3

RESTORE HEADERONLY如果您的备份包含大量的虚拟日志文件(VLF),则可能会花费很长时间。如果将源数据库日志文件缩小并重新生成适当的大小,则可以成功地解决执行还原所花费的时间。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.