Database/MS-SQL

[스크랩] MSSQL 에러로그 남기지 않기

99iberty 2017. 1. 18. 15:52


http://www.sqler.com/?mid=bColumn&page=1&listStyle=webzine&search_target=tag&search_keyword=backup&document_srl=698742



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 명령어를 사용하여 옵션을 해제 한다. 


강성욱 / jevida@naver.com
Microsoft SQL Server MVP
Blog : http://sqlmvp.kr
Facebook : http://facebook.com/sqlmvp