MS-SQL2009.04.14 02:29

출처: http://support.microsoft.com/kb/272318

 

MS-SQL 서버를 사용하다 보면, Transaction Log가 너무 커져서 디스크 공간을 다 써버리는 경우가 간혹 발생합니다. IT관리자들이 눈에 불을 켜고 감시하는 Production 환경이라면 이럴 일이 없겠지만, 개발 환경에서는 아무도 신경 안 쓰다 보면 비일비재하게 발생하는 경우입니다. –_-;;;

이럴 때에 이 Transaction Log 파일을 축소하는 방법입니다.

 

1. Truncate_Only 옵션을 사용해서 DB BackUp

BACKUP LOG DB_NAME WITH TRUNCATE_ONLY

 

2. DBCC Shrinkfile 명령을 사용해서 로그 파일 축소하기

DBCC SHRINKFILE(DB_NAME_LOG, 2)

 

위 명령을 실행하고 나면, Transaction Log 파일이 2MB(?)로 줄어들었을 것입니다. (오해 마시길 바랍니다. 출처에 나온 원래 샘플이 2MB였네요 –_-;;)

Posted by kkongchi
TAG

댓글을 달아 주세요

  1. 최상묵

    TRUNCATE_ONLY 옵션은 2008 버전부턴 사용되지 않습니다
    로그를 비정상적으로 지우기 보다 제대로 사용하라는 의미인지 모르겠습니다
    암튼 트랜잭션 로그의 올바른(?) 처치 방법은 두가지 인거 같네요

    1. 데이터베이스 복구모델을 simple 로 하거나

    2. 트랜잭션 로그를 백업하고 로그파일 크기를 줄인다 입니다
    트랜잭션 로그를 백업하는 방법은
    2.1 Backup log databasename to disk=’Path\Filename.trn’
    로그파일 크기를 줄이는 방법은
    2.2 Dbcc shrinkfile(‘logfilename’, 2) 입니다
    백업된 로그파일은 지우거나 나중을 위해 남겨놓거나..
    아.. 이런 과정을 거쳐도 안줄어 드는 경우가 많은데 그런 경우
    이 과정(2.1. , 2.2.)을 한 번 더 반복하면 됩니다 ㅡㅡ;;;;
    그 이유는 로그가 백업되면 로그파일 자체의 unused 공간은 커지는데
    OS에 반환하기 위한 파일 체인이 남아있을 수 있다는 의미같은데
    정확히는 모르겠네요 ㅠㅠ

    2009.06.01 21:35 [ ADDR : EDIT/ DEL : REPLY ]
    • 하긴, 좀 비정상적인 옵션이죠. 백업인데 지우는 옵션이라니..ㅎㅎ

      2009.06.15 22:37 신고 [ ADDR : EDIT/ DEL ]