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

  这些msdb表包括:

  

      backupfile

  backupfilegroup

  backupmediafamily

  backupmediaset

  backupset

  restorefile

  restorefilegroup

  restorehistory

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

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

  

  图一

可能使用的第一个程序是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并且与这些已经删除的条目有关的备份记录都已经清除。

  

  图二

  第二个系统存储过程允许你删除某个特定数据库的历史备份数据,这个程序被称作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备份和恢复记录的更多相关文章

  1. SQL Server中灾难时备份结尾日志(Tail of log)的两种方法

    转自:http://www.cnblogs.com/CareySon/archive/2012/02/23/2365006.html SQL Server中灾难时备份结尾日志(Tail of log) ...

  2. SQL Server中如何实现遍历表的记录

    SQL Server遍历表一般都要用到游标,SQL Server中可以很容易的用游标实现循环,实现SQL Server遍历表中记录. 但游标在实际的开发中都不推荐使用. 我们知道还可以借助临时表或表变 ...

  3. SQL Server中使用msdb数据库的存储过程sp_delete_backuphistory和sp_delete_database_backuphistory来删除备份和恢复历史数据

    根据微软文档对sp_delete_backuphistory存储过程的介绍,SQL Server在每次备份和恢复数据库后,会向msdb系统数据库的备份和恢复历史表写入数据,如果SQL Server经常 ...

  4. 在SQL SERVER中根据某字段分隔符将记录分成多条记录

    XT_RSGL_KQSZ_LS表结构如下图: CREATE TABLE  XT_RSGL_KQSZ_LS( KQFW VARCHAR(400) ) 其中KQFW字段以分割符 , 隔开 INSERT I ...

  5. c#Winform程序调用app.config文件配置数据库连接字符串 SQL Server文章目录 浅谈SQL Server中统计对于查询的影响 有关索引的DMV SQL Server中的执行引擎入门 【译】表变量和临时表的比较 对于表列数据类型选择的一点思考 SQL Server复制入门(一)----复制简介 操作系统中的进程与线程

    c#Winform程序调用app.config文件配置数据库连接字符串 你新建winform项目的时候,会有一个app.config的配置文件,写在里面的<connectionStrings n ...

  6. 第16周翻译:SQL Server中的事务日志管理,级别3:事务日志、备份和恢复

    源自: http://www.sqlservercentral.com/articles/Stairway+Series/73779/ 作者: Tony Davis, 2011/09/07 翻译:刘琼 ...

  7. SQL Server 批量主分区备份(Multiple Jobs)

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 案例分析(Case) 方案一(Solution One) 方案二(Solution Two) ...

  8. SQL Server中的高可用性(2)----文件与文件组

        在谈到SQL Server的高可用性之前,我们首先要谈一谈单实例的高可用性.在单实例的高可用性中,不可忽略的就是文件和文件组的高可用性.SQL Server允许在某些文件损坏或离线的情况下,允 ...

  9. SQL Server 批量主分区备份(One Job)

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 案例分析(Case) 实现代码(SQL Codes) 主分区完整.差异还原(Primary B ...

随机推荐

  1. 【git】项目更新方法

    [放弃修改] 工作区 -- 暂存区 -- 本地仓库 -- 远程仓库 工作区 -- 暂存区: git diff git checkout .  /  git reset --hard 暂存区 -- 本地 ...

  2. 解决webpack vue 项目打包生成的文件,资源文件均404问题

    最近在使用webpack + vue做个人娱乐项目时,发现npm run build后,css js img静态资源文件均找不到路径,报404错误...网上查找了一堆解决办法,总结如下 一.首先修改c ...

  3. 由PostgreSQL的区域与字符集说起(转)

    转自:http://blog.chinaunix.net/uid-354915-id-3502551.html 由PostgreSQL的区域与字符集说起 一.PostgreSQL的区域区域属性有以下几 ...

  4. Android以root起一个process[shell脚本的方法]

    有时候我们写的app要用uid=0的方式启动一个process,framework层和app层是做不到的,只有通过写脚本,利用am来实现.下面是具体步骤: 1.创建一个包含Main()方法Java p ...

  5. JSP的三大指令

    三大指令:page指令.include指令和taglib指令. page指令: * import:等同与import语句   <%@ page import="java.util.*& ...

  6. Apache Tomcat Server Options 选项说明

    Apache Tomcat Server Options 选项说明 p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Helvetica Neu ...

  7. android自定义view系列:认识activity结构

    标签: android 自定义view activity 开发中虽然我们调用Activity的setContentView(R.layout.activity_main)方法显示View视图,但是vi ...

  8. Android 进阶11:进程通信之 ContentProvider 内容提供者

    学习启舰大神,每篇文章写一句励志的话,与大家共勉. When you are content to be simply yourself and don't compare or compete, e ...

  9. Mac上安装Jenkins持续部署初体验

    1.首先去官网下载安装包 https://jenkins.io/doc/book/installing/ 安装完成后,很不幸,无法访问他的默认站点 查了一堆资料,有的说环境变量没有配置,有的说没有执行 ...

  10. 查找对应jar的maven包

    当原有项目换成maven项目时,往往不知道具体jar包在maven里叫什么.这边文章教你如何去找到自己想要的jar的maven包. 工具/原料   浏览器 方法/步骤   1 登录一下网站 http: ...