개 요

Oracle에서는 다양한 마이그레이션 방법이 있는데 그 중 가장 간단한 마이그레이션 방법인 data pump의 export와 import 방법에 대해 알아보자.

 

사용 방법

첫번째, data pump 사용하기 위해서는 directory 설정이 되어있어야한다.

SELECT * FROM DBA_DIRECTORIES; //directory 조회

CREATE DIRECTORY ora_pump AS 'D:\\ora_pump'; //directory 생성
//ora_pump : directory 명
//'/oracle/ora_pump' : directory 물리경로

GRANT READ, WRITE ON DIRECTORY DUMP TO SYSTEM; //권한부여
// READ : Import Pump를 수행하기 위해 필요
// WRITE : Export Pump를 수행하기 위해 필요

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

 

두번째, data pump Export

//Full Export
expdp system/oracle dumpfile=dumpfile.dmp directory=ora_pump full=y logfile=logfile.log job_name=jobfile

//Metadata Export
expdp system/oracle dumpfile=dumpfile.dmp directory=ora_pump full=y content=metadata_only logfile=logfile.log job_name=jobfile

//Schemas Export 
expdp system/oracle dumpfile=dumpfile.dmp directory=ora_pump schemas=DATAJOY,EAI job_name=jobfile logfile=logfile.log

Full Export : 데이터베이스 전체에 데이터 펌프 적용

Metadata Export : 데이터를 제외하고 껍데기만 export

Schemas Export : 스키마 export

directory={directoryname} : 데이터 펌프 파일을 저장하거나 또는 저장되어 있는 디렉토리

logfile={logfilename}.log : 로그가 저장될 파일 이름

full={y/n} : 데이터베이스 전체에 데이터 펌프 적용

schemas={username} : 설정된 데이터베이스 유저가 소유한 오브젝트에 대해 데이터 추출

tables=TABLE_EMP, TABLE_ORG : 명시된 테이블에 대해서만 데이터 추출

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

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

content={ALL | DATA_ONLY | METADATA_ONLY} :

  • ALL : 전체 추출.
  • DATA_ONLY : 테이블의 데이터만 추출
  • METADATA_ONLY : 데이터 제외한 껍데기만 추출

job_name={jobfilename} : oracle job schedule을 추출할때 사용. (설정안할경우 자동으로 셋팅되지만, 가끔 export 안될때있음)

 

세번째, data pump 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

 

+ Recent posts