SQL Job Agent 를 통해 보면 최근3일이내 실행한 History들만 볼수가 있더라구요.
그래서 Fillter기능을 써서 한달을 지정하고 해봤는데 마찬가지로 이 옵션 또한 최근 3일이내 기록만 보여주더라구요.
최종적으로 질문 드릴 내용은 특정 Job의 History를 모두 보려고 하는데 가능한지 궁금합니다.
가능하다면 어떤 식으로 쿼리를 지정해야 할지 궁금합니다.
Comment 3
-
건우아빠
2013.10.30 12:20
-
SQL Server 에이전트 에서 우클릭 후 속성 선택
기록 탭에 보시면 작업기록의 크기나 기간을 설정할 수 있습니다.
Job History는
msdb.dbo.sysjobs와 msdb.dbo.sysjobhistory를 job_id로 조인하여 보면 됩니다.
-
한태
2016.02.17 19:58
job history 같은 경우 default 값이 1000이어서 설정없이 실행하면 999개까지만 보이게 됩니다.
이는 SQL Server 에이전트의 속성에서 기록탭을 통해 설정할 수 있습니다.
아래의 쿼리를 통해서 job history의 이름, 시간, 성공유무 등을 확인할 수 있고 사용자가 원하는 컬럼이 더 있다면 추가로
설정해주시면 됩니다.
SELECT [JobName] = JOB.name,
[Step] = HIST.step_id,
[StepName] = HIST.step_name,
[Message] = HIST.message,
[Status] = CASE WHEN HIST.run_status = 0 THEN '실패'
WHEN HIST.run_status = 1 THEN '성공'
WHEN HIST.run_status = 2 THEN '다시 시도'
WHEN HIST.run_status = 3 THEN '취소됨'
END,
[RunDate] = HIST.run_date,
[RunTime] = HIST.run_time,
[Duration] = HIST.run_duration
FROM msdb..sysjobs JOB
INNER JOIN msdb..sysjobhistory HIST
ON HIST.job_id = JOB.job_id
ORDER BY HIST.run_date desc, HIST.run_time desc
exec msdb.dbo.sp_help_job --> 분석해보시면..
select * from msdb.dbo.sysjobhistory
1000개만 보이는것 보니.. 초과 되면 오래된것 부터 삭제가 되는듯 합니다. 트리거를 이용해서 누적 되게 하는 방법.