본문 바로가기

IT/Mssql

[MSSQL] 트랜잭션 로그파일 삭제 및 잘라내기

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