Oracle DMP 파일 Import/Export 가이드

Oracle에서 exp/imp, expdp/impdp 유틸리티를 사용한 데이터 백업 및 복구 방법입니다. DMP 파일을 이용한 데이터 마이그레이션을 다룹니다.

1. 기존 방식: exp/imp

# 전체 스키마 Export
exp userid=scott/tiger file=scott.dmp log=scott_exp.log owner=scott

# 특정 테이블 Export
exp userid=scott/tiger file=emp.dmp tables=emp,dept

# Import
imp userid=scott/tiger file=scott.dmp log=scott_imp.log fromuser=scott touser=scott

2. Data Pump: expdp/impdp (권장)

# 디렉토리 객체 생성 (최초 1회)
CREATE DIRECTORY dump_dir AS "/home/oracle/dump";
GRANT READ, WRITE ON DIRECTORY dump_dir TO scott;

# 스키마 Export
expdp scott/tiger directory=dump_dir dumpfile=scott.dmp logfile=scott_exp.log schemas=scott

# 스키마 Import
impdp scott/tiger directory=dump_dir dumpfile=scott.dmp logfile=scott_imp.log schemas=scott

3. Export 옵션

# 특정 테이블만
expdp scott/tiger directory=dump_dir dumpfile=emp.dmp tables=emp,dept

# 조건부 Export
expdp scott/tiger directory=dump_dir dumpfile=emp_2024.dmp 
  tables=emp query=emp:"WHERE hiredate >= TO_DATE(20240101, YYYYMMDD)"

# 압축 Export
expdp scott/tiger directory=dump_dir dumpfile=scott.dmp 
  compression=all

# 병렬 처리
expdp scott/tiger directory=dump_dir dumpfile=scott_%U.dmp 
  parallel=4 schemas=scott

4. Import 옵션

# 다른 스키마로 Import
impdp scott/tiger directory=dump_dir dumpfile=scott.dmp 
  remap_schema=scott:newuser

# 다른 테이블스페이스로 Import
impdp scott/tiger directory=dump_dir dumpfile=scott.dmp 
  remap_tablespace=users:new_tbs

# 테이블 이름 변경
impdp scott/tiger directory=dump_dir dumpfile=emp.dmp 
  tables=emp remap_table=emp:emp_backup

# 기존 테이블 삭제 후 Import
impdp scott/tiger directory=dump_dir dumpfile=scott.dmp 
  table_exists_action=replace

5. table_exists_action 옵션

옵션동작
SKIP테이블 존재 시 건너뜀 (기본값)
APPEND기존 데이터에 추가
TRUNCATE기존 데이터 삭제 후 Import
REPLACE테이블 DROP 후 재생성

6. DMP 파일 내용 확인

# Import 없이 내용만 확인
impdp scott/tiger directory=dump_dir dumpfile=scott.dmp sqlfile=ddl.sql

# 테이블 목록만 확인
impdp scott/tiger directory=dump_dir dumpfile=scott.dmp 
  sqlfile=tables.sql include=table

7. 네트워크 모드 (DB Link)

# 원격 DB에서 직접 Import
impdp scott/tiger directory=dump_dir 
  network_link=remote_db_link 
  schemas=scott 
  logfile=network_imp.log

8. 문제 해결

# 권한 오류
ORA-39002: invalid operation
→ DIRECTORY 권한 확인

# 버전 불일치
→ expdp version=11.2 (하위 버전 호환)

# 공간 부족
→ dumpfile=dump_%U.dmp filesize=2G

exp/imp vs expdp/impdp

항목exp/impexpdp/impdp
속도느림빠름 (병렬)
저장 위치클라이언트서버
기능기본풍부
권장레거시현재 표준