안녕하세요, 파티션테이블 작업 중에 궁금한 점이 생겨 글을 남깁니다.
파티션 테이블을 일반테이블로 변경하려면 일단 파티션들을 merge 한 후 exchange하여 일반테이블로 변환하는 것으로 알고 있는데요,
merge를 수행할 때 2개 이상의 파티션을 한번에 수행은 안되는 것일까요?
alter table 테이블 명 merge partitions 파티션1, 파티션2, 파티션3, 파티션4 into partition 파티션4;
이렇게 수행하면
ORA-14126:<병렬절>만이 결과 분할로 된 기술(들)을 이행할 것입니다.
에러가 발생하더라구요.
두 개까지는 가능한데 그 이상은 가능한지에 대한 내용을 검색해보아도 잘 나오지 않네요.
만약에 불가하다면 혹시, 다른 방법이 있을까요?
테이블에 파티션이 약 60개로 나뉘어져 있고 데이터 양도 많아서 두 개씩 merge하면 시간이 오래걸리네요..
고수분들의 의견 간절히 기다립니다.
감사합니다.
파티션 테이블을 일반테이블로 변경할 때는, 일반 테이블을 만들고 insert into 로 일괄 반영 하시는 것 추천해 드립니다.
- 온라인으로 변경하는 것은 쉽지 않습니다.
- 양이 많으면 where 로 데이터 나누어 적재 하시는 방법도 좋습니다.
아래 Partition Exchange 과 MERGE PARTITIONS 을 잘 사용하면 되기는 하지만
각각 제약사항이 있어서 사용하기가 수월하지는 않습니다.
Partition Exchange 은 파티션 테이블과 파티션이 아닌 테이블을 context switch 할 때 ( Object ID 미변경 ) 사용하고
- 참조 https://jack-of-all-trades.tistory.com/83
MERGE PARTITIONS 은 다수 파티션을 1개로 합칠 때 사용합니다.
- 참조 : https://kosate.tistory.com/104
- 참조 : https://docs.oracle.com/database/121/VLDBG/GUID-54080399-6E59-4706-80C8-690159B20790.htm
> ALTER TABLE t1 MERGE PARTITIONS p01, p02, p03, p04 INTO p0 ;