MSSQL 트랜잭션 로그파일 삭제 및 줄이는 방법
우선 DB와 로그 크기 확인을 위해 아래와 같은 쿼리를 실행해보자.
SELECT *
FROM sys.master_files
WHERE database_id like '%database_name%'
데이터베이스(DB)와 로그(LOG) 크기를 축소하기 위한 쿼리문. 로그는 "데이터베이스명_LOG"으로 대부분 되어 있음.
- 로그 백업 및 잘라내기 (잘라내기를 더 권장함)
1. BACKUP LOG 'DB명' TO '디바이스명(장치명)' -- 로그백업
2. BACKUP LOG 'DB명' WITH TRUNCATE_ONLY -- 로그 잘라내기
- 로그 축소하기(TRUNCATEONLY를 더 권장함)
1. DBCC SHRINKFILE('로그파일명', 파일크기) -- 파일크기를 정해주어 파일을 축소하는 방법
2. DBCC SHRINKFILE('로그파일명', TRUNCATEONLY) -- 불필요한 로그 파일을 잘라 파일을 축소하는 방법
USE [DataBase];
GO
-- Truncate the log by changing the database recovery model to SIMPLE.
ALTER DATABASE [DataBase]
SET RECOVERY SIMPLE;
GO
-- Shrink the truncated log file to 10 MB. <- 로그파일을 10MB로 축소
DBCC SHRINKFILE ([DataBase_Log], 10);
GO
-- Reset the database recovery model.
ALTER DATABASE [DataBase]
SET RECOVERY FULL;
GO