【问题标题】:Creating a view for the backup status of a SQL Server 2008-2014为 SQL Server 2008-2014 的备份状态创建视图
【发布时间】:2023-03-16 02:39:01
【问题描述】:

我需要为 SQL Server 创建备份状态的视图。输出应如下所示:

差异:0 天
备份数据库已完成
开始时间:2016.01.30 19:48:03
结束:2016.01.30 22:34:51
时长 02:46:48
尺寸 (GB) : 1,156.77
备份类型(TSM 或 SQL Server 维护计划)
数据库名称

关于如何为 SQL Server 执行此操作的任何想法? 是否可以确定备份是使用 TSM TDP 还是使用 SQL Server 维护计划进行的?

【问题讨论】:

    标签: sql-server sql-server-2008 view sql-server-2012 backup


    【解决方案1】:

    MSDB:

    SELECT
          backup_type =
                CASE f.[type]
                    WHEN 'D' THEN 'Full'
                    WHEN 'L' THEN 'Log'
                    WHEN 'I' THEN 'Diff'
                END
        , f.database_name
        , f.backup_start_date
        , f.backup_finish_date
        , duration = CAST(f.backup_finish_date - f.backup_start_date AS TIME)
        , f.backup_size
        , b.physical_device_name
    FROM (
        SELECT
              s.media_set_id
            , s.[type]
            , s.database_name
            , s.backup_start_date
            , s.backup_finish_date
            , backup_size =
                CASE WHEN s.backup_size = s.compressed_backup_size
                    THEN s.backup_size
                    ELSE s.compressed_backup_size
                END / 1048576.
            , RowNum = ROW_NUMBER() OVER (PARTITION BY s.database_name, s.[type] ORDER BY s.backup_finish_date DESC)
        FROM msdb.dbo.backupset s
        --WHERE s.database_name = DB_NAME()
    ) f
    JOIN msdb.dbo.backupmediafamily b ON f.media_set_id = b.media_set_id
    WHERE f.RowNum = 1
    ORDER BY f.backup_finish_date DESC
    

    输出 -

    backup_type database_name        backup_start_date    backup_finish_date   duration   backup_size   physical_device_name
    ----------- -------------------- -------------------- -------------------- ---------- ------------- ------------------------------------------------------------
    Full        model                2016-02-25 15:14:20  2016-02-25 15:14:21  00:00:01   0.52112197    G:\model.bak
    Full        kh_sql_server        2016-02-25 13:13:38  2016-02-25 13:13:38  00:00:00   0.53086376    D:\DATABASES\SQL_2012\BACKUP\kh_sql_server.bak
    Full        master               2016-02-24 13:27:24  2016-02-24 13:27:26  00:00:02   32.95404911   G:\tempdb.bak
    Full        AdventureWorks2012   2016-02-11 13:46:14  2016-02-11 13:46:16  00:00:02   44.70329856   E:\SHARE_BACKUP\AdventureWorks\AdventureWorks2012.bak
    Full        Refactoring          2016-01-05 18:59:08  2016-01-05 18:59:10  00:00:02   37.53390598   NUL
    Log         shrink_test          2016-01-05 18:56:07  2016-01-05 18:56:07  00:00:00   0.02001571    NUL
    Full        shrink_test          2016-01-05 18:49:14  2016-01-05 18:49:14  00:00:00   0.45571231    NUL
    Full        backup_test          2015-12-21 14:49:01  2015-12-21 14:49:02  00:00:01   0.45937156    D:\DATABASES\SQL_2012\BACKUP\backup_test.bak
    Full        users                2015-11-23 13:15:44  2015-11-23 13:15:45  00:00:01   0.72006702    D:\DATABASES\SQL_2012\BACKUP\users.bak
    Full        OnlineFormatFull     2015-11-06 15:08:38  2015-11-06 15:08:39  00:00:01   23.63910865   D:\DATABASES\SQL_2012\BACKUP\T20151106_OnlineFormatFull.bak
    

    默认跟踪:

    SELECT
        CASE WHEN t.EventSubClass = 1
            THEN 'BACKUP' 
            ELSE 'RESTORE'
        END, t.TextData, t.ApplicationName, t.LoginName, t.StartTime, t.EndTime
    FROM sys.traces i
    CROSS APPLY sys.fn_trace_gettable([path], DEFAULT) t
    WHERE i.is_default = 1
        AND t.EventClass = 115 -- Audit Backup/Restore Event
    

    【讨论】:

    • 谢谢,TSM TDP 备份在physical_dive_name 列中显示如下:TDPSQL-000014A0-0000
    • 纯属巧合;)))
    猜你喜欢
    • 1970-01-01
    • 2013-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-02
    • 2022-01-10
    相关资源
    最近更新 更多