7. Data Pump Import 모드
지금 까지 Data Pump Export 대해 자세히 알아 보았습니다. 데이터베이스 내에 있는 오브
젝트를 운영체제 파일시스템으로 옮기는 작업을 Data Pump Export 라고 한
다면 Data Pump Import 작업은 운영체제 파일시스템에 있는 오브젝트 들을 데이터 베이스
내의 테이블로 옮기는 작업 입니다. impdp 명령어를 통하여 사용할 수 있으며,
Data Pump Import 작업에서 처럼 Command 라인, par 파일, Interactive Mode 모두 사용 하
실 수 있습니다.
1) 파일 및 디렉토리 관련 파라메타
impdp dangtong/edu2006 DIRECTORY=datapump_dir1 DUMPFILE=datapump.dmpSCHEMAS=SCOTT
과 같이 DIRECTORY 는 디렉토리 오브젝트를 받는 파라메타 이고 DUMPFILE 파라메타
는 Import 될 파일명, SQLFILE 은 작업 수행동안 수행될 DDL문을 저장할 파일이름
이며, 디렉토리 관련 파라메타 로 설정 됩니다.
2) 필터링 관련 파라메타
필터링 파라관련 파라메타 에는 COTENT,INCLUDE,EXCLUDE,TABLE_EXISTS_ACTION 파라메
터가 있습니다. COTENT,INCLUDE,EXCLUDE 파라메타는 Export 와 마찬가지로 사용 하
실수 있으며,TABLE_EXISTS_ACTION 파라메타는 오직 Import 작업시에만 사용 할 수 있
습니다.
① COTENT : CONTENT 파라메타는 DATA_ONLY,ALL,METADATA_ONLY 3가지 값을 가질 수 있
으며, CONTENT=DATA_ONLY 형식으로 사용 하실 수 있습니다.
impdp dangtong/edu2006 DIRECTORY=datapump_dir1 DUMPFILE=datapump.dmp
SCHEMAS=SCOTT CONTENT=DATA_ONLY
② INCLUDE : INCLUDE=OBJECT_NAME:"='조건'" 형식으로 사용하실 수 있으며, 오브
젝트의 종류에는 앞서 배운 것 과 같이 TABLE,INDEX,PORCEDURE,FUNCTION 등이 있습
니다.
impdp dangtong/edu2006 DIRECTORY=datapump_dir1 DUMPFILE=datapump.dmp
SCHEMAS=SCOTT INCLUDE=TABLE:"='SAL'"
SCOTT 유저의 테이블을 Import 하되 SAL 테이블 만 포함 시키라는 명령 이 됩니다
SCOTT 유저가 EMP,SAL,SALARY 3개의 테이블을 가졌다고 가정하고 하나의 덤프파일에
3개의 테이블을 Export 받았고, 위와 같은 import 명령을 내린다면 3개의 테이블중
오직 SAL 테이블 만을 Import 하게 됩니다.
③ EXCLUDE : EXCLUDE=OBJECT_NAME:"='조건'" 형식으로 사용하실 수 있으며, 마찬가지
로 오브젝트 종류는 INCLUDE 와 같습니다.
impdp dangtong/edu2006 DIRECTORY=datapump_dir1 DUMPFILE=datapump.dmp
SCHEMAS=SCOTT EXCLUDE=TABLE:"='SAL'"
SCOTT 유저의 테이블을 Import 하되 SAL 테이블을 제외한 나머지 테이블을 Import
하라는 명령이 되겠죠? 마찬가지로 SCOTT 유저가 EMP,SAL,SALARY 3개의 테이블을 가졌
다고 가정하고 하나의 덤프파일에 3개의 테이블을 Export 받았고, 위와 같은 import
명령을 내린다면 3개의 테이블중 SAL 을 제외한 EMP,SALARY 테이블만 Import 될 것
입니다.
④ TABLE_EXISTS_ACTION : Import 시에 중요한 옵션입니다. 우리가 Data Pump 를 통
해 작업을 하게될 경우 같은 이름의 테이블이 존재할 때가 있습니다. 만약 테이블이
존재 하더라도 Import 하고자 하는 데이터의 row 수가 다를 수고 있고 같을 수도 있
을 겁니다. 즉, 테이블은 존재하지만 데이터의 내용은 차이가 난다는 거죠.
이러한 경우에 사용할 수 있는 유용한 파라메타가 TABLE_EXISTS_ACTION 입니다.
TABLE_EXISTS_ACTION 파라메타는 SKIP,APPEND,TRUNCATE,REPLACE 의 값을 가질수 있으
며 각 값의 의미는 다음과 같습니다.
- SKIP : 같은 테이블을 만나면 지나치고 다음 테이블을 Import 합니다.
- APPEND : 같은 테이블을 만나면 기존의 데이터에 추가하여 Import 합니다.
- TRUNCATE : 같은 테이블을 만날경우 기존의 테이블을 TRUNCATE 하고 새로운 데이
터를 Import 합니다.
- REPLACE : 같은 테이블을 만날 경우 기존의 테이블을 DROP 하고 테이블을 재생성
한후 데이터을 Import 합니다.
impdp dangtong/edu2006 DIRECTORY=datapump_dir1 DUMPFILE=datapump.dmp
SCHEMAS=SCOTT TABLE_EXISTS_ACTION=SKIP
위와 같이 실행하면 같은 테이블을 만날경우 그냥 지나치고 다른 테이블을 Import
하겠죠?
2) JOB 관련 파라메타
앞서 학습한 JOB_NAME,STATUS,PARALLEL 파라메타를 Export 와 같은 방법으로 사용
하실 수 있습니다. Export 와 마찬가지로 PARALLEL 작업시에 dumpfile 의 개수를
%u를 사용하여 지정하여 주거나, 명시적으로 ','를 사용하여 PARALLEL 개수 만큼
파일을 지정 하셔야 합니다.
3) 리맵핑 관련 파라메타
리맵핑 관련 파라메타에는 REMAP_SCHEMA,REAMP_DATAFILE,REMAP_TABLESPACE 가 있으며,
이들 파라메타 를 통하여 우리는 다른 데이터베이스 로 Import 시에 많은 유연성을 제
공 받을 수 있습니다.
① REMAP_SCHEMA : A 유저 스키마로 Export 받은 데이터를 B 유저 스키마로 Import 하
고자 할때 사용 합니다.
impdp dangtong/edu2006 DIRECTORY=datapump_dir1 DUMPFILE=datapump.dmp
SCHEMAS=SCOTT REMAP_SCHEMA=SCOTT:DANGTONG
위와 같이 수행한후 TABLE의 OWNER 을 조회 한다면 DANGTONG 유저의 소유로 테이블
이 등록 되었음을 확인 하실수 있습니다.
② REMAP_DATAFILE : 전체 데이타베이스 시스템을 Data Pump 를 통하여 옮기고자 할때
Export 된 daumfile 에는 DataFile 정보까지 포함하게 됩니다. 하지만 다른시스템의
디스크 경로 상에는 존재하지 않는 경로이기 때문에 Import에 실패하게 됩니다. 이러한
경우에 사용 할 수 있는 파라메타가 REAMP_DATAFILE 입니다. Export 된 dumpfile 이
Datafile 정보를 포함한 경우에만 해당합니다.
impdp dangtong/edu2006 FULL=Y DIRECTORY=datapump_dir1
DUMPFILE=datapump.dmp
REMAP_DATAFILE='/db1/data/lvol01':'/db2/data/lvol01',
'/db1/data/lvol02':'/db2/data/lvol02'
.
.
.
③ REMAP_TABLESPACE : Export 받은 데이터 속한 TABLESPACE에서 다른 테이블 스페이
스로 REMAPPING 하고 하는 경우 사용할 수 있응 파라메타 입니다.
impdp dangtong/edu2006 REMAP_TABLESPACE='scott_tsb':'dangtong:tbs'
DIRECTORY=datapump_dir1 DUMPFILE=datapump.dmp SCHEMAS=SCOTT
4) 네트웍 링크 파라메타
Export 에서와 마찬가지로 DB LINK를 이용하여 원격지 데이터베이스에 대해 Import
작업을 수행할 수 있습니다.
5) Interactive mode 파라메타
Export 에서와 마찬가지로 Ctrl + C 를 통하여 Interactive mode 로 진입할 수 있으며
작업을 통제 할 수 있습니다.
8. Data Pump 모니터링 하기
이번 장에서는 SQL을 통한 작업 모니터링 방법에 대하여 학습해 보도록 하겠습니다.
작업의 진행 경과와 작업속성들 그리고 얼마나 많은 작업들이 존재 하는가를 알 수
있습니다.
1) 관련 조회 테이블 및 VIEW 들
① DBA_DATAPUMP_JOBS 현재 실행중인 작업의 속성들을 살펴 볼 수 있는 테이블
입니다.
SQL> select * from dba_datapump_jods;
로 조회 하시면 다음과 같은 컴럼이 나옵니다.
- OWNER_NAME : DB 작업 계정
- JOB_NAME : 작업의 명칭
- JOB_MODE, : FULL,TABLE,INDEX,TABLESPACE 등이 있습니다.
- STATE : EXECUTING(수행중),DEFINING ,UNDEFINED, NOT RUNNING 의 값을
가집니다.
② Pump Session 확인
Select sid,serial# from v$session session,dba_data_session pump_session
where session.saddr = pump_session.saddr;
로 조회 하시면 현재 Data Pump 를 통해 수행 중인 모든 Session 들과 상태들을
모니터링 할 수 있습니다.
③ Data Pump 의 모니터링
SELECT opname,target_desc,sofar,totalwork,(sofar/totalwork*100) Percentage
FROM v$session_longops;
opname : JOBNAME 과 같습니다.
TOTALWORK : 총 수행하여야할 용량을 가르키며 단위는 Megabytes 입니다.
sofar : 현재 수행한 용량 을 가르키며 단위는 Megabytes 입니다.
target_desc : 작업의 종류를 말합니다. IMPORT/EXPORT 가 값이 될수 있습니다.
'ORACLE > Migration' 카테고리의 다른 글
하나의 dmp파일로 여러 유저에 넣을 때 tbs 분배 (0) | 2010.02.04 |
---|---|
Table생성 스크립트 파일 뽑아내기 (0) | 2009.08.28 |
Dangtong 의 오라클 <Data Pump Export / Import 2편> (0) | 2008.11.07 |
10g Data Pump Export / Import 사용하기 (0) | 2008.11.07 |
[ORACLE] 테이블간 자료이동 insert.. select, create.. select (0) | 2007.10.09 |