2011年9月15日木曜日

トランザクション ログの肥大化

SQL Server 2008 R2ではデフォルトでは、トランザクションログは、ハードディスクの空き領域がなくなるまで、またはファイルサイズが最大になるまで、どんどん肥大化していく。

ログの肥大化を防止するには、ログを定期的にバックアップするしかない。

バックアップを実行すると、トランザクションログの使用済み領域を切り捨てることができる。
ログのバックアップにより使用済み領域を解放して、空き領域へ変換してくれるので、その領域が再利用できるようになる。

しかし、ログの切り捨ては、再利用可能な領域を作るだけで、ファイルサイズを縮小するわけではない。
しかし、大きく肥大化したファイルの場合は縮小したい場合がある。
この場合は DBCC SHRINKFILE コマンドを実行する

DBCC SHRINKFILE(論理名, 縮小後のサイズ)

1.まずログの使用量を確認。
DBCC SQLPERF(LOGSPACE) コマンドを使用してLog Size/Log Space Usedを見てみる。

2.FORMATオプションでバックアップを実行。
BACKUP DATABASE ***DB
 TO DISK = 'C:\***DB.bak' 
   WITH FORMAT

3.ログ バックアップの実行
BACKUP LOG ***DB
 TO DISK = C:\log1.bak'

4.DBCC SHRINKFILE(log1) を実行

でログファイルは縮小される。

0 件のコメント:

コメントを投稿