Loading
2009. 12. 28. 11:21 - 나쁜철군

MSSQL 트랜잭션 로그 자동 백업하기.[MSSQL-2000]


가끔 DB의 로그 파일을 확인해보면 엄청나게 증가해 있는것을 볼때가있다.

하지만 트랜잭션 로그를 자동백업 처리하지 않았거나

한번에 대량 쿼리시 트랜잭션 로그 파일이 엄청나게 증가한다.



디스크 풀의 문제 뿐만 아니라 쿼리속도도 상당하게 떨어지게 된다.

이를 경우 로그를 백업하고 로그 파일 사이즈를 줄이는 방법이다.



1. 로그 백업을 통한 여유 공간 확보

backup log 데이타베이스명 with no_log
go
sp_helpdb 데이타베이스명 --> 확인



2. 실제 로그 파일 줄이기

dbcc shrinkfile('데이타베이스 로그파일',truncateonly)


3. 트랜잭션 로그 백업 설정

MSSQL 관리자로 들어가서 트랜잭션 로그 백업 설정을 하도록 한다.

트랜잭션 로그의 증가량을 확인하여 적절한 주기를 선택하도록 한다.



[따라해봅시다.] 

Sample 데이터베이스의 Sample_log 로그 파일의 가상 로그 파일을 제거하여, 트랜잭션 로그 파일을 축소합니다.

1. 가상 로그 파일 확인합니다. 결과 행의 수가 가상 로그 파일의 수입니다.

USE Sample
GO
DBCC LOGINFO
GO


2. 트랜잭션 로그 백업을 수행합니다. 로그 백업을 받을 수 없는 경우에는 로그를 삭제합니다.

BACKUP LOG Sample TO DISK='D:\DB_Backup\Sample_Log_091225.bak'
GO
-- 또는
BACKUP LOG Sample WITH NO_LOG
GO


3. 트랜잭션 로그 파일의 크기를 가능한 한 작은 크기로 축소합니다.

EXEC sp_helpfile
GO
DBCC SHRINKFILE (Sample_log, TRUNCATEONLY)
GO

4. 로그 파일의 크기를 적절하게 변경합니다.
ALTER DATABASE Sample
MODIFY FILE
( NAME = 'Sample_log'
, SIZE = 30)
GO