Sql-Server

T-SQL 查詢以查找特定維護計劃的備份文件夾

  • December 21, 2016

我想檢查備份計劃是否設置正確並需要查詢不同的伺服器,主要是 SQL Server 2008,但也有 2012。

有沒有辦法查詢數據庫維護計劃、備份文件夾、啟動時間等資訊?

到目前為止,我只有這個:

select name, subplan_name from msdb.dbo.sysmaintplan_subplans sp join 
msdb.dbo.sysmaintplan_plans p on p.id = sp.plan_id

大多數情況下,這與新伺服器有關,因此備份還沒有機會執行,導致日誌無用。

您可以使用 msdb 中的可用視圖來查找有關備份的資訊:

  1. dbo.backupse t:提供有關備份過程最詳細的資訊
  2. dbo.backupmediafamily: 為與備份集相關的物理備份文件提供元數據。
  3. dbo.backupfile:此系統視圖為物理備份文件提供最精細的資訊

您可以使用下面的 T-SQL 程式碼列出所有必需的資訊:

   SELECT  
   CONVERT(CHAR(100), SERVERPROPERTY('Servername')) AS Server, 
   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 AS backup_type,  
   msdb.dbo.backupset.backup_size,  
   msdb.dbo.backupmediafamily.logical_device_name,  
   msdb.dbo.backupmediafamily.physical_device_name,   
   msdb.dbo.backupset.name AS backupset_name, 
   msdb.dbo.backupset.description 
   FROM   msdb.dbo.backupmediafamily  
   INNER JOIN msdb.dbo.backupset ON msdb.dbo.backupmediafamily.media_set_id =    msdb.dbo.backupset.media_set_id 
   WHERE  (CONVERT(datetime, msdb.dbo.backupset.backup_start_date, 102) >= GETDATE() - 1)  
   ORDER BY  
   msdb.dbo.backupset.database_name, 
   msdb.dbo.backupset.backup_finish_date

引用自:https://dba.stackexchange.com/questions/91199