none
查询SQL数据库上次完整备份的时间 RRS feed

  • 问题

  • 你好 sql2008中承载着很多的数据库,每天都要检查数据库上一次备份成功的时间并登录。

    有什么方法,通过命令,一次查询出所有数据库的备份时间么?

    2016年5月6日 1:43

答案

  • select database_name, [type], max(backup_finish_date) from msdb..backupset where [type] = 'D' or [type] = 'L' or [type]='I' group by database_name, [type]

    想不想时已是想,不如不想都不想。

    • 已建议为答案 i6first 2016年5月6日 6:06
    • 已标记为答案 Ian.sP 2016年5月25日 7:27
    2016年5月6日 2:08
    版主

全部回复

  • select database_name, [type], max(backup_finish_date) from msdb..backupset where [type] = 'D' or [type] = 'L' or [type]='I' group by database_name, [type]

    想不想时已是想,不如不想都不想。

    • 已建议为答案 i6first 2016年5月6日 6:06
    • 已标记为答案 Ian.sP 2016年5月25日 7:27
    2016年5月6日 2:08
    版主
  • You can query backupset in msdb for that.
    2016年5月6日 2:11
  • 参考这里

    http://blog.sqlauthority.com/2010/11/10/sql-server-get-database-backup-history-for-a-single-database/

    文中的SQL语句如下

    USE AdventureWorks
    GO
    -- Get Backup History for required database
    SELECT TOP 100
    s.database_name
    ,
    m.physical_device_name,
    CAST(CAST(s.backup_size / 1000000 AS INT) AS VARCHAR(14)) + ' ' + 'MB' AS bkSize,
    CAST(DATEDIFF(second, s.backup_start_date,
    s.backup_finish_date) AS VARCHAR(4)) + ' ' + 'Seconds' TimeTaken,
    s.backup_start_date,
    CAST(s.first_lsn AS VARCHAR(50)) AS first_lsn,
    CAST(s.last_lsn AS VARCHAR(50)) AS last_lsn,
    CASE s.[type] WHEN 'D' THEN 'Full'
    WHEN 'I' THEN 'Differential'
    WHEN 'L' THEN 'Transaction Log'
    END AS BackupType,
    s.server_name,
    s.recovery_model
    FROM msdb.dbo.backupset s
    INNER JOIN msdb.dbo.backupmediafamily m ON s.media_set_id = m.media_set_id
    WHERE s.database_name = DB_NAME() -- Remove this line for all the database
    ORDER BY backup_start_date DESC, backup_finish_date
    GO


    专注于.NET MIS开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2016年5月6日 6:03