기술 정보
home
채널 소개
home

USE_RECYCLEBIN 사용 시 index rebuild 할 때 마다 RECYCLEBIN 객체 증가 현상

문서 유형
장애 해결
분야
패치/업그레이드
키워드
DDL
recyclebin
적용 제품 버전
6FS06
6FS07
6FS07PS
7FS02
7FS02PS
1 more property

현상

global index parallel rebuild 수행 시 사용 되는 임시 객체가 recyclebin에 남는 상황이 발생해 결과적으로 recyclebin 내용이 증가하며, 이로 인해 불필요한 공간을 차지하는 현상이 발생하였습니다.
Recyclebin에 임시 테이블이 잔존하는 현상을 아래와 같이 확인할 수 있습니다.
SQL> select * From dba_recyclebin; TIBERO _TIBERO_TBL4580000 _TIBERO_TBL4579900 TABLE USR 2024-01-26:10:58:33 2024-01-26:10:58:35 4444938 TIBERO _TIBERO_IDX4580100 _TIBERO_IDX4579900 INDEX USR 2024-01-26:10:58:34 2024-01-26:10:58:35 4444938 45800
SQL
복사

원인

특정 DDL은 내부적으로 임시 객체를 생성한 뒤 이를 삭제(drop)하는 방식으로 동작합니다.
이때 삭제(drop)되는 임시 객체가 Recyclebin에 저장되는 프로세스 때문에 발생하는 현상입니다.
slog에서 임시테이블 drop 및 해당 drop이 rename을 포함한 rescyclebin 처리가 되는 것을 아래와 같이 확인할 수 있습니다.
[2024-01-26T10:58:33.470221] [DDL-208] [I] Executing DDL: alter index idx2 rebuild parallel 8 [2024-01-26T10:58:33.472117] [DDL-208] [I] Executing internal DDL: CREATE INTERNAL TABLE "TIBERO"."_TIBERO_TBL4579900" AS SELECT /*+ DEFAULT_STAT */ * FROM "TIBERO"."TRR" WHERE ROWNUM < 1; [2024-01-26T10:58:34.138075] [DDL-208] [I] Internal DDL execution succeeded [2024-01-26T10:58:34.167134] [DDL-208] [I] Executing internal DDL: CREATE INTERNAL INDEX "TIBERO"."_TIBERO_IDX4579900" ON "TIBERO"."_TIBERO_TBL4579900"("C1","C2") GLOBAL PARTITION BY HASH("C1","C2") PARTITIONS 8 PARALLEL 8 TABLESPACE "USR" NOLOGGING; [2024-01-26T10:58:34.455534] [DDL-208] [I] Internal DDL execution succeeded [2024-01-26T10:58:34.464742] [DDL-208] [I] create isgmt(idxre) obj_id:45799, sgmt_id:45810 [2024-01-26T10:58:34.946201] [DDL-208] [I] Executing internal DDL: DROP TABLE "TIBERO"."_TIBERO_TBL4579900"; [2024-01-26T10:58:34.986640] [DDL-208] [I] Executing internal DDL: ALTER INDEX "TIBERO"."_TIBERO_IDX4579900" RENAME TO "_TIBERO_IDX4580100"; [2024-01-26T10:58:35.135022] [DDL-208] [I] Internal DDL execution succeeded [2024-01-26T10:58:35.234862] [DDL-208] [I] Executing internal DDL: ALTER TABLE "TIBERO"."_TIBERO_TBL4579900" RENAME CONSTRAINT "_TIBERO_CON1062100728" TO "_TIBERO_CON1062100690"; [2024-01-26T10:58:35.236782] [DDL-208] [I] Internal DDL execution succeeded [2024-01-26T10:58:35.239235] [DDL-208] [I] Executing internal DDL: ALTER TABLE "TIBERO"."_TIBERO_TBL4579900" RENAME CONSTRAINT "_TIBERO_CON1062200761" TO "_TIBERO_CON1062200026"; [2024-01-26T10:58:35.240047] [DDL-208] [I] Internal DDL execution succeeded [2024-01-26T10:58:35.242450] [DDL-208] [I] Executing internal DDL: ALTER TABLE "TIBERO"."_TIBERO_TBL4579900" RENAME CONSTRAINT "_TIBERO_CON1062300783" TO "_TIBERO_CON1062300279"; [2024-01-26T10:58:35.243289] [DDL-208] [I] Internal DDL execution succeeded [2024-01-26T10:58:35.248145] [DDL-208] [I] Executing internal DDL: ALTER TABLE "TIBERO"."_TIBERO_TBL4579900" RENAME TO "_TIBERO_TBL4580000";
SQL
복사

해결

패치를 적용해 해결합니다. (적용 패치: 317806a)
주의
티맥스티베로에서 제공하는 기술지원을 통해 패치를 적용합니다.
참고
우회 방안을 설정하여 오류를 해결할 수 있습니다.
dba_recyclebin 에서 원래 이름을 통해 임시테이블을 찾아 purge 수행합니다.