본문 바로가기

자료창고/에러창고

ORA-00439: 기능이 사용으로 설정되지 않음: Deferred Segment Creation

Life and Oracle: ORA-00439: feature not enabled: Deferred Segment Creation on datapump import

 

ORA-00439: feature not enabled: Deferred Segment Creation on datapump import

En blogg om Oracle Application Express APEX och mer.

lifeandoracle.blogspot.com

요약

import 명령문 뒤에다가 version=10.2 나 version=11.1을 추가로 집어 넣는다. 

이것은 IMPDP가 11.2 버전의 Deferred Segment Creation 기능을 무시한다. 

 

 

오라클 11.2에는 Deffered Segment Creation기능이 있다. 

열이 없는 테이블에 관한 공간 절약 기능이다. 

왜냐하면 테이블을 위한 세그먼트는 테이블이 실질적으로 열을 가질 때까지 생기지 않기 때문이다. 

테이블을 만들 때

CREATE TABLE emp ( emp_id NUMBER, name VARCHAR2(4000)) SEGMENT CREATION DEFERRED; 이렇게 써서 기능을 사용한다. 

11.2 버전 이후로는 이 기능은 DEFERRED_SEGMENT_CREATION 이 TRUE로 되어서 사용된다. 

그래서 ORA-39083와 ORA-00439 에러가 생긴다. 

임포트된 데이터베이스는 10.2이나 11.1 버전이라 이 기능이 없는데 임포트할 때 이 기능을 사용하니 에러가 생기는 것이다. 그래서 버전 설정을 명시하는 것이다. 

 

둘 다 DEFERRED_SEGMENT_CREATION이 true로 되어 있는 11.2.0.1 에서 11.2.0.1로 데이터를 옮길 때도 이 에러가 생기는데 왜냐하면 source는 EE 버전이고 목표지점은 Standard Edition이기 때문이다. 왜냐하면 EE 버전에만 이 기능이 있기 때문이다.