본문 바로가기
study/ERROR CASE

[ERROR] ORA-12801 / ORA-01722

by 휘루걸음 2023. 12. 19.
728x90
반응형

오라클 대용량 테이블에 HINT를 사용한 쿼리에서 오류가 발생하였다.

INDEX_FFS(T PK_MEASURE_DATA) PARALLEL_INDEX(T PK_MEASURE_DATA) PARALLEL(T 4)
...

ORA-12801: error signaled in parallel query server P002
728x90

언제나 처음보는 오류는 당황스럽다.

나올만한, 익숙한 오류는 그냥 올게 왔구나 하는 심정인 반면에, 이렇게 초면인 오류는 낯을 가리게 된다.

조심스럽게  접근한다. 오류구문을 구글/블로그/stackoverflow/GPT 등 세대를 망라한 온갖 잡신들을 영접한다.

비나이다 비나이다 답변을 알려주소서...

ORA-12801: error signaled in parallel query server P002
...
ORA-01722: 수치가 부적

 

오류구문을 기준으로 검색하니, 내가 원하는 방향의 답변들이 아니다.

기존 테이블의 설계나 속성을 바꾸지 않은 채로 해결하고 싶은데 , 테이블 속성을 바꾸거나, 자원문제이니 힌드절의 개수를 줄이거나 자원이 많이 사용되는 프로그램의 종료를 기다리라는 해결되지 않는 내용들이 검색된다.  포기하지 않고 좀 더 살펴보니, 추가적인 오류구문이 발생하는 경우, 해당 구문의 문제라는 내용을 확인 할 수 있었다.

 

이벤트 버블링과 유사한듯 하다. 다른 구문의 오류로 인해, 링크된 다른쪽에서도 오류가 발생하는 것이다.

오류구문을 전체적으로 살펴봤어야 하는데, 주된 오류구문에 현혹된게 문제다.

오류가 나면서도 제대로 된 오류메세지를 안 주는 경우가 문제지, 충분한 양의 정보를 주는 경우에는 포기하지 말고 키워드들을 잘 살펴봐야 한다.

오류구문이라고 겁내지 말자. 알고나니, 초보적인 실수였다. 부끄럽다.

 

결론적으로 내 경우는 이 블로그와 같았다.

https://riorio.tistory.com/516

 


ORA-12801

이 오류는 오라클 데이터베이스에서 병렬 쿼리 실행 중에 발생하는 오류입니다. 이 오류는 병렬 쿼리 실행 중에 문제가 발생했음을 나타냅니다. 일반적으로 병렬 처리로 인해 여러 쿼리 서버 간의 통신 문제나 자원 부족으로 발생할 수 있습니다.

데이터베이스 병렬 처리 설정, 쿼리 성능, 데이터베이스 자원 사용 등에 따라 이러한 문제가 발생할 수 있습니다. 이 오류를 해결하기 위해서는 몇 가지 접근 방법이 있습니다.

  1. 로그 및 추적 정보 확인: 오류가 발생한 세션의 오라클 로그 파일 및 추적 파일을 확인하여 자세한 오류 메시지와 관련 정보를 파악합니다.
  2. 병렬 처리 구성 검토: 병렬 처리 관련 설정을 검토하고 최적화합니다. 인덱스, 파티셔닝, 통계 등 데이터베이스의 구조적 변경이 필요할 수 있습니다.
  3. 자원 부족 문제: 자원 부족 문제일 수 있으므로 CPU, 메모리, I/O 등의 시스템 자원을 확인하고 부족한 자원을 늘려야 할 수 있습니다.
  4. 병렬 쿼리 튜닝: 병렬 쿼리 자체를 튜닝하여 최적화합니다. 쿼리 계획을 검토하고 실행 계획을 최적화하여 문제를 해결할 수 있습니다.
  5. 오라클 버그 및 패치 확인: 오라클 버전에 따라 특정 버그로 인해 이러한 오류가 발생할 수 있으므로, 최신 패치를 적용하거나 관련된 오라클 지원 문서를 확인합니다.

위의 방법들 중 적절한 조치를 취하여 오류를 해결할 수 있습니다. 하지만 복잡한 경우에는 오라클 데이터베이스 관련 전문가나 지원팀에 문의하여 해결하는 것이 좋습니다.

 

728x90
반응형