[Oracle - 데이터 펌프 (Data Pump) expdp, impdp ]

 

※ 10g부터 제공.
    expdp, impdp는 exp, imp와 호환돼지 않는다. 기존의 exp로 추출한 데이터를 impdp로 입력할 수 없다.

1. DP의 장점
    - 오브젝트와 데이터의 선택
            EXCLUDE, INCLUDE, CONTENT 파라메터를 이용해서 이전버전 보다 쉽게 추출하거나 입력할 대상을 선택할 수 있다.
    - 데이터베이스의 버전을 명시적으로 정의한다.
            VERSION 파라메터를 사용하여 이동할 객체의 데이터베이스 버전을 지정하면 데이터 펌프를 지원하는 이전 릴리즈의
            오라클 데이터베이스와 호환 가능한 덤프 파일 셋트를 생성한다. 현재는 릴리즈 10, 11 간에 호환이 가능하다.
    - 병렬수행이 가능하다.
    - exp에 필요한 디스크 공간을 예측한다.
    - 분산환경에서의 네트워크 모드
            원격지의 데이터베이스에서 직접 데이터를 추출할 수 있다.
    - remmaping : 데이터를 입력하는 동안 데이터를 입력할 데이터 파일명, 스키마, 테이블 스페이스를 변경할 수 있다.
    - 데이터를 추출할 때, 압축 기능을 사용할 수 있다.
    - 작업이 길어진다면 중간에 멈췄다가 재개할 수도 있다.
            INTERACTIVE COMMAND LINE 모드로 가능하다.

2. DP 인터페이스
    dp를 수행하기 위해서 다음과 같은 인터페이스를 제공한다.
    - command line
            대부분의 파라메터를 커맨드라인에서 입력하여 실행한다.
    - parameter file
            모든 커맨드 라인 파라메터를 파라메터 파일에 정의할 수 있다.
            단, PARFILE은 제외한다. 이 파라메터는 파라메터 파일의 위치를 정의한다.
    - interactive command line
            이 모드를 사용하면, 터미널의 로깅이 중지되고, export 혹은 import 프롬프트가 표시된다. 
            커맨드라인 혹은 파라메터 파일로 시작한 export 작업 중에 '컨트롤+C' 키를 눌러서 활성화한다.
    - database control
            엔터프라이즈 메니져를 쓴다.

3. DP 모드
    다음과 같은 모드들이 있다.
    - Full
    - Schema
    - Table
    - Tablespace
    - Transportable tablespace

 

------------------------------------------------------------

출처:http://kr.forums.oracle.com/forums/thread.jspa?threadID=477162&tstart=60

제품 : ORACLE SERVER

작성날짜 : 2004-05-28


[10G]ORACLE DATA PUMP를 사용하여 이미 존재하는 테이블에 IMPORT 수행
===================================================================

PURPOSE
-------
이 문서는, datapump 파라미터인 TABLE_EXISTS_ACTION과 CONTENT 파라미터를 사용하여 이미 존재
하는 테이블에 데이터를 import 시키는 상세 방법을 지정하는 절차를 보여주는데 목적을 둔다.

Explanation
-----------
Data Pump import는 TABLE_EXISTS_ACTION라는 새로운 파라미터를 사용하며 CONTENT (export, import)
파라미터와 함께, 이미 존재하는 테이블에 데이터를 어떻게 import 하는지를 지정한다.
이 새로운 파라미터는 기존 export/import 유틸리티의 'ROWS'와 'IGNORE' 파라미터와 사용법이
유사하다.

TABLE_EXISTS_ACTION 파라미터:
---------------------------

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


이 파라미터는 생성하고자 하는 테이블이 이미 존재할 경우, 어떤 작업을 수행할지를 지정한다.
지정 가능한 값에는 다음과 같은 것들이 있다 :

SKIP - 테이블을 있는 그대로 두고 다음 객체 생성으로 이동한다. CONTENT 파라미터를 DATA_ONLY로 지정할 경우
SKIP을 지정할 수 없다.
APPEND - 소스로 부터 row를 읽어 들여 테이블에 적재 시키고, 이미 존재하는 row는 그대로 둠
TRUNCATE - 이미 존재하는 row가 있다면 삭제시킨 후 새로 데이터를 적재 시킴
REPLACE - 이미 존재하는 테이블을 드롭 시킨 후, 테이블을 새로 만들고 데이터를 적재 시킴. CONTET 파라미터를
DATA_ONLY로 지정하느 경우 이 값을 지정할 수 없다.

다음은 옵션을 지정하는데 있어 고려해야 할 사항이다 :

TRUNCATE나 REPLACE를 지정할 경우, 영향을 바는 테이블이 참조 무결성에 의해 참조 되지 않는 지 여부를 확인한다.
SKIP, APPEND 또는 TRUCATE를 지정할 경우, 이미 존재하는 테이블에 대한 인덱스나, 권한 부여, 트리거, 제약 조건이
무시된다. REPLACE를 지정할 경우, 의존 관계에 있는 객체들이 먼저 drop 된 후, 재 생성된다. 이것을
피하기 위해서는 EXCLUDE를 사용하여, 명시적으로 제외를 시키거나 임포트 하고자 하는 덤프 파일에 해당 내용이
포함 되지 않아야 한다.
APPEND나 TRUNCATE를 사용할 경우에는,다른 모든 작업에 앞서 덤프 파일의 내용이 이미 존재하는 테이블에 들어갈 수
있는 형태의 데이터인지를 먼저 확인한다.

이미 존재하는 테이블에 대해서는 external 테이블을 사용하여 load 작업이 수행되는데 이것은, external table 이
constraint나 trigger가 제 기능을 하도록 하기 때문이다. 하지만, active constraint를 위반하는 row 가
하나라도 존재하면,load 작업은 취소되어 아무런 데이터도 load 되지 않는다는 점을 기억해 둘 필요가 있다.

만약 데이터를 반드시 load 시켜야 하는데, constraint voilation을 유발시킬 만한 내용이 있다면
constraint를 먼저 disable 시키고, 데이터를 적재 시킨 후, 문제가 되는 row를 삭제 하고 constraint를
다시 enable 시키는 방법을 사용해야 한다.

APPEND를 사용할 때는, 데이터가 언제나 새로운 공간에 load 된다. 기존에 사용중인 공간에 여유 공간이 있더라도
재 사용되지 않는다. 이와 같은 이유 때문에 데이터에 대한 compress를 별도로 수행할 필요가 있을 수도 있다.

CONTENT 파라미터:
---------------

CONTENT 파라미터는 Export 또는 Import 세션에서 사용할 수 있다. 명백하게, export 값이 DATA_ONLY나
METADATA_ONLY였다면, 지정된 데이터만 덤프파일에 존재하여 import 시 사용할 수 있다.

기본값 : ALL

import 될 수 있는 내용을 제한하기 위해서는 다음과 같은 옵션을 사용할 수 있다 :

DATA_ONLY - 이미 존재하는 테이블에 대해서만 데이터를 load 시킨다. 없던 객체를 생성 시키지 않는다.
METADATA_ONLY - 데이터베이스 객체에 대한 정의만 load 시킨다. 테이블의 row 데이터를 load 시키지 않는다.
ALL - 소스의 데이터 및 메타데이터를 load 시킨다. 기본 값.





Example
-------


Reference Documents
-------------------
Note:261013.1 Importing into Existing tables with Oracle Data Pump
Oracle Database Utilities 10g Release 1 (10.1) 

 

 

 

 

 

'(DB) Oracle > Object & Utility' 카테고리의 다른 글

Oracle - SQL TRACE  (0) 2017.01.22
Oracle - Data Pump Export / Import 1편  (0) 2017.01.22
Oracle - Listener_EM Console  (0) 2017.01.21
Oracle - Pro*C  (0) 2017.01.21
Oracle - Recovery - Point in Time  (0) 2017.01.21
Posted by 농부지기
,