トランザクションログファイルのサイズ縮小について

本投稿のSQL Serverのバージョンは「2017 Developer Edition」です。SQL Server Management Studioのバージョンは「17.3」です。

忘れそうになるので、備忘録として残しておきます。

トランザクションログファイルのサイズを縮小するには、以下のコマンドを使います。

第一パラメータには、トランザクションログファイルの論理名を指定します。

第二パラメータには、ファイルサイズをMB単位で指定します。

■コマンド

 「DBCC SHRINKFILE('DemoDatabase_log', 0)」

指定するトランザクションログファイルを調べるには、以下のSQLを実行します。

SQL

 「SELECT * FROM sys.database_files」 

すると、以下の様な実行結果が得られます。

f:id:masaru1006a:20180321155533j:plain

復旧モデルが完全の場合は、ファイルサイズが圧縮されない場合が有る(?)ので、以下のコマンドでトランザクションログファイルを切捨ててから「DBCC SHRINKFILE」を行うと良いかも。(良く分かっていないですが、「DBCC SHRINKFILE」と「BACKUP LOG」を交互に繰返し実行しないと、ファイルサイズが初期サイズまで戻らない事が有る気がします。)

■コマンド

 「BACKUP LOG [DemoDatabase] TO DISK = N'NUL'」

 ※[DemoDatabase]には、データベース名を指定する。

 

SQL Serverを使っていると、トランザクションログの上限サイズオーバーになる事が有るので、まとめてみました。