안녕하세요.
최근 업무 중에 JOB관련 문제가 있어서 확인하던 중 이상한 상태가 확인되었는데 해결이나 원인파악이 안되서 글을 올립니다.
아래 스크린샷처럼 JOB History의 기간이 음수로 표시되는 부분인데요.
해당 작업은 데이터를 다른 DB로 복사하는 작업인데 성공했다고 기록되었지만..
실제로 데이터를 본 결과 수행되지 않은 걸로 확인되었습니다.
procedure stats 에도 해당 JOB에서 실행하는 SP의 실행횟수가 증가되지 않았습니다.
msdb.dbo.sysjobhistory에서는 run_duration이 -954439074과 같은 값으로 남아있더라구요..
Log Backup을 수행하는 JOB도 같은 현상이 있어서 실제로 LOG 파일 생성이 어떻게 되었나 보니
JOB History에는 실행 날짜가 오후 5시 30분인데..
해당 파일은 오후 5시 29분에 생성되었고 윈도우 이벤트 뷰어에도 오후 5시 29분대로 찍혀있더군요
위 문제가 계속해서 발생하진 않고... 동일한 JOB에서도 간헐적으로 발생하고 있습니다.
원인파악을 위해서 구글링도 좀 해봤는데
https://www.sqlservercentral.com/Forums/Topic732501-5-1.aspx
위 글 외에는 다른 문서를 찾진 못했습니다.. 해당 글에서도 해결책이 제시되어있진 않네요..
제가 운영하는 서버의 경우 VM서버이고.. 호스트에 2개 이상 게스트가 있는 상태인데.. 이부분에서 문제가 있는 건지 의심이 되긴합니다.
DB도 결국 OS의 시간을을 사용하는 걸로 알고 있는데.. 이상하네요
혹시 해당 현상을 경험해보시거나 원인에 대해 도움을 주시면 감사하겠습니다.
Comment 3
-
HolyGrail
2018.07.17 17:56
-
catchv
2018.07.18 14:01
해당 문제는 서버의 시간 변경으로 시간 계산의 오류로 발생됩니다.
테스트 해보실 수는 방법은 테스트 가능한 DB에서 wait delay 1분정도 job을 하나 만들어서 실행하시고 OS시간을 10분정도 전으로 돌리시면 같은 증상이 나타납니다.
서버 환경이나 날짜시간 동기화 서버의 상태 등을 정확히 알수는 없지만 서버의 시간이 변경되면 보통은 이벤트로그에 기록이 남게 됩니다.
-
HolyGrail
2018.07.20 15:24
감사합니다. 실제로 job 실행시간에 윈도우 시간 변경 이벤트로그가 찍혀있네요.
서버 시간 동기화쪽을 알아봐야겠습니다.
아.. OS와 DB 버전은 2016입니다