본문 바로가기
IT/DB

[mssql] 로그 파일 축소 방법

by 불멸남생 2023. 2. 10.

1. 개요 

mssql 로그 파일이 DB 파일 보다 커질때 파일 크기를 줄여야합니다. 대부분 로그파일에 있는 것은 DB반영 된 것이기 때문에 오래 저장할 필요는 없습니다. 로그 파일 줄이때 너무 적에 줄이면 필요시마다 자동증가를 하기 때문에 부하가 발생 할 수 있습니다. 서비스 운영에 적정수중으로 줄여야합니다.

또한 꼭 복구를 하지 않아도 되는 DB 라면 로그파일은 생성하지 않아도 됨

(아래 속성에서 "옵션" --> "복구모델" 에서 "단순" 으로 설정하면됨)

2. 세부 방법

 

* mssql 로그 파일 축소 방법

1. BACKUP LOG 'DB' TO '디바이스명(장치명)'   --로그백업   

   BACKUP LOG 'DB' WITH TRUNCATE_ONLY        --로그 잘라내기

/*

 ex)BACKUP LOG XERP TO XERP     

    BACKUP LOG XERP WITH TRUNCATE_ONLY

 위의 두가지 방법 모두 사용할 수 있으나 로그백업을 권장함(단순복구모델일때는 로그 잘라내기를 함)

*/

 

2. DBCC SHRINKFILE('로그파일명', 파일크기)      -- 파일크기를 정해주어 파일을 축소하는 방법

   DBCC SHRINKFILE('로그파일명', TRUNCATEONLY)  -- 불필요한 로그 파일을 잘라 파일을 축소하는 방법   

/*

 ex)DBCC SHRINKFILE ('XERP_LOG',500)

    DBCC SHRINKFILE ('XERP_LOG',TRUNCATEONLY)

       DBCC LOGINFO

 

 위의 두가지 방법 모두 사용할 수 있으니 TRUNCATEONLY를 더 권장 함

*/

--파일명 알아내기

 EXEC SP_HELPFILE

    SELECT * FROM SYSFILES 

 

 

* MSSQL 2008 의 경우

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

 

* MSSQL 2005 의 경우

 

use [DB];

sp_helpfile; <- 로그파일 정보 확인

backup log [DB] with no_log;

dbcc shrinkfile ([로그파일명], 10); <- [로그파일명] 10MB로 축소

 

* MSSQL 2000 의 경우

 

use [DB];

sp_helpfile; <- 로그파일 정보 확인

 

backup log [DB] with truncate_only;

dbcc shrinkfile ([로그파일명], 10); <- [로그파일명] 10MB로 축소

 

(: 10MB , 사용률 6MB --> 9MB 축소 실행 --> 실체 축소량 4M)

반응형