기술 정보
home
채널 소개
home

Partition Table의 중간값 파티션 Drop /Add 오류 해결 (TBR-7163)

문서 유형
장애 해결
분야
관리/환경설정
키워드
Partition Table
2 more properties

현상

Partition Table(파티션 테이블)의 중간값을 가지는 파티션을 Drop한 후 다시 동일한 값을 가진 파티션을 Add 할 때 TBR-7163: Specified partition values are incorrect. 라는 오류가 발생하였습니다.

원인

Tibero에서는 Partition Table에서 중간 구간의 파티션을 제거한 후, 해당 구간만 다시 추가하려고 할 경우 기존 파티션 간의 값 순서를 유지해야 하는 제약 때문에 오류가 발생합니다.

해결

1. 파티션 테이블 생성

drop table tibero.test; create table tibero.test (logtime char(12)) partition by range (logtime) ( partition p2017 values less than ('2017XXXXXXXX'), partition p2018 values less than ('2018XXXXXXXX'), partition p2019 values less than ('2019XXXXXXXX') );
SQL
복사

2. 중간값을 가지는 파티션 Drop

alter table tibero.test drop partition p2018;
SQL
복사

3. Drop 한 중간값 파티션 다시 추가 시 TBR-7163 오류 발생

alter table tibero.test add partition p2018 values less than ('2018XXXXXXXX') ;
SQL
복사
TBR-7163: Specified partition values are incorrect. 오류 발생

3-1. 해결방안 1

중간값 파티션보다 큰 파티션 모두 삭제 후, Drop 한 중간값 파티션 다시 추가합니다.
alter table tibero.test drop partition p2019; alter table tibero.test add partition p2018 values less than ('2018XXXXXXXX') ;
SQL
복사
테스트 결과
SQL> drop table tibero.test; TBR-7071: Schema object 'TIBERO.TEST' was not found or is invalid. SQL> create table tibero.test (logtime char(12)) partition by range (logtime) ( partition p2017 values less than ('2017XXXXXXXX'), partition p2018 values less than ('2018XXXXXXXX'), partition p2019 values less than ('2019XXXXXXXX') ); 2 3 4 5 6 7 Table 'TIBERO.TEST' created. SQL> alter table tibero.test drop partition p2018; Table 'TIBERO.TEST' altered. SQL> alter table tibero.test add partition p2018 values less than ('2018XXXXXXXX') ; TBR-7163: Specified partition values are incorrect. SQL> alter table tibero.test drop partition p2019; Table 'TIBERO.TEST' altered. SQL> alter table tibero.test add partition p2018 values less than ('2018XXXXXXXX') ; Table 'TIBERO.TEST' altered.
SQL
복사

3-2. 해결방안 2

중간값 파티션보다 큰 바로 위의 파티션 Split 하여 중간값 파티션을 대체합니다.
alter table tibero.test split partition p2019 at ('2018XXXXXXXX') into (partition p2018, partition p2019);
SQL
복사
테스트 결과
SQL> drop table tibero.test; TBR-7071: Schema object 'TIBERO.TEST' was not found or is invalid. SQL> create table tibero.test (logtime char(12)) partition by range (logtime) ( partition p2017 values less than ('2017XXXXXXXX'), partition p2018 values less than ('2018XXXXXXXX'), partition p2019 values less than ('2019XXXXXXXX') ); 2 3 4 5 6 7 Table 'TIBERO.TEST' created. SQL> alter table tibero.test drop partition p2018; Table 'TIBERO.TEST' altered. SQL> alter table tibero.test add partition p2018 values less than ('2018XXXXXXXX') ; TBR-7163: Specified partition values are incorrect. SQL> alter table tibero.test split partition p2019 at ('2018XXXXXXXX') into (partition p2018, partition p2019); Table 'TIBERO.TEST' altered.
SQL
복사

4. 해결방안 적용 후, 최종 파티션 정보 조회

SELECT TABLE_NAME, PARTITION_NAME, BOUND, PARTITION_NO FROM DBA_TBL_PARTITIONS; TABLE_NAME PARTITION_NO PARTITION_NAME BOUND ----------------------- ---------------- ------------------- TEST 1 P2017 '2017XXXXXXXX' TEST 2 P2018 '2018XXXXXXXX' TEST 3 P2019 '2019XXXXXXXX' 3 rows selected.
SQL
복사