從SQL Server中清除msdb備份和恢複記錄

來源:互聯網
上載者:User

標籤:

正如我在前面的技巧“您的資料庫上次恢複是什麼時候呢?”中提到的,SQL Server使msdb資料庫內系統資料表中的備份和恢複記錄保持啟用狀態。沒有正常的維護,這些系統資料表將變得很大,從而導致對於msdb資料庫整體超大。

  這些msdb表包括:

   

      backupfile 

  backupfilegroup

  backupmediafamily

  backupmediaset

  backupset

  restorefile

  restorefilegroup

  restorehistory

  幸運的是,微軟提供了兩個系統預存程序,你可以用它們來限制儲存出具的msdb資料庫表的大小。第一個程式刪除日期晚於某個給定時間的所有備份和恢複。第二個程式允許你刪除某個特定資料庫的所有備份和恢複記錄。讓我們具體看看這兩個程式。

 

  通過觀察我系統上的msdb表backupset和restorehistory,我發現下面的已經執行的Database Backup和恢複:

  

  圖一

可能使用的第一個程式是sp_delete_backuphistory。這個系統預存程序帶有一個參數 – 一個截止時間。任何早於給定時間的日期都會從這個技巧前面提到的msdb表中刪除。在下面的例子中,我將刪除所有4/2/2009的所有日期。

   

      -- delete all backup/restore history prior to a specified date 

  use msdb

  go

  exec sp_delete_backuphistory ‘2009-04-02‘

  go

  再次查看這些表。我發現所有早於4/2/2009並且與這些已經刪除的條目有關的備份記錄都已經清除。

 

  

  圖二

  第二個系統預存程序允許你刪除某個特定資料庫的曆史備份資料,這個程式被稱作sp_delete_database_backuphistory。不幸的是,這個程式沒有提供一個選擇到期日的更好的選項;它全有或全無。在下一個例子中,我將刪除一個給定資料庫的所有備份記錄。

   

      -- delete all backup history for a specific database 

  use msdb

  go

  exec sp_delete_database_backuphistory ‘test1‘

  go

  正如你看到的,只有這個給定資料庫的記錄被刪除了:

 

  

  圖三

從SQL Server中清除msdb備份和恢複記錄

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.