트랜잭션 로그의 관리
트랜잭션 로그를 자동증가 옵션으로 사용할 경우 무한적으로 증가할 수 있음.
Disk full을 막기 위하여 트랜잭션 로그의 관리가 필요함.
1. 트랜잭션 로그 삭제
- 트랜잭션 로그의 중요도가 낮아서 백업할 필요가 없는 경우 그냥 삭제
BACKUP LOG DB명 WITH {NO_LOG|TRUNCATE_ONLY}
2. 트랜잭션 로그 백업
- 트랜잭션 로그를 백업하면 자동으로 기존 로그 내용이 정리된다.
단, 이미 늘어나 있는 트랜잭션로그 파일(?.LDF)의 사이즈가 줄어드는건 아니고,
로그의 내용만 삭제된다.
BACKUP LOG DB명 TO DISK = <백업파일명>
3. 트랜잭션 로그 파일 사이즈 줄이기
- ?.LDF 파일의 실제 사이즈를 줄이고 싶을 경우
DBCC SHRINKDATABASE(DB명,TRUNCATEONLY)
or
BACKUP LOG DB명 WITH TRUNCATE_ONLY
트랜잭션 로그 내용이 있는 만큼의 사이즈로 줄어든다.
* 트랜잭션 로그의 MAX 사이즈 제한
- 특정 용량 이상으로 늘어나길 원치 않을 경우 사이즈를 제한한다.
제한사이즈를 넘어설 경우 옛 데이터부터 자동 삭제된다.
DBCC SHRINKDATABASE(DB명,1024)
DB명 뒤의 단위는 MB.
4. 확인 방법
MS-SQL Server Management Studio 등에서 SQL명령어로
Use <DB명>;
DBCC LOGINFO; /* 로그파일 정보 보기 */
EXEC SP_HELPFILE; /* 데이터파일,로그파일 정보 보기 */
select * from sysfiles /* 데이터파일,로그파일 정보 보기 */
dbcc sqlperf(logspace); /* 로그파일 사용량(%) 보기 */
참고(SQL 2008 이상 버젼)
TEMP DB 로그 축소 방법
방법1. DB Log를 TRUNCATEONLY 하는 방법(로그가 최소 사이즈 부터 시작)
DBCC SHRINkFILE(templog)
설명
DBCC SHRINkFILE(DB로그명)
방법2. DB Log 초기 크기를 지정하여 줄이는 방법
-- Templog 사이즈를 300Gb로 초기 사이징 하여 시작하게 설정
ALTER DATABASE tempdb MODIFY FILE (NAME = 'templog', SIZE = 307200)
설명
ALTER DATABASE DB명 MODIFY FILE (NAME = 'file_log Name', SIZE = Mb단위 크기)