SQL Server ErrorLog에 백업 로그 남지기 않기
SQL Server에 문제가 발생하였을 때 또는 수시로 ErrorLog를 확인하여 시스템에 문제가 없는지 확인 한다. 이때 가장 많이 보이는 에러가 있다.
[Database backed up] 로그. 즉 데이터베이스를 백업할 때 남기는 로그이다. 정상적으로 실행되더라도 로그를 남기므로 정작 확인하여야 할 로그를 찾는데 어려움이 있다.
옵션을 사용하여 백업시 로그를 남기지 않도록 하자!
- 전체 스크립트
-- 백업진행 BACKUP DATABASE SW_TEST TO DISK = 'D:\BACKUP\SW_TEST.BAK' GO
-- 정상적으로로그가남는지확인. EXEC SP_READERRORLOG GO -- 로그를기록하지않도록옵션적용 DBCC TRACEON(3226, -1) GO
-- 백업진행 BACKUP DATABASE SW_TEST TO DISK = 'D:\BACKUP\SW_TEST.BAK' GO
-- 로그가남지않는지확인 EXEC SP_READERRORLOG
-- 백업시에러발생 BACKUP DATABASE SW_TEST TO DISK = 'D:\_BACKUP\SW_TEST.BAK' GO
-- 에러에대한로그가남는지확인 EXEC SP_READERRORLOG GO |
[SP_READERRORLOG]를 사용하여 로그를 확인해 보면 다음과 같이 백업로그가 많인 남아 있음을 확인 할 수 있다.
EXEC SP_READERRORLOG GO |
우선 백업 로그가 정상적으로 남는지 확인 한다. 백업 명령어를 사용하여 백업을 한다. 그리고 로를 확인한다. 백업 로그가 정상적으로 남는 것을 확인 할 수 있다.
-- 백업진행 BACKUP DATABASE SW_TEST TO DISK = 'D:\BACKUP\SW_TEST.BAK' GO
-- 정상적으로로그가남는지확인. EXEC SP_READERRORLOG GO |
TRACE 명령어 3226을 사용하여 옵션을 적용한 후 백업을 진행한다. 그리고 로그를 확인 한다. 더 이상 백업에 대한 로그가 남지 않음을 확인 할 수 있다.
-- 로그를기록하지않도록옵션적용 DBCC TRACEON(3226, -1) GO
-- 백업진행 BACKUP DATABASE SW_TEST TO DISK = 'D:\BACKUP\SW_TEST.BAK' GO
-- 로그가남지않는지확인 EXEC SP_READERRORLOG GO |
그렇다면 백업 에러가 발생하며 어떻게 될까? 강제로 에러를 발생시켜 보자. 본 실습에서는 존재하지 않는 폴더에 백업을 진행하여 에러를 발생 시켰다. 그리고 로그를 확인한다.
정상적인 백업에 대해서는 로그가 기록되지 않지만 에러 발생시에는 로그가 기록되는 것을 확인 할 수 있다.
-- 백업시에러발생 BACKUP DATABASE SW_TEST TO DISK = 'D:\_BACKUP\SW_TEST.BAK' GO
-- 에러에대한로그가남는지확인 EXEC SP_READERRORLOG GO |
정상적인 백업에 대해 다시 로그를 남기고 싶음녀 TRACEOFF 명령어를 사용하여 옵션을 해제 한다.
2012-08-23 / 강성욱 / http://sqlmvp.kr
'SQL Server > SQL Server Tip' 카테고리의 다른 글
Min / Max Server Memory 설정 (0) | 2015.07.17 |
---|---|
Tempdb 에러 (0) | 2015.07.17 |
SQL Server의 Errorlog는 어디에 저장 될까? (0) | 2015.07.17 |
통계(Statistics) (0) | 2015.07.17 |
활성 트랜잭션 찾기 (0) | 2015.07.17 |