개 요
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
'DB' 카테고리의 다른 글
대상자테이블 히스토리 관리방법 (0) | 2020.04.03 |
---|---|
테이블 설계 시 대상자정보 관리를 어떻게 할 것인가? (0) | 2020.03.12 |
테이블의 default값을 고려하라 (0) | 2020.03.10 |
테이블 분리해야할까? 합쳐야할까? (0) | 2020.03.10 |
테이블간에 종속된 관계를 지정 시 seq 값으로 맵핑하는것을 고려하라 (0) | 2019.12.24 |