12.7 查看备份历史

12.7 查看备份历史


12.7.1 历史记录表

  服务器实例上所有 SQL Server 备份和还原操作的完整历史记录存储在 msdb 数据库中。msdb是一个系统数据库。SQL Server Agnet 使用 msdb 数据库来计划警报和作业,SSMS、Service Broker 和数据库邮件等其他功能也使用该数据库。

  为了规避丢失对备份和还原历史记录的最新更改的风险,请经常备份 msdb 数据库。

  msdb 系统数据库中存储备份和还原元数据的历史记录表如下:

历史记录表
说明
backupfile
每个备份的数据或日志文件在表中占一行。例如,备份了某个数据库,由backupfile表可以得知这个数据库由多少个数据文件和日志文件组成。
backupfilegroup
备份集中的每个文件组在表中占一行。
backupmediafamily
每个介质簇在表中占一行。如果介质簇驻留在镜像介质集中,则对于介质集中的每个镜像,该介质簇都具有一个单独的行。
backupmediaset
每个备份介质集在表中占一行。
backupset
每个备份集在表中占一行。
restorefile
每个已还原文件在表中占一行。这包括按文件组名称间接还原的文件。
restorefilegroup
每个已还原的文件组在表中占一行。

restorehistory

每个还原操作在表中占一行。



12.7.2 访问备份历史记录

  可以通过 T-SQL 语句查看相关的历史记录表。

  例如,下面的语句用来检查是否对 SQLDB01 数据库执行过事务日志备份(“D”表示对数据文件执行备份,“L”表示对事务日志执行备份)。

SELECT * FROM msdb.dbo.backupset WHERE database_name='SQLDB01' AND [type]='L' 



12.7.3 清除备份历史记录

  每次执行备份或还原操作后会向备份和还原历史记录表添加额外的行。因此,如果实例中的数据库备份非常频繁,建议定期执行 sp_delete_backuphistory,通过删除早于指定日期的备份集条目,减小备份和还原历史记录表的大小。

USE msdb; 

GO 

EXEC sp_delete_backuphistory @oldest_date = '2015-06-30';

GO 


  sp_delete_database_backuphistory 将从备份和还原历史记录表中删除有关指定数据库的所有历史记录。

EXEC sp_delete_database_backuphistory @database_name = 'SQLDB01';


提示:

  使用存储过程 sp_delete_backuphistory 和 sp_delete_database_backuphistory  只是删除了 msdb 数据库中的某些记录。即使所有历史记录都已被删除,物理备份介质也会保留下来。
  将一个数据库恢复到另一个实例时,msdb 数据库中的备份历史不会复制过去。



本文出自 “SQL Server 管理员指南” 博客,谢绝转载!

你可能感兴趣的:(查看)