MSSQL 로그 줄이기
페이지 정보
작성자 서방님 댓글 1건 조회 181회 작성일 10-04-09 12:59본문
로그를 비우는 방법
BACKUP TRAN 데이터베이스명 WITH TRUNCATE_ONLY
로 지울 수 있다. - 이는 물리적인 크기를 줄이는게 아니라 단지 내용만 지우는 것입니다.
BACKUP TRAN vision2002 WITH TRUNCATE_ONLY
GO
use vision2002
GO
DBCC SHRINKFILE (vision2002_Log,10)
GO
MSSQL 트랜잭션 로그 파일 줄이는 방법
여기저기에 유사한 자료가 많은데, 잘 동작하지 않는게 많아서 이렇게 정리하였습니다.
1) 줄이려고 하는 DB의 현재 상태를 조회한다. (데이타베이스명이 photodb인 경우)
sp_helpdb photodb
2) 해당하는 DB의 트랜잭션 로그를 비운다.
BACKUP LOG photodb with NO_LOG
3) 해당하는 DB로 이동한다.
use photodb
-- master DB에서는 아래의 명령이 작동하지 않음 ^^
4) 로그파일의 물리적인 파일을 줄인다.
DBCC SHRINKFILE (photodb_log, TRUNCATEONLY)
-- 여기서 photodb_log는 위 1)에서 조회해서 나오는 트랜잭션 로그파일의 name을 말한다.
-- DB를 생성할때 기본적으로 DB명+"_log"의 형태로 설정이 된다.
-- 여기서 photodb_log는 위 1)에서 조회해서 나오는 트랜잭션 로그파일의 name을 말한다.
-- DB를 생성할때 기본적으로 DB명+"_log"의 형태로 설정이 된다.
5) 줄여진 트랜잭션 로그의 크기를 확인한다.
sp_helpdb photodb
이벤트뷰어에 MSSQL관련 에러메시지가 잔뜩 나와있어서 확인해 본 결과 트랜잭션 로그 파일이 139GB나 되었다. 남은공간 9MB. 해결방법은 해당 트랜잭션로그를 삭제하거나, 줄이는 방법인데, 아래와 같은 명령어를 쿼리분석기에서 실행하면 된다.
backup log DATABASE_NAME with truncate_only
dbcc shrinkdatabase(DATABASE_NAME, truncateonly)
dbcc shrinkdatabase(DATABASE_NAME, 500)
트랜잭션로그 크기를 500MB로 제한.
댓글목록
등록된 댓글이 없습니다.