프린트 하기

OS환경 : Windows Server 2012 R2 Standard (64bit)

 

DB 환경 : SQL Server 2012

 

방법 : SQL Server 2012 LDF(트랜잭션 로그) 파일 용량 줄이기

MSSQL은 실제 데이터가 저장된 데이터베이스 파일(.MDF)과 데이터베이스의 처리에 대한 로그 파일(.LDF)로 구성되어 데이터를 관리함

SQL Server 를 운영하다 보면 LDF(log) 파일 사이즈가 커져서 관리가 필요한 시점이 생김

이때 조치방법을 설명함

 

 

현재 MSDBLog.ldf 사이즈가 1gb로 다른 파일들에 비해 사이즈가 큼

 

 

이 경우 방법이 두가지임

1. SSMS GUI에서 파일 축소

2. 쿼리 입력해서 축소

 

 

1. SSMS에서 파일 축소

트랜젝션 로그 백업

db 우클릭 - 태스트 - 백업 실행

 

 

트랜잭션 로그 선택 후 백업

 

 

축소 작업 진행

해당 database 우클릭 후 테스트 - 축소 - 파일 실행

 

 

파일 형식 : 로그 선택 후 사용하지 않는 공간 해제 체크 후 확인

(현재 할당된 공간과 사용 가능한 공간 확인 후 진행)

 

 

용량 확인

LDF파일의 용량이 줄어듬(1gb -> 512kb)

 

 

2. 쿼리 입력해서 축소

새쿼리 실행 후 LDF를 축소할 db 선택

1
use msdb

 

 

해당 db 정보 확인(현재 LDF 1gb 사용중)

1
sp_helpdb msdb

 

 

트랜젝션 로그 백업

1
backup log msdb to disk='백업경로\msdb.bak'

 

 

트랜잭션 로그 복구모델 SIMPLE(단순)로 변경

1
alter database msdb set recovery simple

 

 

(GUI에선 아래와 같이 진행)

 

 

트랜잭션 로그 사이즈 줄이기(SHRINK)(dbcc shrinkfile (로그파일이름, 로그파일사이즈(MB))

1
dbcc shrinkfile (msdblog, 10)

 

 

트랜잭션 로그 복구모델 FULL(전체)(원복)로 변경

1
alter database msdb set recovery full

 

 

(GUI에선 아래와 같이 진행)

 

 

db 정보 확인

LDF파일의 용량이 줄어듬(1gb -> 128mb)

1
sp_helpdb msdb

 

 

파일탐색기에서 용량 확인

LDF파일의 용량이 줄어듬(1gb -> 128mb)

 

 

복구모델 설명
단순복구모델(Simple)
데이터가 변경되는 내용을 로그파일에 기록하지 않음(마지막으로 백업된 시점까지만 복구 가능)

전체 복구 모델(Full)
데이터가 변경되는 모든 작업과 내용을 로그파일에 기록함(장애가 난 최근 시점까지 복구 가능)
전체 복구 모델을 사용할 경우 트랜잭션 로그파일의 크기가 커져서 DB백업 파일의 크기가 늘어남
DB 복구에 가장 최근 시점까지 복구가 필요한 경우가 아니라면 단순복구모델을 이용해 DB백업 파일의 크기가 커지지않게 하는것이 좋음

 

 

+WITH TRUNCATE_ONLY, WITH NO_LOG 옵션은 SQL2008 이후 버젼에서는 지원되지 않기 때문에

복구모델 변경 후 SHRINKFILE 명령을 사용해야함

 

 

참조 : 

https://docs.microsoft.com/ko-kr/previous-versions/sql/sql-server-2012/ms189493(v=sql.110)
https://yongblog.tistory.com/72
https://server-talk.tistory.com/147
https://developerking.tistory.com/35
https://laigo.kr/121

https://irisgnu.tistory.com/43

https://blog.naver.com/pjhpjh5827/60166951893

https://m.blog.naver.com/ssuyastory/100160920786