PRB : データベースのダンプと復元を行うと MSDB データベースが一杯になる

この記事は、以前は次の ID で公開されていました: JP152354
この資料は、アーカイブされました。これは "現状のまま" で提供され、更新されることはありません。
現象
SQL Executive ベースのタスクが失敗し、次のエラー メッセージが表示されます。
Error: 1105, Severity : 17, State 2
Can't allocate space for object '%.*s' in database '%.*s' because the
'%.*s' segment is full. If you ran out of space in Syslogs, dump the
transaction log. Otherwise, use ALTER DATABASE or sp_extendsegment to
increase the size of the segment.
次の SQL Executive ベースのタスクが失敗する可能性があります。
  1. 定期ダンプと定期復元
  2. レプリケーションのためにセットアップしたタスク
  3. 警告
  4. 定期 Web タスク
原因
MSDB データベースが一杯になることが原因です。
回避策
SQL Server 6.5 では、バックアップ情報を保持する次のテーブルが MSDB データベースに追加されています。

sysbackupdetail : バックアップ (ダンプ) の作成に使用するデバイス群の要約が記述されています。
sysbackuphistory : 各バックアップ操作 (ダンプ) の要約が記述されています。
sysrestoredetail : 復元 (ロード) に使用するデバイス群の要約が記述されています。
sysrestorehistory : 各復元操作 (ロード) の要約が記述されています。

SQL Server では、オンラインでのバックアップおよび復元の完全なヒストリが自動的に MSDB データベースに保存されます。この情報に含まれるのは、バックアップを実行した人、実行された日付と時刻、およびそのバックアップが保存されているデバイスまたはファイルです。

システム管理者は、これらのテーブルを監視して、MSDB データベースが一杯にならないように、テーブルの古いエントリを削除する必要があります。

次のストアド プロシージャを使用して、MSDB データベースのシステム テーブルからエントリを削除できます。
use mastergosp_configure 'allow', 1goreconfigure with overridegodrop proc sp_cleanbackupRestore_log   go   create proc sp_cleanbackupRestore_log   @DeleteBeforeDate datetime   as   begin      Delete from msdb.dbo.sysbackupdetail where backup_id         in (Select backup_id from msdb.dbo.sysbackuphistory where backup_start <=   @DeleteBeforeDate)      Delete from msdb.dbo.sysbackuphistory where backup_start  <=   @DeleteBeforeDate      Delete from msdb.dbo.sysrestoredetail where restore_id         in (Select restore_id from msdb.dbo.sysrestorehistory where backup_start <=   @DeleteBeforeDate)      Delete from msdb.dbo.sysrestorehistory where backup_start <=   @DeleteBeforeDate   endgosp_configure 'allow', 0goreconfigure with override
そして、新しく作成されたストアド プロシージャを実行する必要があるとします。たとえば、ストアド プロシージャに記載されているテーブルから、1997 年 1 月 2 日以前のエントリをすべて削除するには、次とおり実行します。
exec sp_cleanbackupRestore_log  '1/2/97'
メモ : syslogs オブジェクトに対して 1105 が発生した場合は、Microsoft Knowledge Base で次の記事を参照してください。110139 - INF: Causes of SQL Transaction Log Filling Up
詳細
この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 152354(最終更新日 1999-04-01) をもとに作成したものです。

プロパティ

文書番号:152354 - 最終更新日: 02/01/2014 00:08:36 - リビジョン: 3.1

Microsoft SQL Server 6.5 Standard Edition

  • kbnosurvey kbarchive kbtshoot KB152354
フィードバック