본문 바로가기
Development/Database

트랜젝션 로그 파일 줄이기.

by KingCat 2016. 8. 31.

트랜젝션 로그 설정을 자동 증가가 되지 않도록 해놓았을때 로그가 정해진 용량에 도달하면


The transaction log for database <DataBase Name> is full. To find out why space in the log cannot be reused. see the log_reuse_wait_desc column in sys.databases


라는 문구를 내보내면서 쿼리가 동작하지 않는다.


해결 방법으로는 정해진 용량을 자동 증가되도록 설정하는 방법이있다.


DataBase Properties -> Files -> Log 파일을 선택해서 Autogrowth 옵션에 자동 증가를 켜준다. 그리고 무제한 증가로 설정해주면 된다.


단, 이때 이 Log 파일이 커지다보면 HDD 용량을 초과하게 되고, 더 이상 쓸 수 없게 되는 경우가 발생한다.


이때는 백업을 해놓고 Log 파일의 사이즈를 다시 줄여주면 된다.


<Log 파일의 사이즈를 줄여주는 쿼리>


USE [DataBaseName];

GO


// 복구모델 변경

ALTER DATABASE [DataBaseName]

SET RECOVERY SIMPLE;

GO


// Log 파일을 10MB로 설정

DBCC SHRINKFILE ([LogFileName], 10);

GO


// 복구모델 다시 세팅

ALTER DATABASE [DataBaseName]

SET RECOVERTY FULL;

GO


<Log 파일의 이름을 찾아오는 쿼리>


// 결과에서 name 컬럼의 값이 LogFileName 이다.


1) EXEC SP_HELPFILE


2) SELECT * FROM SYSFILES


<현재 사용 중인 트랜잭션 로그의 현황을 보기>


DBCC SQLPERF('LogSpace')

'Development > Database' 카테고리의 다른 글

MSSQL 계정 로그인 잠김 풀기.  (0) 2016.09.06
Query 정리  (0) 2011.02.09