독까의 이야기

 MSSQL 트랜잭션 로그파일 삭제 및 줄이는 방법

 

-로그잘라내기

1. BACKUP LOG 'DB명' TO '디바이스명(장치명)'   --로그백업 
   BACKUP LOG 'DB명' WITH TRUNCATE_ONLY        --로그 잘라내기

 


ex)BACKUP LOG GUNNM TO GUNNM   
    BACKUP LOG GUNNM WITH TRUNCATE_ONLY

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


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

ex)DBCC SHRINKFILE ('GUNNM_LOG',500)
    DBCC SHRINKFILE ('GUNNM_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)