2007~2011/SQL Server2010. 2. 18. 11:26

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 (전체)로 변경합니다.

USE MASTER
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

Posted by Lai Go