내맘대로긍정이 알려주는
Oracle 23ai 신기능
무료 세미나 발표자료
OS환경 : Oracle Linux 7.6 (64bit)
DB 환경 : Oracle Database 19.15.0.0
에러 : ORA-08104: this index object is being online built or rebuilt
alter index rebuild online 명령으로 인덱스를 온라인 리빌드 하다가 강제로 종료할 경우
인덱스가 제대로 리빌드 되지 않은 상태로 남아 이후 리빌드 명령을 재수행 할 때 에러가 발생할 수 있음
1
2
3
|
SQL> alter index imsi.ix_ntable_01 rebuild online;
...
작업중 Ctrl + C로 취소
|
인덱스 리빌드 재시도
1
2
3
|
SQL> alter index imsi.ix_ntable_01 rebuild online;
*
ORA-08104: this index object imsi.ix_ntable_01 is being online built or rebuilt
|
에러 발생함
해결 방법 : DBMS_REPAIR.ONLINE_INDEX_CLEAN 수동 실행 또는 대기
일반적으로 이런 문제가 발생한 경우 SMON에 의해 1시간에 한번씩 정리가 됨
그렇기 떄문에 당장 리빌드를 다시 해야하는게 아니라면 기다리면 자동으로 해소가 됨
만약 당장 리빌드를 해야하는 경우에는 DBMS_REPAIR.ONLINE_INDEX_CLEAN 를 사용해서 수동으로 인덱스 리빌드중 발생한 찌꺼기?를 제거해줄 수 있음
sys 유저로 접속 후 아래 명령 수행
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
SQL>
set serveroutput on
declare
result boolean := false;
begin
result := dbms_repair.online_index_clean();
if result then
dbms_output.put_line('result= True');
else
dbms_output.put_line('result= False');
end if;
end;
/
result= True
PL/SQL procedure successfully completed.
|
dbms_repair.online_index_clean 프로시저가 정상적으로 수행되었다면 result= True 로 표시됨
이후 인덱스 리빌드 재시도
1
2
3
|
SQL> alter index imsi.ix_ntable_01 rebuild online;
Index altered.
|
정상적으로 리빌드됨
원인 : 세션 비정상 종료로 인한 데이터 딕셔너리 미정리
online 인덱스 리빌드 중 세션 오류가 발생하면 실제로는 리빌드가 진행 중이 아닌데도
리빌드가 진행 중임을 반영하는 상태로 딕셔너리에 남아 있을 수 있음
이 경우 위 방법을 통해 딕셔너리를 clean 시켜줘야함
참조 :
375856.1, 272735.1
https://kosate.tistory.com/64
https://dev-road.tistory.com/25
https://dbaclass.com/article/ora-08104-this-index-object-is-being-online-built-or-rebuilt/
'ORACLE > Trouble Shooting' 카테고리의 다른 글
nothing provides compat-libcap1 needed by oracle-database-preinstall-19c-1.0-1.el7.x86_64 (0) | 2023.12.04 |
---|---|
DBeaver Network unavailable due to certificate issue. (4) | 2023.11.21 |
Warning: log write elapsed time 519ms, size 275KB (0) | 2023.08.17 |
NSS2 is not running anymore. (0) | 2023.08.16 |
ORA-31623: a job is not attached to this session via the specified handle (0) | 2023.08.12 |