Oracle 데이터펌프 API활용
DB CAFE
thumb_up 추천메뉴 바로가기
- DBA { Oracle DBA 명령어 > DBA 초급 과정 > DBA 고급 과정 }
- 튜닝 { 오라클 튜닝 목록 }
- 모델링 { 데이터 모델링 가이드 }
1 스키마의 메타 동기화[편집]
DECLARE
hndl NUMBER;
TAG_NAME VARCHAR2(30) := 'EXP_MIG_TEST01';
BEGIN
hndl := DBMS_DATAPUMP.OPEN( operation => 'EXPORT'
, job_mode => 'SCHEMA' -- FULL, SCHEMA, TABLE, TABLESPACE, TRANSPORTABLE
, job_name=>'JOB_'||TAG_NAME
--, remote_link => 'DBLINK_NAME', version => 'LATEST'
);
DBMS_DATAPUMP.ADD_FILE( handle => hndl, filename => TAG_NAME||'.dmp', directory => 'DATA_PUMP_DIR', filetype => DBMS_DATAPUMP.KU$_FILE_TYPE_DUMP_FILE, reusefile=>1);
DBMS_DATAPUMP.ADD_FILE( handle => hndl, filename => TAG_NAME||'.log', directory => 'DATA_PUMP_DIR', filetype => DBMS_DATAPUMP.KU$_FILE_TYPE_LOG_FILE);
-- DBMS_DATAPUMP.SET_PARAMETER(handle=> hndl, name=> 'INCLUDE_METADATA', value=> 1); -- META 포함여부
DBMS_DATAPUMP.DATA_FILTER(handle=> hndl, name=> 'INCLUDE_ROWS', value=> 0); -- DATA 포함 여부 0,
DBMS_DATAPUMP.METADATA_FILTER(handle=> hndl, name=> 'SCHEMA_EXPR', value=>'IN (''FED40'',''TTT'')');
-- DBMS_DATAPUMP.METADATA_FILTER(handle=> hndl, name=> 'NAME_EXPR', value=>'IN (''FED40'', ''TEST'')');
-- DBMS_DATAPUMP.METADATA_FILTER(handle=> hndl, name=> 'NAME_LIST', value=>'''EMP'',''DEPT''');
DBMS_DATAPUMP.START_JOB(hndl);
END;
2 데이터펌프 EXPORT API[편집]
-- 1.테이블 DUMP EXPORT 스크립트
DECLARE
hdnl NUMBER;
BEGIN
hdnl := DBMS_DATAPUMP.OPEN( operation => 'EXPORT', job_mode => 'SCHEMA', job_name=>'JOB_EXP_TB_RC_JEJU_14');
DBMS_DATAPUMP.ADD_FILE( handle => hdnl, filename => 'INIT_BK_TB_RC_JEJU_14_20190910.EXP', directory => 'DATAPUMP2', filetype => dbms_datapump.ku$_file_type_dump_file ,reusefile=>1);
DBMS_DATAPUMP.ADD_FILE( handle => hdnl, filename => 'INIT_BK_TB_RC_JEJU_14_20190910.LOG', directory => 'DATA_PUMP_DIR', filetype => dbms_datapump.ku$_file_type_log_file ,reusefile=>1);
-- 스키마 정보
DBMS_DATAPUMP.METADATA_FILTER(handle => hdnl,
name => 'SCHEMA_EXPR',
value => ' IN (''유저명'')'
);
-- 테이블 정보
DBMS_DATAPUMP.METADATA_FILTER(handle => hdnl
,name => 'NAME_EXPR'
,value => ' IN (''테이블명'')'
,object_type => 'TABLE'
);
DBMS_DATAPUMP.START_JOB(hdnl);
END;