Oracle/Migration

DataPump (expdp) 옵션 정리

beom92 2023. 5. 19.

 

기본 템플릿 : expdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp

 

 

DataPump (expdp) 매개변수 정리

키워드 설명 예시
HELP expdp 에 대한 명령어 및 도움말 메시지 표시 expdp help=y | expdp -help
DIRECTORY DMP 파일이 입력될 디렉토리 경로 설정 directory=dpump01
DUMPFILE 입력될 dmp 파일의 이름 설정 dumpfile=test01_%U.dmp
(이때 %U 는 순차적인 번호가 입력됨)
LOGFILE 입력될 LOG 파일의 이름 설정 logfile=export.log
FULL Database 전체를 export 할지에 대한 여부 full=[y | n]
SCHEMAS 지정한 스키마가 소유한 오브젝트를 대상으로 export 작업 schemas=scott
TABLES 지정한 table 을 대상으로 export 작업 tables=[schema_name.]emp[:partition_name]
TABLESPACES 지정한 Tablespace 에 포함되는 오브젝트에 대한 export 작업 tablespace=USERS
ATTACH 진행중인(일시중단 된) 작업에 접근하여 컨트롤 가능
(job_name 매개변수를 참조)
ATTACH=job_name
JOB_NAME export 작업에 대한 이름 job_name=full_expdp_01
COMPRESSION export 되는 파일의 어느 종류를 압축 할지에 대한 여부 compression=[metadata_only | none | all | data_only]
COMPRESSION_ALGORITHM 사용할 압축 알고리즘 선택 compression_algorithm=[basic | low | medium | high]
CONTENT export 할 시 데이터 종류 지정 content=[all | data_only | metadata_only]
CLUSTER 클러스터 리소스를 활용 및 RAC 전체에 대한 작업 분산 여부 지정 cluster=[Y | N]
PARALLEL export 작업에 대한 병렬 프로세스 갯수 설정 parallel=4
FILESIZE 분할 export 받을 시에 파일의 최대 사이즈를 설정 filesize=100 [bytes | kilobytes | megabytes | gigabytes]
SAMPLE export 시 데이터의 양이 많을 경우 퍼센트로 지정하여 추출 가능 sample=scott.emp:20
EXCLUDE 작업 수행 시 원하는 오브젝트의 제외를 지정하여 작업 가능 exclude=table:\"IN\(\'EMP\',\'DEPT3\'\)\”
(이때 특수문자 앞에 역슬래시:\ 가 있어야 인식됨)
INCLUDE 작업 수행 시 원하는 오브젝트의 포함을 지정하여 작업 가능 include=table:\”IN\(\’EMP\’,\’DEPT3\’\)\” include=PROCEDURE include=INDEX:\”LIKE\‘EMP\%\’\”
(이때 특수문자 앞에 역슬래시:\ 가 있어야 인식됨)
QUERY 특정 조건에 맞는 데이터만 지정하여 작업 가능 query=emp:\"\'where sal>1000\'\”
(이때 특수문자 앞에 역슬래시:\ 가 있어야 인식됨)
VERSION 더 낮은 DB 버전으로 import 할시 소스 db에 대한 버전 명시가 반드시 필요함
(버전이 같거나 높은경우 명시할 필요 없음)
version=11.2 ex) 19c 에서 11g로 ex/im 할 경우
FLASHBACK_SCN SCN 을 지정하여 그에 해당하는 스냅샷을 확인하여 export 작업 가능
(undo 공간이 충분 할 때 사용가능)
flashback_scn=1234567
FLASHBACK_TIME 시간을 지정하여 가장 가까운 SCN 을 가져와 그에 해당하는 스냅샷을 확인하여 export 작업 가능 (undo 공간이 충분 할 때 사용가능) flashback_scn=\”to_timestamp\(\’2022-12-19 10:00:00\’, \‘yyyy-mm-dd hh24:mi:ss\’\)\”
(이때 특수문자 앞에 역슬래시:\ 가 있어야 인식됨)
ABORT_STEP export 시작 직전 또는 지정한 오브젝트 프로세스 순서 번호에 abort 되어 export 가 중단됨 attach 매개변수를 사용하여 재시작 또는 작업 취소가능 abort_step=[-1 | 0~]
ACCESS_METHOD (표 아래 옵션 확인) 특정 이유로 기본 방식이 작동하지 않을 경우. 특정 메소드를 활용하여 데이터를 unload 하도록 설정 access_method=[automatic | direct_path | external_table | insert_as_select]
DATA_OPTIONS (표 아래 옵션 확인) export 작업 중에 특정 형식의 데이터를 처리하는 방식 data_options=[xml_clobs | group_partition_table_data | verify_stream_format]
ENCRYPTION (11g 이상 EE 기능) export 하기전 암호화 할지 여부 설정 encryption=[all | data_only | encrypted_columns_only | metadata_only | none]
ENCRYPTION_ALGORITHM (11g 이상 EE 기능) 암호화를 수행할시 사용할 암호화 알고리즘 선택 encryption_algorithm=[aes128 | aes192 | aes256]
ENCRYPTION_MODE (11g 이상 EE 기능) 암호화 및 암호 해독을 수핼할 때 사용할 보안 유형 선택 encryption_mode=[dual | password | transparent]
ENCRYPTION_PASSWORD (11g 이상 EE 기능) : ENCRYPTION_PWD_PROMPT 와 동시 사용 불가능 암호화된 파일에 대한 패스워드 설정 encryption_password=패스워드
ENCRYPTION_PWD_PROMPT (11g 이상 EE 기능) : ENCRYPTION_PASSWORD 와 동시 사용 불가능 암호화 암호를 묻는 메시지를 표시할지 여부 설정 (yes 시에 암호화 암호가 프롬프트에 입력될때 보이지 않음) encryption_pwd_prompt=[yes | no]
ESTIMATE export 작업 시 각각의 테이블이 사용하는 디스크 사용량을 [블록수*블록사이즈] 로 표시할지 analyze table 명령어로 딕셔너리를 업데이트시킨 후 사용량을 통계로 표현할 것인지 설정 estimate=[blocks | statistics]
ESTIMATE_ONLY 이 값을 yes 로 설정할시 실제 export 작업을 하지 않고 export 작업이 진행될 경우 예상 되는 디스크 사용량만 출력 estimate_only=[yes | no]
KEEP_MASTER 완료된 export 작업에 대해 원본 테이블을 삭제할지 또는 유지할지를 설정 keep_master=[yes | no]
LOGTIME (표 아래 옵션 확인) export 작업 중 출력되는 메시지에 시간이 나오도록 설정 datapump 작업의 여러단계간에 경과된 시간 파악 가능 logtime=[none | status | logfile | all]
METRICS 작업에 대한 추가 정보를 LOG 파일에 표시할지에 대한 여부 설정
(개체 수 및 경과 시간 등 내용 표시)
metrics=[yes | no]
NOLOGFILE log 파일을 만들지 여부 설정 nologfile=[yes | no]
PARFILE 매개변수 목록을 미리 설정하여 파일(표 아래 옵션 확인)로 보관할때 export 작업시 해당 파일을 참조하여 간단하게 실행 가능 ex) ex.par SCHEMAS=scott DUMPFILE=exp.dmp DIRECTORY=datapump LOGFILE=exp.log expdp scott parfile=ex.par
SERVICE_NAME 작업이 진행될 인스턴스를 지정 가능
ex) a,b,c,d 인스턴스: a,b,c 로 구성된 리소스 그룹
1. 변수 설정하고 a 인스턴스에서 작업 할 경우
: a,b,c 인스턴스에 프로세스가 작동
: CLUSTER=YES SERVICE_NAME=[service_name]
2. 변수 설정하고 d 인스턴스에서 작업 할 경우
: a,b,c,d 인스턴스에 프로세스가 작동
: CLUSTER=YES SERVICE_NAME=[service_name]
3. SERVICE_NAME 변수만 설정되고, a 인스턴스에서 작업 할 경우
: 모든 프로세스가 a 인스턴스에서 작동
: CLUSTER=no SERVICE_NAME=[service_name]
CLUSTER=YES SERVICE_NAME=[service_name]
NETWORK_LINK 원격지에 있는 DB에 접근하여 export 할 시에 설정
(원격지 db로 db link 가 생성 되어있어야 사용가능)
network_link=emp@testdb
SOURCE_EDITION 개체를 가져올 원격 노드의 DB 버전을 지정 (NETWORK_LINK 참조) source_edition=edition_name
STATUS export 작업시 상태 표시가 업데이트 되는 빈도 설정 status=300 (초단위 지정 가능)
TRANSPORTABLE (표 아래 옵션 확인) table 모드로 지원하여 table 매개변수를 통해 table, partition, subpartition 등을 export 할때 사용 transportable=[always | never]
TRANSPORT_FULL_CHECK 전송 가능한 집합 내부의 개체와 전송가능한 집합 외부의 개체 간에 종속성을 확인할지 여부 설정 transport_full_check=[yes | no]
TRANSPORT_TABLESPACES 테이블스페이스 모드로 export 수행 transport_tablespaces=tablespace_name [, …]
VIEWS_AS_TABLES 하나 이상의 view 를 테이블로 export 수행
(해당 옵션은 암호화 되지 않은 view 를 암호화 되지 않은 테이블로 export 하므로 민감한 데이터일 경우 export 시에 암호화 모드를 활성화 권장)
views_as_tables=[schema_name.]view_name[:table_name]

 

 

 

 

ACCESS_METHOD 옵션 설명

automatic - 각 테이블에 대하 데이터를 언로드 하는 가장 최적의 방법을 결정

direct_path - 모든 테이블에 대해 직접 경로 unload 를 사용 (해당 옵션은 db link 로는 사용 불가능)

insert_as_select - sql문을 실행하여 원격 db 에서 데이터를 unload (해당 옵션은 네트워크 모드 export 에서만 사용 가능)

external_table - sql문을 사용하여 dmp 파일에 저장된 데이터를 사용하여 외부 테이블을 생성

 

 

DATA_OPTIONS 옵션 설명

XML_CLOBS - 컬럼에 대해 정의된 저장 형식에 관계없이 압축되지 않은 형식으로 컬럼을 export 하도록 지정

group_partition_table_data - datapump 가 각 테이블 파티션을 별도의 작업으로 unload 하는 대신 한 작업에서 모든 테이블 데이터를 unload 하도록 지정

(따라서 import 할시 전체 테이블에 load 될 하나의 파티션을 볼 수 있으므로 가져올 때 테이블의 정의는 중요하지 않음)

verify_stream_format - dump 파일에 기록되기 전에 데이터 스트림 형식의 유효성을 검사.

확인은 스트림이 생성된 후 디스크에 기록되기 전에 스트림의 유효한 형식을 확인

(따라서 dump 파일 생성시 오류가 발생하지 않으므로 스트림을 읽을 때 오류가 발생하지 않음)

 

 

LOGTIME 옵션 설명

STATUS - 상태 메시지에만 표시

LOGFILE - 로그 파일 메시지에만 표시

NONE - 상태 또는 로그 파일 메시지에 표시 없음 (기본값과 동일)

ALL - 상태 및 로그 파일 메시지 모두 표시

 

 

TRANSPORTABLE 옵션 설명

table mode export (tables 매개변수)

전체 export 에서 해당 옵션을 사용하면 DB 전체 복사본을 만드는 데 필요한 모든 개체와 데이터를 내보내는 전체 export 발생

full mode export (full 매개변수)

테이블 모드 export 에서 해당 옵션을 사용하면 지정된 테이블,파티션 또는 하위 파티션에 대한 메타 데이터만 export 발생 

 

 

 

datapump 커맨드창에서 사용되는 구문

ADD_FILE

. Add dumpfile to dumpfile set.

CONTINUE_CLIENT

. Return to logging mode. Job will be restarted if idle.

EXIT_CLIENT

. Quit client session and leave job running.

FILESIZE

. Default filesize (bytes) for subsequent ADD_FILE commands.

HELP

. Summarize interactive commands.

KILL_JOB

. Detach and delete job.

PARALLEL

. Change the number of active workers for current job.

REUSE_DUMPFILES

. Overwrite destination dump file if it exists [NO].

START_JOB

. Start or resume current job. Valid keyword values are: SKIP_CURRENT.

STATUS

. Frequency (secs) job status is to be monitored where the default [0] will show new status when available.

STOP_JOB

. Orderly shutdown of job execution and exits the client. Valid keyword values are: IMMEDIATE.

STOP_WORKER

. Stops a hung or stuck worker.

TRACE

. Set trace/debug flags for the current job.

 

 

 

 

디렉토리 확인

col OWNER for a10

col DIRECTORY_NAME for a50

col DIRECTORY_PATH for a50

set lines 500

set pages 500

SELECT * FROM dba_directories;

 

디렉토리 생성

CREATE DIRECTORY dpump_dir as '/oradata/datapump';

 

디렉터리 삭제

SQL> DROP DIRECTORY <디렉터리 개체 이름>;

SQL> DROP DIRECTORY dir_dump

 

디렉터리 권한 설정

SQL> grant read, write on directory <디렉터리 개체 이름> to <사용자 이름>;

GRANT READ, WRITE ON DIRECTORY dpump_dir to SYSTEM;

GRANT EXP_FULL_DATABASE, IMP_FULL_DATABASE to SYSTEM;


해당 경로(하위경로포함)에서 특정 이름의 파일이 확인되면 삭제

#find /oradata/datapump -type f -name "$(date '+%Y%m%d').dmp" -exec rm {} \;

#find /oradata/datapump -type f -name "$(date '+%Y%m%d').log" -exec rm {} \;

expdp system/oracle full=y directory=dpump_dir dumpfile=full_dump_$(date '+%Y%m%d').dmp LOGFILE=full_dump_$(date '+%Y%m%d').log exclude=statistics job_name=full_expdp_01

 

해당 경로(하위경로포함)에서 생성된지 30일 이상 된 파일만 삭제

#find /oradata/datapump -ctime +30 -type f -exec rm {} \;

 

 

※ 참조 사이트

https://docs.oracle.com/en/database/oracle/oracle-database/12.2/sutil/oracle-data-pump-export-utility.html#GUID-2877B4DB-0082-438F-AC9B-18D1686F5DDC

 

'Oracle > Migration' 카테고리의 다른 글

DataPump (impdp) 옵션 정리  (1) 2023.05.19
[oracle] 19c SE -> EE 전환 및 Migration  (0) 2023.05.19

댓글