7.01.2013

[MSSQL]2008でのトランザクションログのログサイズを縮小

トランザクションログが肥大化しすぎてディスクを圧迫中~!!

MSSQL2005だと下記コマンドでトランザクションログが縮小されてたんだけど。。。
Microsoft SQL Server Management Studioを起動させ、
新しいクエリから下記コマンドを実行してみる。

backup log DatabaseName with truncate_only
dbcc shrinkfile(LogFileName)

実行してみると怒られてしまう。

いろいろと調べてみて、バックアップするとログファイルが削除されるということから
バックアップ用ディスクを作り~の、早速バックアップしてみる。
が、しかしログサイズに変更はなし。。。
仕方ないので、圧縮してみるものの微々たる程度の効果しかなし!!

調べても「バックアップすると」しか書いてなく、途方にくれつつもググりまくる(涙

「復旧モデル」を「完全」から「単純」にし、「完全」に戻すといいというのがヒット。

とりあえず対象のデータベースのタスク>バックアップを開く
バックアップの種類をトランザクションログに変更>バックアップ先指定>OKボタン(バックアップ開始)

上記、バックアップ完了したら、

対象のデータベースのプロパティを開く>オプションを選択>復旧モデルを単純に変更>OK

対象のデータベースのタスク>圧縮>ファイルを開く
ファイルの種類をログに変更>未使用領域の解放前にページを再構成するを選択>任意のログサイズを設定>OK
 ※トランザクションログはある程度の容量を持たせた方がいい

再度、対象のデータベースのタスク>圧縮>ファイルを開く
ファイルの種類をログに変更>未使用領域を解放する>OK
ログファイルが解放される

対象のデータベースのプロパティを開く>オプションを選択>復旧モデルを完全に戻す>OK

以上で完了


実際、これであってるのか心配なんだけど。。。

コマンドでするなら、下記でいいはず

USE DatabaseName
GO
ALTER DATABASE DatabaseName SET RECOVERY SIMPLE;
GO
DBCC SHRINKFILE (LogfileName, 1);
GO
ALTER DATABASE DatabaseName SET RECOVERY FULL;
GO

以上

何かあればコメントください。
MSSQLはメインで使ったことないのでわかりません。。。

0 件のコメント:

コメントを投稿