컴퓨터활용/오라클

ORA-01003 에러 발생 원인 및 조치

멜번초이 2009. 3. 3. 10:26

ORA-01003 에러 발생 원인 및 조치 현황에 대한 참고할 만한 글이 있다. 

주로 발생되는 경우로는 배치서버에서 가결산 작업 중 금리제공모듈, 고객정보모듈 등 에서 ORA-01003 오류 다수 발생되었다.   

ORA-01003 발생 원인은  배치 프로그램 또는 TP서비스 구동 중 DB(서버) 메모리 내의 테이블 정보와 AP(서버) 프로그램단 SQL내에서 참조하는 테이블 정보가 서로다른 경우 발생 되므로 이런 경우는 대부분 프로그램 구동중에 테이블 재생성 작업을 수행하는 경우에 발생 가능하다.

프로젝트에서 데이타 전환을 하는 과정에서
  현재 데이터 재적재(전환원본DB -> 운영DB)가 일중 수시로 진행되고 있고, 이 재적재는 내부적으로 테이블 재생성(drop & create)과정을 거치게 됨으로써 발생하고 있었다.

따라서  이 문제의 해결 방법으로는 

   - 데이터 재적재시 전환DB와 운영DB가 서로 같은 경우는 내부적으로 (drop & create 가 아닌)
      truncate로 처리토록 관련 쉘프로그램 수정
   - 전환DB와 운영DB가 서로 다른 경우는 drop & create후 관련 TP서비스 재기동


결국 ORA-01003 오류의 경우 개발자가 조치할 수 있는 방법은 SQL을 점검하는 것 뿐이고 DBA 및 미들웨어 담당자가 주도적으로 원인을 찾아야 해결되는 경우가 많다. 

개발자가 점검할 일은 SQL 에 테이블의 컬럼명을 정확히 사용했는지, TABLE명 앞에 스키마명을 제대로 썼는 지 등을 점검해야 한다. 예를 들어  CBSADM.TABLE_NAME 과 같이 테이블명 앞에 스키마명을 기술한 SQL의 경우 스키마의 GRANT가 변경되는 등의 여하튼의 DB 환경 변화에 영향을 받을 수 있기 때문이다.


<2008년03월02>