ダース以上のSQLサーバーがあり、そのうちの1つは数百のセージデータベースをホストしています。SSMSの[データベース]ノードを右クリックすると、長い遅延が発生し、次のエラーが発生します(復元ダイアログボックスが表示されません)。負荷):
SSMSがバックグラウンドでmsdbまたは何かからバックアップ履歴をロードしていて、スペースが不足していると思います-これは、システムデータベースに過剰なバックアップ履歴があることを意味しますか?もしそうなら、それを維持するための最良の方法は何ですか?
ディスク上のtrnファイルと.bakファイルをクリーンアップするメンテナンスプランがありますが、システムデータベースのログをメンテナンスしているとは思いません。
私の質問へのあなたの回答から、それはバックアップ履歴が多すぎるように見えます。 1回限りのクリアダウンの場合、これらの線に沿った何かがそれを行います。
USE msdb
GO
DECLARE @days DATETIME
SET @days = DATEADD(day,-30,current_timestamp)
EXEC sp_delete_backuphistory @days
GO
この例では、30日以上経過したものがすべて削除されるため、ニーズに適した値に-30
を変更する必要がある場合があります。ただし、30日以上経過したバックアップの復元を手元から構築する必要があることを忘れないでください(問題になる場合と問題にならない場合がありますが、言及したほうがよいと思います)。
今後は、スケジュールされたジョブを介して実行するようにスケジュールして、体を小さくすることができます。