技術とか戦略とか

SIerで証券レガシーシステムを8年いじってからSESに転職した普通の文系SEによる技術ブログ。

The transaction log for database (Database_name) is full due to 'LOG_BACKUP'が出た場合の対処法

表題のエラーについて、日本語のサイトの対処法がわかりにくかったり、英語のサイトが引っかかったりするので、日本語でわかりやすい対処法を記事に残します。
 
表題のエラーはSQLServerのエラーで、簡単に言うと「ログが一杯になりトランザクションが失敗した」という内容です。
 
対処法としては、以下の3つのクエリを順番に投げれば解消します。
(少なくとも自分の環境では解消しました)
(参考サイト:https://www.xadmin.net/transaction-log-database-due-log_backup/
 
【対処法】
①一時的に設定変更する
ALTER DATABASE Database_name
SET RECOVERY SIMPLE
GO
 
②ログを削除する
DBCC SHRINKFILE (Database_name, 1);
GO
 
③設定を元に戻す
ALTER DATABASE Database_name
SET RECOVERY FULL
GO