SQL Server のログ ファイルが肥大化した場合のクリーンアップ方法
SQL Serverログファイルを消去する手順を次に示します。
- 最初にデータベースをバックアップする:ログファイルをクリーニングする前に、データの紛失を防ぐためにデータベースのバックアップを実施してください。
- 単純リカバリーモデルではログファイルがコミットごと自動で切り捨てられるので肥大化しません。完全復旧モデル又は大容量復旧モデルの場合はログを手動で切り捨てる必要があります。
- このスクリプトを使用して、現在のデータベースのログファイルのサイズを表示しようとしています:
USE your_database_name;
GO
EXEC sp_helpfile;
GO
検索結果からログファイルを探して、ファイル名とファイル ID をメモします。
- ログの切り詰め: 以下のスクリプトを使用してログファイルを切り詰め、ログの領域を解放します。
USE your_database_name;
GO
BACKUP LOG your_database_name WITH TRUNCATE_ONLY;
GO
DBCC SHRINKFILE (your_log_file_id, 1);
GO
your_database_nameを実データベース名、your_log_file_idをログファイルのIDで置き換えてください。
注意:TRUNCATE_ONLY选项在较新版本的SQL Server中已被弃用,如果使用的是较新版本,请使用其他备份选项,如SIMPLE或NO_LOG。
- ステップ2でデータベースの復旧モードが切り替えられた場合は、ログクリーニング完了後に復旧モードを元の設定に戻します。
SQL Server のログファイルをクリーンアップしてディスク容量を解放するには、以下の手順を実行します。操作を実行する前に必ずデータベースをバックアップして、データが失われないように保護してください。