@ 오라클 10g 부터 지원하는 DataPump는 기존의 Dump보다 기능과 속도의 개선점을 가지고 있다. 아래 예는 계정별로 익스포트하여 다른 계정으로 임포트하는 예시이다. 더 자세한 옵션은 expdp help=y 또는 impdp help=y를 콘솔창에 입력하여 조회할 수 있다.

- expdp

expdp 계정/비번 dumpfile=파일명.dmp schemas=대상계정 logfile=파일명.log


예)  C:\>expdp icafe@icafe2/icafe dumpfile=20110920.dmp schemas=icafe logfile=20110920.log

- impdp

impdp 계정/비번 dumpfile=파일명.dmp remap_schema=익스포트한계정:임포트할계정


예) C:\app\Administrator\admin\KBS\dpdump>impdp icafe2/icafe2 dumpfile=20110920.dmp
remap_schema=icafe:icafe2

@ DataPump는 Dump와 달리 directory를 지정해주지 않으면 오라클 홈의 dpdump라는 폴더에 결과물이 저장되고 아래와 같은 방법으로 directory를 지정해 줄 수 있다.

create directory 디렉토리명 as '경로'
grant read,write on diretory 디렉토리명 to 유저; -- 권한부여
DataPump실행시 directory 파라미터에 디렉토리명 할당


@ impdp 하려는 대상 테이블에 데이터가 이미 존재하는 경우
:  TABLE_EXISTS_ACTION 옵션을 이용(import의 ignore 옵션과 비슷)

기본값: SKIP (주의 : CONTENT=DATA_ONLY를 지정할 경우에는 기본 값이 SKIP이 아니라 APPEND 임)

이 파라미터는 생성하고자 하는 테이블이 이미 존재할 경우, 어떤 작업을 수행할지를 지정한다.

지정 가능한 값에는 다음과 같은 것들이 있다 :


SKIP - 테이블을 있는 그대로 두고 다음 객체 생성으로 이동한다. CONTENT 파라미터를 DATA_ONLY로 지정할 경우

SKIP을 지정할 수 없다.

APPEND - 소스로 부터 row를 읽어 들여 테이블에 적재 시키고, 이미 존재하는 row는 그대로 둠

TRUNCATE - 이미 존재하는 row가 있다면 삭제시킨 후 새로 데이터를 적재 시킴

REPLACE - 이미 존재하는 테이블을 드롭 시킨 후, 테이블을 새로 만들고 데이터를 적재 시킴. CONTET 파라미터를

DATA_ONLY로 지정하느 경우 이 값을 지정할 수 없다.




@ 참고자료

Datapump 전반적 소개 : http://blog.naver.com/asd1441/20104680422

예제와 소개 : http://oracle1.egloos.com/2532587

TABLE_EXISTS_ACTION 설명  : https://kr.forums.oracle.com/forums/thread.jspa?messageID=1699009



 
Posted by Taoist
,