曾经遇到过一个用户MSDB数据库非常大,让我帮忙查查是什么原因。使用sp_spaceused找出了所有表的数据大小,发现问题是SQL Server备份和还原历史表数据太大。用户经常会做日志备份,但是从来没有清除过历史记录。后来在设置了维护计划定期清除备份记录,问题就不在发生了。

这里列出了查询SQL Server备份还原记录的语句以及如何清理数据库备份还原的脚本:

--查询SQL Server备份历史

SELECT

CONVERT(CHAR(100),SERVERPROPERTY('Servername'))ASServer,

msdb.dbo.backupset.database_name,

msdb.dbo.backupset.backup_start_date,

msdb.dbo.backupset.backup_finish_date,

msdb.dbo.backupset.expiration_date,

CASE msdb..backupset.type

WHEN 'D' THEN 'Database'

WHEN 'L' THEN 'Log'

END ASbackup_type,

msdb.dbo.backupset.backup_size,

msdb.dbo.backupmediafamily.logical_device_name,

msdb.dbo.backupmediafamily.physical_device_name,

msdb.dbo.backupset.nameASbackupset_name,

msdb.dbo.backupset.description

FROM   msdb.dbo.backupmediafamily

INNER JOIN msdb.dbo.backupsetONmsdb.dbo.backupmediafamily.media_set_id=msdb.dbo.backupset.media_set_id

ORDER BY

msdb.dbo.backupset.database_name,

msdb.dbo.backupset.backup_finish_date

-----查询SQLServer还原历史

select bus.server_nameas'server',rh.restore_date,bus.database_nameas'database',

CAST(bus.first_lsnASVARCHAR(50))asLSN_First,

CAST(bus.last_lsnASVARCHAR(50))asLSN_Last,

CASE rh.[restore_type]

WHEN 'D'THEN'Database'

WHEN 'F'THEN'File'

WHEN 'G'THEN'Filegroup'

WHEN 'I'THEN'Differential'

WHEN 'L'THEN'Log'

WHEN 'V'THEN'Verifyonly'

END ASrhType

FROM msdb.dbo.backupsetbus

INNER JOINmsdb.dbo.restorehistoryrhON rh.backup_set_id=bus.backup_set_id

---清除20120101之前所有的备份还原记录(没有参数指定只删除备份或者欢迎记录)

use msdb

go

exec sp_delete_backuphistory@oldest_date='20121010'

--删除'AdventureWorks2012'数据库的备份还原记录(没有参数指定保留日期,All或者None)

USE msdb;

GO

EXEC sp_delete_database_backuphistory@database_name='AdventureWorks2012';

http://blog.csdn.net/kevinsqlserver/article/details/8087293

查询清除SQL Server数据库备份还原历史记录的更多相关文章

  1. SQL server数据库备份还原问题备忘(亲测有效)

    问题一:SQL server数据库备份还原方法 http://www.cnblogs.com/zgqys1980/archive/2012/07/04/2576382.html 问题二:无法执行 BA ...

  2. SQL Server数据库备份&还原

    一.备份 1.登录数据库 2.找到要还原的数据库 右键-任务-备份-添加(路径只写一个,刚开始二个总是报错)-确定 二.还原数据库 这个之间报错了二次 1.报错1:备份集中的数据库与现有数据库“XXX ...

  3. SQL Server 数据库备份还原和数据恢复

      认识数据库备份和事务日志备份 数据库备份与日志备份是数据库维护的日常工作,备份的目的是在于当数据库出现故障或者遭到破坏时可以根据备份的数据库及事务日志文件还原到最近的时间点将损失降到最低点. 数据 ...

  4. SQL server 数据库备份还原Sql

    /************ 一.数据库备份 ************/ --完整备份默认追加到现有的文件 backup database DBXS To disk='d:\backup\DBXS_fu ...

  5. SQL Server 数据库备份还原常用SQL语句及注意

    1.备份数据库 backup database db_name to disk='d:\db_name.bak' with format --通过使用with format可以做到覆盖任何现有的备份和 ...

  6. SQL Server数据库 备份A库,然后删除A库,再还原A库,此时数据库一直显示“正在还原”的解决方法

    SQL Server数据库 备份A库,然后删除A库,再还原A库,此时数据库一直显示"正在还原"的解决方法: A库一直显示"正在还原". 在这种状态下,由于未提交 ...

  7. (图解版)SQL Server数据库备份与还原

        本文介绍了SQL Server数据库备份的两种方式.一种是直接拷贝数据库中的文件mdf 和日志文件ldf,另一种是生成脚本语言. 第一种方式:     选中需要备份的数据库,将数据库从运行的数 ...

  8. sql server 数据库备份历史记录

    sql server 数据库备份历史记录 SELECT ),SERVERPROPERTY('Servername'))AS Server, bs.database_name, bs.backup_st ...

  9. SQL Server数据库备份的镜像

    SQL Server数据库备份的镜像 一个完整备份可以分开镜像 USE master GO BACKUP DATABASE [testdatabase] TO DISK = N'C:\testdata ...

随机推荐

  1. Linux通用KVM自动安装Shell脚本(兼容所有Linux发行版/CentOS/Ubuntu)

    官网: https://github.com/retspen/webvirtmgr/wiki/Setup-Host-Server 安装: wget -O - https://retspen.githu ...

  2. NHibernate 存储过程 第十四篇

    NHibernate也是能够操作存储过程的,不过第一次配置可能会碰到很多错误. 一.删除 首先,我们新建一个存储过程如下: CREATE PROC DeletePerson @Id int AS DE ...

  3. Inno Setup入门(二十二)——Inno Setup类参考(8)

    http://379910987.blog.163.com/blog/static/33523797201121331832201/ 列表框 列表框(ListBox)是Windows应用程序中重要的输 ...

  4. subline text 工具快捷键说明

    编辑 ctrl + enter           光标当前行下一行新增一行,并且光标跳到下一行进行编辑 ctrl + shift +enter  光标当前行上一行新增一行,并且光标跳到上一行进行编辑 ...

  5. hdu 1244 DP

    水DP dp[i%2][j]=Max(dp[i%2][j-1],dp[1-i%2][j-l[i]]+sum[j]-sum[j-l[i]]); #include "stdio.h" ...

  6. 本地环境 XAMPP+phpStorm+XDebug+chrome配置和断点调试

    不明白phpStorm+XAMPP+chrome组合的phpStorm配置XDebug的断点调试,很多种网页办法都看过了,可用,但没达预期.QQ群问,一个大牛很奇怪我都配置了怎么还不正确,很干脆地说远 ...

  7. TensorFlow------读取CSV文件实例

    TensorFlow之读取CSV文件实例: import tensorflow as tf import os def csvread(filelist): ''' 读取CSV文件 :param fi ...

  8. TestNG 五 运行TestNG

    一.并行运行于超时 可以通过在suite标签中使用 parallel 属性来让测试方法运行在不同的线程中.这个属性可以带有如下这样的值: <suite name="My suite&q ...

  9. .html(),.text()和.val()的差异

    .html(),.text()和.val()的差异总结:  .html(),.text(),.val()三种方法都是用来读取选定元素的内容:只不过.html()是用来读取元素的html内容(包括htm ...

  10. 怎样在model里面使用number_to_currency

    ActiveSupport::NumberHelper.number_to_currency(amount, precision: 0)