SQL Serverトランザクションログがいっぱいになったときのクリーンアップ方法
SQL Server トランザクションログをクリーンアップする方法:
- ログのバックアップ
- DBCC SHRINKFILE
BACKUP LOG [数据库名] TO DISK = '备份路径'
DBCC SHRINKFILE (N'日志文件名', 100) -- 将日志文件的大小缩小到100MB
- データベースをシンプルまたはバルクログモードに設定して、トランザクションのログ領域を自動解放します。
-- 将恢复模式修改为简单模式
ALTER DATABASE [数据库名] SET RECOVERY SIMPLE
- トランザクション逐次コミット:トランザクションログがいっぱいで、それを引き起こしているのが長時間実行中のトランザクションである場合は、トランザクションの一部をコミットまたはロールバックしてトランザクションログのスペースを解放します。
- トランザクションログファイルのサイズを増やす:上記の手段では改善できなかった場合、トランザクションログファイルのサイズを増やす方法が考えられます。ALTER DATABASEステートメントでトランザクションログファイルのサイズを増やすことができます。
ALTER DATABASE [数据库名] MODIFY FILE ( NAME = N'逻辑日志文件名', SIZE = 新大小)
なお、トランザクションログの消去はデータ消失やデータベースの復旧不能を引き起こす可能性があるため、操作前にデータベースのバックアップを行うことを推奨し、本番環境での操作には十分注意してください。