트랜잭션 로그 백업 예약 작업 실패 원인 분석
SQL Server 유지 관리 계획으로 트랜잭션 로그 백업을 설정하였는데 일부 데이터베이스만 백업이 되며 작업은 실패로 끝나면서 오래된 백업 자료 삭제도 진행되지 않는 상황입니다. 무슨 문제가 있는 것일까요?
[환경]
SQL Server 2000
[현상]
데이터베이스 유지 관리 계획에 아래 2개의 유지 관리 계획이 있습니다.
1. 모든 데이터베이스 전체 백업 : 데이터베이스 10개 / 매주 1회 / 2주 이전 백업 자료 삭제 설정
2. 모든 데이터베이스 트랜잭션 로그 백업 : 데이터베이스 10개 / 매일 1회 / 1주 이전 백업 자료 삭제 설정
전체 데이터베이스 백업은 매주 성공하나 트랜잭션 로그 백업은 5개의 데이터베이스만 성공하며 작업 실패로 인해 1주 이전 백업 자료도 삭제되지 않습니다.
다음 사용자로 실행되었습니다. sqlmaint.exe가 실패했습니다. [SQLSTATE 42000] [오류 22929]. 단계가 실패했습니다.
[원인]
백업이 되지 않는 5개의 데이터베이스의 recovery model 이 simple 로 설정되어 있습니다. Simple recovery model 로 설정되어 있을 경우 트랜잭션 로그 백업이 지원하지 않습니다.
[해결방법]
방법1. 트랜잭션 로그 백업이 필요한 데이터베이스라면 recovery model 을 full (전체)로 변경합니다.
GO
ALTER DATABASE [LAIGO] SET RECOVERY FULL
방법2. simple recovery model 을 사용하는 데이터베이스는 트랜잭션 로그를 백업하지 않습니다.
[분석결과]
1. SQL Error Log 확인 - 특정 데이터베이스만 백업 받는 것이 확인 됨
2. SP_HELPDB 'DB_NAME' - 트랜잭션 로그 백업이 실패하는 데이터베이스의 복구 모델이 simple 로 되어 있음을 확인
[참고자료]
Backup Under the Simple Recovery Model
http://msdn.microsoft.com/en-us/library/ms191164.aspx
ALTER DATABASE SET Options (Transact-SQL)
http://msdn.microsoft.com/en-us/library/bb522682.aspx
작성자 : Lai Go / 작성일자 : 2010.02.18