본문 바로가기
DATABASE/Oracle

[Oracle][Error] ORA-01502: 인덱스 'PK_Name' 또는 인덱스 분할영역은 사용할 수 없는 상태입니다.

by DANEW 2023. 7. 28.

Intro

안녕하세요.

초보 DBA 다뉴입니다.

 

오늘 갑자기 Schedule걸어둔 작업에 갑자기 오류가 났습니다.

ORA-01502: 인덱스 'PK_Name' 또는 인덱스 분할영역은 사용할 수 없는 상태입니다.

라는 에러 메시지가 출력되었는데요.

 

한번 알아보도록 하겠습니다.


어떤 오류?

ORA-01502: 인덱스 'PK_Name' 또는 인덱스 분할영역은 사용할 수 없는 상태입니다.

이러한 메시지가 출력되며, 데이터 Insert, Update, Delete를 할 수 없는 상태가 되었습니다.

select은 정상적으로 되었네요.

 

이유는?

금일 데이터베이스 관리 작업 중에

해당 테이블에 TableSpace를 변경하였습니다.

 

제 생각에는 이 작업이 문제였다고 생각되네요.

저는 Index에 대해서는 따로 Index TableSpace를 잡아두어 생성하였기에 문제가 없을 것이고...

Primary Key와 Leaf block사이에 문제가 생기지 않았을까 싶습니다.


해결방법

Index Rebuild

해결 방법은 아주 간단했습니다.

Index의 구조가 깨진것이니. 인덱스를 새로 재구축해주었습니다.

제 기준에서는 PK를 재구축 하였네요.

 

alter index PK_Name Rebuild;

 

위 DDL을 통해 rebuild 하였습니다.


Outro

해당 방법으로 인덱스(PK)를 재구성하니 문제가 해결되었습니다.

다음부터는 Table Space를 변경하는 일은 최대한 없도록 해야겠다는 생각이 드네요.

 

해당 상황 말고도

Partition 관련해서도 Index가 깨졌을때 위의 명령어로 해결 했던것이 생각납니다.

이 내용에 대해서는 Partition - Global Index, Local Index를 다루는 글에서 자세하게 다루도록 하겠습니다.

 

감사합니다.

반응형