zoukankan      html  css  js  c++  java
  • 从SQL Server中清除msdb备份和恢复记录

    正如我在前面的技巧“您的数据库上次恢复是什么时候呢?”中提到的,SQL Server使msdb数据库内系统表中的备份和恢复记录保持激活状态。没有正常的维护,这些系统表将变得很大,从而导致对于msdb数据库整体超大。

      这些msdb表包括:

       

          backupfile 

      backupfilegroup

      backupmediafamily

      backupmediaset

      backupset

      restorefile

      restorefilegroup

      restorehistory

      幸运的是,微软提供了两个系统存储过程,你可以用它们来限制保存出具的msdb数据库表的大小。第一个程序删除日期晚于某个给定时间的所有备份和恢复。第二个程序允许你删除某个特定数据库的所有备份和恢复记录。让我们具体看看这两个程序。

      通过观察我系统上的msdb表backupset和restorehistory,我发现下面的已经执行的数据库备份和恢复:

      从SQL Server中清除msdb备份和恢复记录

      图一

    可能使用的第一个程序是sp_delete_backuphistory。这个系统存储过程带有一个参数 – 一个截止时间。任何早于给定时间的日期都会从这个技巧前面提到的msdb表中删除。在下面的例子中,我将删除所有4/2/2009的所有日期。

       

          -- delete all backup/restore history prior to a specified date 

      use msdb

      go

      exec sp_delete_backuphistory '2009-04-02'

      go

      再次查看这些表。我发现所有早于4/2/2009并且与这些已经删除的条目有关的备份记录都已经清除。

      从SQL Server中清除msdb备份和恢复记录

      图二

      第二个系统存储过程允许你删除某个特定数据库的历史备份数据,这个程序被称作sp_delete_database_backuphistory。不幸的是,这个程序没有提供一个选择截止日期的更好的选项;它全有或全无。在下一个例子中,我将删除一个给定数据库的所有备份记录。

       

          -- delete all backup history for a specific database 

      use msdb

      go

      exec sp_delete_database_backuphistory 'test1'

      go

      正如你看到的,只有这个给定数据库的记录被删除了:

      从SQL Server中清除msdb备份和恢复记录

      图三

  • 相关阅读:
    Reverse题的tips
    电子公文传输系统 团队作业(五):冲刺总结(第三天)
    webrtc sdp(会话传输协议)详解
    CentOS新系统开启网络
    FreeSWITCH Cookbook
    NetEngine AR V300R019 配置指南-IP业务(命令行)—— NAT
    将md(markdown)文件导出成pdf的最简单办法
    liblinear
    Accelerometer, Gyroscope, and Magnetometer Analysis with Matplotlib
    svmlight
  • 原文地址:https://www.cnblogs.com/qingsong-do/p/4185662.html
Copyright © 2011-2022 走看看