1. 程式人生 > >SQLServer 系統資料庫msdb備份資訊太多

SQLServer 系統資料庫msdb備份資訊太多

正在整理資料庫備份情況。發現 msdb 中有太多備份歷史資訊,統計檢視結果如下:

select OBJECT_NAME(id),rows 
from sys.sysindexes 
where indid in(0,1)
and rows > 0
order by rows desc


找其中一個表檢視時間,這些記錄包含了2年多的歷史資訊!~這些資訊沒什麼用,於是找到兩個儲存過程把它刪除了。

sp_delete_backuphistory [ @oldest_date = ] 'oldest_date' 
sp_delete_database_backuphistory [ @database_name = ] 'database_name'

sp_delete_backuphistory是按日期刪除,sp_delete_database_backuphistory 按資料庫刪除。

當前建立一個定時作業,每月執行,按時間刪除3個月前的資訊

Use msdb
GO
DECLARE @OldestDate DATETIME
SET @OldestDate = DATEADD(M,-3,GETDATE())
EXEC msdb.dbo.sp_delete_backuphistory @OldestDate

執行後,資料庫將清除以下幾個表的資料:

backupfile
backupfilegroup
restorefile
restorefilegroup
restorehistory
backupset
backupmediafamily
backupmediaset