기술 정보
home
채널 소개
home

add partition 수행시 ERROR_TCCF_NO_SUCH_TS(-24012) 에러 발생

문서 유형
장애 해결
분야
패치/업그레이드
키워드
partition
적용 제품 버전
6FS07
7FS02
오류 코드
24012

현상

add partition 수행 시 ERROR_TCCF_NO_SUCH_TS(-24012) 오류가 발생합니다.
예시 1) drop tablespace - table
SQL> create tablespace ts1; SQL> create table t1(c1 number) tablespace ts1 partition by range(c1) (partition p1 values less than (10) tablespace usr, partition p2 values less than (20) tablespace usr); SQL> alter table t1 modify default attributes tablespace ts1; SQL> select tablespace_name from dba_tables where table_name = 'T1'; -- 패치 전/후 : TS1 SQL> select def_tablespace_name from dba_part_tables where table_name = 'T1'; -- 패치 전/후 : TS1 SQL> drop tablespace ts1; SQL> alter table t1 add partition p3 values less than (30); -- 패치 전 : TBR-24012: No such tablespace 5. (5는 ts_id라 다를 수 있음) -- 패치 후 : Table 'T1' altered. SQL> select tablespace_name from dba_tables where table_name = 'T1'; -- 패치 전 : TS1 -- 패치 후 : USR SQL> select def_tablespace_name from dba_part_tables where table_name = 'T1'; -- 패치 전 : TS1 -- 패치 후 : USR
SQL
복사
예시 2) drop tablespace - index
SQL> create tablespace ts1; SQL> create table t1(c1 number) partition by range(c1) (partition p1 values less than (10), partition p2 values less than (20)); SQL> create index i1 on t1(c1) local; SQL> alter index i1 modify default attributes tablespace ts1; SQL> select tablespace_name from dba_indexes where index_name = 'I1'; -- 패치 전/후 : TS1 SQL> select def_tablespace_name from dba_part_indexes where index_name = 'I1'; -- 패치 전/후 : TS1 SQL> drop tablespace ts1; SQL> alter table t1 add partition p3 values less than (30); -- 패치 전 : TBR-24012: No such tablespace 5. (5는 ts_id라 다를 수 있음) -- 패치 후 : Table 'T1' altered. SQL> select tablespace_name from dba_indexes where index_name = 'I1'; -- 패치 전 : TS1 -- 패치 후 : USR SQL> select def_tablespace_name from dba_part_indexes where index_name = 'I1'; -- 패치 전 : TS1 -- 패치 후 : USR
SQL
복사

원인

drop tablespace를 수행 시, partition object(_dd_partobj)의 defts_id 컬럼 값이 dba_tablespace 뷰의 ts_id 컬럼 값과 동일한 경우에도 해당 값을 변경하지 않고 있었습니다.
그 결과, 이후 add partition 수행 시 defts_id에 partition을 생성하려 하지만 해당 tablespace가 존재하지 않아 오류가 발생하였습니다.
관련 딕셔너리
SQL> desc _dd_partobj COLUMN_NAME TYPE CONSTRAINT ---------------------------------------- ------------------ -------------------- OBJ_ID NUMBER PARTTYPE NUMBER PARTCNT NUMBER PARTKEYCOLS NUMBER FLAGS NUMBER DEFTS_ID NUMBER DEFPCTFREE NUMBER DEFPCTFREE_BYTES NUMBER DEFINITRANS NUMBER DEFEXTSIZE NUMBER DEFMAXEXTS NUMBER DEFBUFPOOL NUMBER SUBPARTTYPE NUMBER SUBPARTCNT NUMBER SUBPARTCOLCNT NUMBER BOUND_TOTAL_SIZE NUMBER INTERVAL VARCHAR(128) SQL> desc dba_tablespaces; COLUMN_NAME TYPE CONSTRAINT ---------------------------------------- ------------------ -------------------- TABLESPACE_NAME VARCHAR(128) TS_ID NUMBER DATAFILE_COUNT NUMBER BLOCK_SIZE NUMBER NEXT_EXTENT NUMBER STATUS VARCHAR(9) CONTENTS VARCHAR(9) LOGGING VARCHAR(9) FORCE_LOGGING VARCHAR(3) ALLOCATION_TYPE VARCHAR(7) ENCRYPTED VARCHAR(3) INITIAL_EXTENT NUMBER MIN_EXTENTS NUMBER MAX_EXTENTS NUMBER EXTENT_MANAGEMENT VARCHAR(5) SEGMENT_SPACE_MANAGEMENT VARCHAR(4)
SQL
복사

해결

패치 적용

FS07PS_337253a : drop tablespace 수행 시, 해당 tablespace를 default tablespace로 가지고 있는 table, index, lob 객체들의 default tablespace를 해당 user의 기본 tablespace 정보로 변경하도록 수정되었습니다.
주의
티맥스티베로에서 제공하는 기술지원을 통해 패치를 적용합니다.

우회방안

add partition 시 테이블스페이스를 명시하거나, 삭제된 테이블스페이스를 다시 생성하여 처리할 수 있습니다.
예시 1) add partition 시 테이블스페이스 지정
SQL > ALTER TABLE (table) ADD PARTITION (partition) VALUES LESS THEN (value) TABLESPACE (tablespace);
SQL
복사
예시 2) TABLESPACE 생성
SQL > ALTER TABLESPACE [tablespace] ADD DATAFILE ('데이터파일 경로') SIZE 150M AUTOEXTEND ON;
SQL
복사