DATAPUMP 기능을 사용하기 위해서는 첫째 DIRECTORY가 설정되어 있어야한다.

 

* 필요 권한 

EXP_FULL_DATABASE

IMP_FULL_DATABASE

 

 

 

* Directory  조회

 SQL> SELECT * FROM DBA_DIRECTORIES;


 OWNER      DIRECTORY_NAME                 DIRECTORY_PATH
 ---------- ------------------------------ --------------------------------------------------
 SYS        ORACLE_OCM_CONFIG_DIR          /oracle/app/oracle/product/11.2.0/ccr/state
 SYS        DATA_PUMP_DIR                         /oracle/app/oracle/admin/LINUXORCL/dpdump/
 SYS        XMLDIR                                      /oracle/app/oracle/product/11.2.0/rdbms/xml

 


 

* Directory 생성 및 권한

 SQL> CREATE DIRECTORY DUMP AS '/oracle/dumpfile';

 Directory created.

 SQL> GRANT READ, WRITE ON DIRECTORY DUMP TO SYSTEM;   

 Grant succeeded.

 SQL> GRANT CREATE ANY DIRECTORY TO SYSTEM;

 Grant succeeded.

 SQL>  SELECT * FROM DBA_DIRECTORIES;

 OWNER      DIRECTORY_NAME                 DIRECTORY_PATH
 ---------- ------------------------------ --------------------------------------------------
 SYS        ORACLE_OCM_CONFIG_DIR          /oracle/app/oracle/product/11.2.0/ccr/state
 SYS        DATA_PUMP_DIR                          /oracle/app/oracle/admin/LINUXORCL/dpdump/
 SYS        DUMP                                         /oracle/dumpfile
 SYS        XMLDIR                                      /oracle/app/oracle/product/11.2.0/rdbms/xml

 SQL>

 

 

 - DUMP = 사용하고자 하는 DIRECTORY 이름지정

 - '/oracle/dumpfile' = DIRECTORY가 사용할 물리적인 경로

 - READ 권한은 Import Pump를 수행하기 위해 필요

 - WRITE 권한은 Export Pump를 수행하기 위해 필요

 - 일반유저로 오브젝트를 생성하기 위해서는 CREATE ANY DIRECTORY 권한을 가지고 있어야 한다.

* Directory 삭제 

 SQL> DROP DIRECTORY DUMP;

 Directory dropped.

 SQL> SELECT * FROM DBA_DIRECTORIES;

 OWNER      DIRECTORY_NAME                 DIRECTORY_PATH
 ---------- ------------------------------ --------------------------------------------------
 SYS        ORACLE_OCM_CONFIG_DIR          /oracle/app/oracle/product/11.2.0/ccr/state
 SYS        DATA_PUMP_DIR                         /oracle/app/oracle/admin/LINUXORCL/dpdump/
 SYS        XMLDIR                                     /oracle/app/oracle/product/11.2.0/rdbms/xml

 SQL>

 

 

* Default Directory 설정 

 $ export DATA_PUMP_DIR dump

 

 

* Export

 Full Export

 $ expdp system/oracle dumpfile=full.dmp directory=dump full=y logfile=full.log job_name=fullexp

 

 Metadata Export

 $ expdp system/oracle dumpfile=metadata.dmp directory=dump full=y content=metadata_only logfile=meta.log job_name=meta

 

 Schemas Export

 $ expdp system/oracle dumpfile=test.dmp directory=dump schemas=TEST job_name=test logfile=test.log

 

 -  expdp 옵션

  * system/oracle - 데이터베이스 유저 및 비밀번호

  * DIRECTORY - 데이터 펌프 파일을 저장하거나 또는 저장되어 있는 디렉토리

  * LOGFILE - 로그가 저장될 파일 이름

  * FULL - 데이터베이스 전체에 데이터 펌프 적용

  * SCHEMAS - 설정된 데이터베이스 유저가 소유한 오브젝트에 대해 데이터 추출

  * TABLES - 명시된 테이블에 대해서만 데이터 추출

  * TABLESPACES - 명시된 테이블스페이스에 저장된 오브젝트에 대해서만 데이터 추출

  * PARALLEL - 데이터 펌프 작업시 병렬 프로세스의 개수를 지정하는 옵션

  * 필터링 옵션

    - EXCLUDE - 데이터 펌프 작업에서 제외될 오브젝트의 종류와 이름을 명시하는 옵션

                        (EXCLUDE=OBJECT_TYPE[:'object_name'],  INCLUDE=TABLE:="TEST"    TEST 테이블만 포함

    - INCLUDE - 데이터 펌프 작업에 포함될 오브젝트의 종류와 이름을 명시하는 옵션

                        (INCLUDE=OBJECT_TYPE[:'object_name'],   

                        EXCLUDE=TABLE:="TEST"     TEST테이블은 제외

                        EXCLUDE=INDEX:\"=EMP%'\"   EMP 테이블의 인덱스 제외

 

    - PARFILE - 지정된 파일에 원하는 옵션을 설정한 후 해당 파일에 설정된 옵션을 적용하여 적제를 수행하는 옵션

 

  * 추출옵션

    - CONTENTS = [ALL | DATA_ONLY | METADATA_ONLY}

   

  * 오브젝트 정의변경 REMAP

    - REMAP_SCHEMA : 적재가 수행되는 데이터베이스에서 오브젝트 소유자를 변경

      (REMAP_SCHEMA='SCOTT' : 'MIKE')  SCOTT유저에서 MIKE유저로 적재

    - REMAP_TABLESPACE : 적재가 수행되는 데이터베이스에서 오브젝트가 저장될 테이블스페이스를 변경

      (REMAP_TABLESPACE='USERS' : 'TOOLS') USER테이블스페이스에서 TOOLS테이블스페이스로 변경

    - REMAP_DATAFILES : 적재가 수행되는 데이터베이스의 테이블스페이스에서 데이터파일의 위치를 변경

      (REMAP_DATAFILE='/data/ts1.dbf' : '/oracle/ts1.dbf') datafile 재정의

      

* Import

 

 Full Import

 $ impdp system/oracle dumpfile=full.dmp directory=dump full=y logfile=fullimp.log job_name=fullimp

 

 Metadata Import (metadata만 export한 파일을 쓸때)

 $ impdp system/oracle dumpfile=metadata.dmp directory=dump full=y sqlfile=metadata.sql logfile=metadata.log

 

 Metadata Import (full export 파일을 쓸때)

 $ impdp system/oracle dumpfile=full.dmp directory=dump full=y content=metadata_only

sqlfile=metadata.sql logfile=metadata.log

 

 Schemas Import

 $ impdp system/oracle dumpfile=full.dmp directory=dump schemas=TEST logfile=test.log job_name=test

 $ impdp system/oracle dumpfile=test.dmp directory=dump full=y logfile=test.log job_name=test

 

 * 데이터 적재에만 사용되는 옵션 (TABLE_EXITS_ACTION)

  : export/import 기능에서 import의 ignore기능이 datapump에서는 TABLE_EXITS_ACTION 옵션이다.

  SKIP - 동일 이름의 테이블이 존재할 경우 해당 테이블에 대한 데이터 적재 작업 생략

  APPEND - 동일 이름의 테이블이 전재할 경우 데이터를 해당 테이블에 추가로 적재

  REPLACE - 동일 이름의 테이블이 존재할 경우 해당 테이블을 제거한 후 재생성하여 데이터 적재

  TRUNCATE - 동일 이름의 테이블이 존재할 경우 해당 테이블의 데이터를 DELETE한 후 데이터 적재

 

 

ATTACH 옵션

 - ADD_FILE : 추출 파일(DUMPFILE) 추가

 - CONTINUE_CLIENT : 데이터 펌프 작업에 대한 진행 로그 확인

 - EXIT_CLIENT : 데이터 펌프의 클라이언트 관리 세션 종료

 - FILESIZE : ADD_FILE 명령으로 추가되는 파일의 기본 크기 설정

 - KILL_JOB : 데이터 펌프 작업을 삭제 (작업 재시작 불가능)

 - PARALLEL : 병렬 프로세싱 옵션 지정

 - START_JOB : 데이터 펌프 작업 재시작

 - STOP_JOB : 수행중인 데이터 펌프 작업 중단(작업 재시작 가능)



출처: http://boeok.tistory.com/entry/Data-Pump-사용방법 [Secret]

'CONSULTING SERVICE > Migration Service' 카테고리의 다른 글

exp / imp command  (0) 2018.04.23
Posted by Any DB
,