[英]SQL Server Backup Report
我正在嘗試創建一個報告,其中詳細介紹了我們SQL Server上的最新備份。 截至目前,我已將其寫出:
select
[Server_Name] = a.server_name,
[Database_Name] = a.database_name,
[Last_Backup] = max(a.backup_finish_date),
[Backup_Type] = CASE A.type
WHEN 'D' THEN 'FULL'
WHEN 'I' THEN 'Differential'
WHEN 'L' THEN 'Log'
WHEN 'F' THEN 'FileGroup'
WHEN 'G' THEN 'FileGroup Differential'
WHEN 'P' THEN 'Partial'
WHEN 'Q' THEN 'Partial Differential'
END,
[Backup_Set] = b.name,
[Days_Since_Last_Backup] = DATEDIFF(d,(max(a.backup_finish_Date)),GETDATE())
from msdb.dbo.backupset AS a
INNER JOIN msdb.dbo.backupset as b ON a.backup_set_id = b.backup_set_id
GROUP BY a.database_name, a.server_name, b.name, a.type
ORDER BY database_name
我想更改它,以便列顯示以下內容:
Server_Name, Database_Name, Last_Full_Backup, Last_Diff_Backup, Last_Log_Backup,
Backup_Set, Days_Since_Last_Full
為了顯示Last_Full_Backup
, Last_Diff_Backup
和Last_Log_Backup
的日期,我認為我必須進行一些Last_Log_Backup
,但是我不確定如何操作(我對旋轉不十分熟悉)。
任何幫助將不勝感激。 在此先感謝所有。
您可以做一個“手動樞紐”,例如:
SELECT
[Server_Name] = a.server_name,
[Database_Name] = a.database_name,
[Last_Backup] = MAX(a.backup_finish_date),
[Last_Full_Backup] = MAX(CASE WHEN A.type='D'
THEN a.backup_finish_date ELSE NULL END),
[Last_Diff_Backup] = MAX(CASE WHEN A.type='I'
THEN a.backup_finish_date ELSE NULL END),
[Last_Log_Backup] = MAX(CASE WHEN A.type='L'
THEN a.backup_finish_date ELSE NULL END),
[Backup_Set] = b.name,
[Days_Since_Last_Backup] = DATEDIFF(d,(max(a.backup_finish_Date)),GETDATE())
FROM msdb.dbo.backupset AS a
INNER JOIN msdb.dbo.backupset as b ON a.backup_set_id = b.backup_set_id
GROUP BY a.database_name, a.server_name
ORDER BY database_name
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.