본문 바로가기
데이터베이스/오라클

Data Pump expdp/impdp Utility

by cbwstar 2021. 9. 6.
728x90
반응형

오라클 expdp/impdp Utility

*. Data Pump

 

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

Oracle 10g의 기능인 Data Pump Oracle Database data metadata의 이동을 위한DBMS_DATAPUMP 패키지를 통하여 상당히 빠른 Data Pump infrastructure를 제공하고 있다.

 

기존 Oracle 9i까지 사용되던 exp, imp 유틸리티보다 더욱더 향상된 성능을 목적으로 만들어진 유틸리티다.

 

Data Pump exp/imp보다 훨씬 많은 기능이 있으며, 대량의 데이터를 작업할 때 무척이나 빠르게 작업할 수 있다. 다음은 간단한 사용방법 및 샘플이다.

 

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

*. expdp

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

 

1. 디렉토리 조회

   SQL> SELECT * FROM dba_directories; 

 

2. 디렉토리 추가

   SQL> DROP DIRECTORY dpump_dir2;                 -- 기존 디렉토리 dpump_dir2 drop

   SQL> CREATE DIRECTORY dpump_dir2 as '/backup/dpump';  -- /backup/dpump 에 대한 디렉토리 dpump_dir2 생성

 

3. 디렉토리에 대한 권한 설정

   SQL> GRANT READ, WRITE ON DIRECTORY dpump_dir2 to 사용자;

 

4. expdp

# expdp system/1239 DIRECTORY=dpump_dir2 schemas=MESS_ADM DUMPFILE=MESS_ADM_20081223.dmp \

logfile=MESS_ADM_20081223.log

 

# expdp SYSTEM/1239 DIRECTORY=DPUMP_DIR2 DUMPFILE=expdp_alldata_0106.dmp \

LOGFILE=expdp_alldata_0106.log PARFILE=expdp.par CONTENT=DATA_ONLY

 

# expdp system/1239 DIRECTORY=dpump_dir2 tables=MESS_ADM.TB_ABC110      \

DUMPFILE=tb_ABC110_20100601.dmp logfile=tb_ABC110_20100601.log CONTENT=DATA_ONLY

 

 

 

* expdp(또는 impdp) 작업 진행 중 Control+C를 누르면 export> 프롬프트(또는 import> 프롬프트) 상태가 됨.

  Control+C 했다고 해서 작업이 중단되지는 않고, interactive mode로 변경되어 expdp(또는 impdp) 작업을

 

  모니터링하고 제어 가능

 

  [interactive mode에서 사용할 수 있는 명령어]

  - STATUS          : 현재 작업진행정도 확인 가능

  - CONTINUE_CLIENT : 다시 원래 모드로 돌아감

  - KILL_JOB

  - STOP_JOB

  - 나머지 명령어는 HELP 참고

 

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

*. impdp

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

 

1. 디렉토리 조회

   SQL> SELECT * FROM dba_directories;   

 

2. 디렉토리 추가

   SQL> DROP DIRECTORY dpump_dir2;                 -- 기존 디렉토리 dpump_dir2 drop

   SQL> CREATE DIRECTORY dpump_dir2 as '/backup/dpump';  -- /backup/dpump 에 대한 디렉토리 dpump_dir2 생성

 

 

3. 디렉토리에 대한 권한 설정

   SQL> GRANT READ, WRITE ON DIRECTORY dpump_dir2 to 사용자;

 

4. impdp

   # impdp system/1239 dumpfile=PT_ABC110_02.dmp directory=dpump_dir2 \

      job_name=job_impdp2 logfile=impdp_PT_ABC110_02.log TABLES=MESS_ADM.TB_ABC110 \

      parallel=4 TABLE_EXISTS_ACTION=APPEND

 

   [TABLE_EXISTS_ACTION 옵션]

    같은 이름의 테이블이 존재할 때 SKIP / APPEND / TRUNCATE / REPLACE

 

[샘플]

 

*. expdp(파티션 테이블)

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

   # expdp system/1239 DIRECTORY=dpump_dir2 tables=MESS_ADM.TB_ABC110:PT_ABC110_01 \

 

           DUMPFILE=PT_ABC110_01.dmp logfile=PT_ABC110_01.log CONTENT=DATA_ONLY

   # expdp system/1239 DIRECTORY=dpump_dir2 tables=MESS_ADM.TB_ABC110:PT_ABC110_02 \

 

           DUMPFILE=PT_ABC110_02.dmp logfile=PT_ABC110_02.log CONTENT=DATA_ONLY

   # expdp system/1239 DIRECTORY=dpump_dir2 tables=MESS_ADM.TB_ABC110:PT_ABC110_03 \

 

           DUMPFILE=PT_ABC110_03.dmp logfile=PT_ABC110_03.log CONTENT=DATA_ONLY

 

*. impdp(파티션 테이블)

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

   # impdp system/1239 dumpfile=PT_ABC110_02.dmp directory=dpump_dir2 \

      job_name=job_impdp2 logfile=impdp_PT_ABC110_02.log TABLES=MESS_ADM.TB_ABC110 \

      parallel=4 TABLE_EXISTS_ACTION=APPEND

 

    Import: Release 10.2.0.2.0 - 64bit Production on Wednesday, 02 June, 2010 0:31:37

 

    Copyright (c) 2003, 2005, Oracle.  All rights reserved.

 

    Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - 64bit Production

    With the Partitioning and Data Mining options

    Master table "SYSTEM"."JOB_IMPDP2" successfully loaded/unloaded

    Starting "SYSTEM"."JOB_IMPDP2":  system/******** dumpfile=PT_ABC110_02.dmp directory=dpump_dir2 job_name=job_impdp2

 

    logfile=impdp_PT_ABC110_02.log TABLES=MESS_ADM.TB_ABC110 parallel=4 TABLE_EXISTS_ACTION=APPEND

    Processing object type TABLE_EXPORT/TABLE/TABLE_DATA

    . . imported "MESS_ADM"."TB_ABC110":"PT_ABC110_02"       746.4 MB 18653423 rows

    Job "SYSTEM"."JOB_IMPDP2" successfully completed at 00:32:53

 

 

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

 

DataPump *

 

- Oracle Database data metadata의 이동을 위한 Tool

  Oracle 9i까지 사용되던 export, import 유틸리티보다 더욱더 향상된 성능을 가지고 있다.

 

DataPump 준비 단계

 

-- DBA 권한 이상으로 로그인

CONNECT /as sysdba

 

-- DataPump를 위한 Directory 생성

CREATE OR REPLACE DIRECTORY dpump_dir AS '/oracle/app/oracle/product/10.2.0/datapump';

 

-- 생성한 Directory Read, Write 권한 할당

GRANT READ, WRITE ON DIRECTORY dpump_dir TO system;

 

-- Directory 확인

set linesize 200

set pagesize 100

col owner format a10

col privilege format a10

col directory_path format a50

SELECT d.owner, directory_name, grantee, privilege, directory_path

FROM user_tab_privs t, all_directories d

WHERE t.table_name(+)=d.directory_name;

 

DataPump 수행 단계

 

-- DataPump 수행

expdp system/oracle directory=dpump_dir dumpfile=full_%U.dmp logfile=full_%U.log job_name=expdp_full full=y

① system/oracle : userid/password

② dpump_dir : directory(※ 절대경로가 아님)

③ full_%U.dmp : dumpfile => parallel 옵션과 함께 사용시 파일명에 %U 사용한다.

④ full_%U.log : logfile

⑤ expdp_full  : job_name

⑥ full=y : DB 전체 FULL export

 

-- 작업 중지

현재 Command-Line 모드로 expdp 수행중에 Ctrl+C를 누른 상태,

, "Export>" 프롬프트 상태가 Interactive-Command Interface 모드이다.

이상태에서 stop_job을 수행해야지 작업이 중단된다.

 

Export> stop_job

※ 작업이 중단되더라도 나중에 다시 실행 및 취소가 가능하다.(완전 삭제는 kill_job)

Ctrl+C를 누른 상태로는 서버기반이기 때문에 취소되지 않고 작업이 계속 진행중이다

 

-- DataPump 작업 확인

SELECT * from dba_datapump_jobs;

 

-- 중지된 Job 재실행하기

attach=job_name으로 실행중이거나 중지중인 Job에 다시 접속할 수 있다.

 

expdp system/oracle attach=expdp_full

Export> start_job

 

-- 작업내용 표시

Export> continue_clinet

 

Remote DB Export 받기

 

DB Link 생성 및 확인

 

-- Database Link 생성

CREATE DATABASE LINK expdp_net01 CONNECT TO system IDENTIFIED BY oracle USING 'EXPDP_DOG13'

 

-- DB Link 확인

col owner for a10

col db_link for a15

col username for a10

col host for a15

SELECT * FROM dba_db_links;

 

-- Local DB쪽에 파일 남기기

expdp system/oracle NETWORK_LINK=expdp_net01 directory=dpump_dir dumpfile=expdp_net01_%U.dmp logfile=expdp_net01.log

job_name=net_expdp_full full=y

 

Long TYPE NETWORK_LINK로 받아지지 않는 것도 있으므로 확인

 

-- Remote DB쪽에 파일 남기기

expdp system/oracle@EXPDP_DOG13 directory=dpump_dir dumpfile=expdp_net01_%U.dmp logfile=expdp_net01.log

job_name=net_expdp_full full=y

 

DB Link Network_Link를 이용하면 Local DB쪽에 dmp파일이 생성되며, Network Alias만 이용하면

Remote DB쪽에 dmp파일이 생성된다.

728x90
반응형

'데이터베이스 > 오라클' 카테고리의 다른 글

오라클전자정부 사용자생성  (0) 2021.09.06
오라클계정생성 및 백업  (0) 2021.09.06
로우 총건수 구하기  (0) 2021.09.06
열을 행으로 wm_concat  (0) 2021.09.06
오라클 테이블,뷰정보  (0) 2021.09.06

댓글



"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

loading