nugawiki

./categories/server

Oracle Data Pump expdp·impdp

업데이트 2026-07-21 조회수

Oracle Data Pump (expdp/impdp)

Oracle 10g+ 제공. exp/imp 후속. 더 빠르고 일시정지·재개·원격 DB 가능. exp 덤프는 impdp 불가 — exp↔imp, expdp↔impdp 짝을 맞춤.

사전 준비 (디렉토리 오브젝트)

서버 OS 경로에 파일을 쓰므로 디렉토리 오브젝트·권한이 필요.

CREATE OR REPLACE DIRECTORY dpump_dir AS '/backup/dpump';
GRANT READ, WRITE ON DIRECTORY dpump_dir TO ���������;  -- 또는 TO public
GRANT EXP_FULL_DATABASE, IMP_FULL_DATABASE TO ���������;

SELECT * FROM dba_directories;
-- 기본: SYS.DATA_PUMP_DIR

OS에 실제 디렉토리(mkdir)·소유권(chown oracle:dba …)도 맞출 것.

expdp 모드

  • full: DB 전체
  • schema: schemas=
  • tablespace: transport_tablespace 시 OS/blocksize/characterset 동일 필요
  • table: 특정 테이블

공통 파라미터

파라미터의미
directory덤프/로그 디렉토리 오브젝트
dumpfile덤프명 (%U=병렬 번호)
filesize파일 최대 크기
parfile파라미터 파일
logfile / nologfile로그(기본 export.log)
contentALL / DATA\_ONLY / METADATA\_ONLY
exclude / include오브젝트 제외/포함
query조건 데이터만
sample일부(0.000001~100%)
network\_link원격 export(DB Link)
job\_name작업명
parallel병렬 수(%U 필요)
attach중단 작업 재접속
encryption / encryption\_password암호화

impdp 전용

  • table_exists_action: SKIP(기본) / APPEND / TRUNCATE / DROP
  • remap_schema=원:새
  • remap_tablespace='원TS':'대상TS'
  • remap_datafile='원경로':'새경로'

예제

# 스키마
expdp system/비밀번호 directory=dpump_dir schemas=MESS_ADM dumpfile=MESS_ADM.dmp logfile=MESS_ADM.log

# full
expdp system/비밀번호 full=y directory=dpump_dir dumpfile=full_%U.dmp logfile=full.log job_name=expdp_full

# 테이블 DATA_ONLY
expdp system/비밀번호 directory=dpump_dir tables=MESS_ADM.TB_ABC110 dumpfile=tb.dmp logfile=tb.log content=DATA_ONLY

# 병렬
expdp system/비밀번호 full=y directory=dpump_dir dumpfile=full_%U.dmp parallel=4

# exclude (demo: scott)
expdp scott/암호 directory=dpump_dir dumpfile=scott.dmp schemas=scott exclude=table:"IN ('EMP','DEPT')"

# remap import
impdp system/비밀번호 directory=dpump_dir dumpfile=scott.dmp schemas=scott remap_schema=scott:hr
impdp system/비밀번호 dumpfile=tb.dmp directory=dpump_dir tables=MESS_ADM.TB_ABC110 table_exists_action=APPEND

# network_link
CREATE DATABASE LINK expdp_net01 CONNECT TO system IDENTIFIED BY 비밀번호 USING 'REMOTE_DB_SID';
expdp system/비밀번호 network_link=expdp_net01 directory=dpump_dir dumpfile=remote_%U.dmp job_name=net_expdp full=y

Interactive / 작업 제어

진행 중 Ctrl+CExport> (작업은 계속).

Export> status
Export> stop_job
Export> continue_client
expdp system/비밀번호 attach=job_name
# Export> start_job
SELECT owner_name, job_name, operation, job_mode, state FROM dba_datapump_jobs;
-- 잔여 job: DROP TABLE 소유자.job명;

자주 겪는 에러

ORA-39002 / ORA-39070 / ORA-29283 / ORA-06512 (SYS.UTL_FILE)

경로·DIRECTORY GRANT·OS mkdir·chown oracle:dba 점검.

Shell exclude/include 따옴표

include=SCHEMA:"='HR'" → 셸에 따라 LRM-00116 → 이스케이프 또는 parfile.

./comments