Programing/Error Resolution(오류해결)

ORA-01502(인덱스 분할 영역 사용 불가능한 상태) 오류 해결

세기루민 2024. 8. 8. 21:22
728x90

회사에서 백앤드 개발자로 업무를 하면서..

DB와 연관된 이슈가 발생했을 때 내가 직접 해결하지는 않지만

DBA에게 지원을 요청해야 할 경우가 종종 있다.

 

이번에도 내가 운영을 맏은 서비스가 Http Status 500 Error가 계속 발생하고 있다는 문의를 받고 

검토를 한 결과 아래와 같은 원인을 확인했다. 

 

SQL Error : 1502, SQLState: 72000
HHH000010: On release of batch it still contained JDBC statements

 

  • 위의 코드를 해석하면 아래와 같다.
    • Application 에서 SQL 작업 중 1502 에러가 발생하여, JDBC문이 정상적으로 작동되지 않은 것을 볼 수 있다.

이에 따라 나는 1502 Error에 대해 확인을 하게 되었다.

 

ORA-01502란?

ORA-01502는 테이블에서 사용중인 인덱스 Key, 혹은 인덱스 분할 영역에 대해서 사용이 불가능한 상태일 때 발생된다.

다양한 이유들이 있을 수 있지만, 결론적으로는 인덱스가 손상되어 특정 인덱스를 사용할 수 없을 때 발생하게 된다.

  • 아마 추측하기로는 어플리케이션 내 비동기 처리 시 같은 트랜잭션이 동일한 값에 대해 저장/수정 작업을 진행하면서 인덱스가 충돌되어 손상된 것이 아닐까 싶다.

문제 해결 방안

문제 해결 방안은 간단하다.

말 그대로 인덱스를 재 구성해주면 해결되게 된다.

ALTER INDEX [손상된 인덱스 명] REBUILD;

 

비록 나의 경우 DBA의 지원을 받아 처리하였으나, 

DBA가 없는 조직 혹은 개인 공부 시 위와 같은 이슈가 발생한다면

인덱스를 재 구성해주면 문제는 해결된다.

728x90