본문 바로가기

프로그래밍 이야기/Oracle DB

ORA-12012 / ORA-12005 오라클 DB에러

DB 데일리 백업 과정에서 JOB에러가 지속적으로 발생한다는 연락을 받았다.

 

- ORA-12012 작업 4의 자동실행중 오류 발생

- ORA-12005 자동 refresh 를 과거 시간에 대하여 행할수 없습니다.

 

구글링으로 찾아본 결과 대충 내용은 12012는 문제를 일으킨 JOB을 나타내는 것이었고

12005는 문제의 내용이다.

 

처음에는 작업4의 쿼리쪽 문제인줄 알고 이리보고 저리 봐도 이상이 없어 구글링으로 찾아본 결과 다음과 같은 해답을 얻을 수 있었다.

 

JOB을 생성할때 JOB의 다음 실행시간(최초 생성시에는 최초 실행시간)을 지정해주는데 이 시간 지정을 TRUNC(SYSDATE)+1-3/24/60  이렇게 지정한게 문제였다.

JOB의 최초 실행은 생성일 기준 저녁 11시 57분이라 최초에는 문제가 없었을테지만, 1회 실행 이후 다음 실행 시간을 지정하는 부분에서 문제가 발생한 것이다

즉 오후 11시 57분에 JOB이 수행되고 이후 작업 시간을 지정하는데 작업일 오후 11시 57분을 지정해버리니

다음 작업 시간을 과거 시간으로 지정해서 오류가 발생한 것이다.

 

다행이도 작업이 정상적으로 수행은 되고 있었으나 지속적으로 DB가 에러메시지를 표출하고 있었다.

 

해결법은 간단했다. 다음 JOB 수행 시간을 다음날로 현 수행 시점 이후로 지정하면 되는 것이었다.

 

본인같은 경우 작업 수행 시간을 매일 오후 11시 57분으로 지정하였고 코드는 다음과 같다.

TRUNC(SYSDATE)+1+57/24/60+23/24

 

위와 같이 변경한 후 JOB은 아무 문제 없이 잘 돌아가고 있다.

 

요약

1. ORA-12012 / ORA-12005에러 발견

2. 구글링 결과 인터벌 설정 오류

3. 인터벌은 다음날 시간대로 변경하여 해결.