"IMPORT DP"의 두 판 사이의 차이
DB CAFE
(→IMPORT API) |
|||
132번째 줄: | 132번째 줄: | ||
</source> | </source> | ||
− | == IMPORT API == | + | === IMPORT API === |
− | === IMPORT 스키마/테이블 API === | + | ==== IMPORT 스키마/테이블 API ==== |
<source lang=sql> | <source lang=sql> | ||
DECLARE | DECLARE | ||
181번째 줄: | 181번째 줄: | ||
</source> | </source> | ||
− | === IMPORT 개별 TABLE (복구시) === | + | ==== IMPORT 개별 TABLE (복구시) ==== |
<source lang=sql> | <source lang=sql> | ||
DECLARE | DECLARE |
2023년 10월 14일 (토) 02:49 판
thumb_up 추천메뉴 바로가기
- DBA { Oracle DBA 명령어 > DBA 초급 과정 > DBA 고급 과정 }
- 튜닝 { 오라클 튜닝 목록 }
- 모델링 { 데이터 모델링 가이드 }
목차
1 IMPORT DP[편집]
1.1 IMPORT 사용 예시[편집]
impdp help = y
impdp scott / tiger
DIRECTORY = dmpdir
DUMPFILE = scott.dmp
'impdp'명령 다음 에 다양한 매개 변수 를 입력하여 가져 오기 실행 방법을 제어 할 수 있습니다 . 매개 변수를 지정하려면 다음 형식의 키워드를 사용하십시오.
impdp KEYWORD = value 또는 KEYWORD = (value1, value2, ..., valueN)
1.2 DBLINK로 IMPORT PUMP 처리 방법[편집]
1.2.1 1.DB 링크 생성[편집]
CREATE PUBLIC DATABASE LINK XXX_LINK
CONNECT TO CYKIM identified by ****
USING '(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=1.2.3.4)(Port=1521)))(CONNECT_DATA=(SERVICE_NAME=ORCL)))';
1.2.2 2.IMPDP 파라미터 파일로 실행[편집]
attach_file
- 주요사항
- 주석은 '#'
- INCLUDE 와 EXCLUDE 는 동시사용 불가
impdp parfile=파라미터파일
- 파라미터파일
USERID=SCOTT/TIGER
JOB_NAME=JOB_MIG2STG_20191002_01
LOGFILE =JOB_MIG2STG_20191002_01.LOG
NETWORK_LINK=XXX_DB_LINK
DIRECTORY=DATA_PUMP_DIR
#DUMPFILE=[DATA_PUMP_DIR:]XXXDB_FULL.DMP #[디렉토리 지정시]
SCHEMAS=('SCOTT','ERP')
TABLE_EXISTS_ACTION=REPLACE
#ALL/DATA_ONLY/METADATA_ONLY
CONTENT=METADATA_ONLY
INCLUDE=TABLE:"IN ('EMP','DEPT') "
#INCLUDE=TABLE:"IN (SELECT 'EMP' FROM DUAL) " -- SQL로 처리
#EXCLUDE=STATISTICS,GRANT -- 제외
1.2.3 IMPORT 파라미터 샘플[편집]
$ impdp parfile=expdp_pump.par
* impdp_pump.par
userid=scott/tiger
directory=datapump
job_name=datapump
dumpfile=expdp_%U.dmp
tables=TT700
table_exists_action=append
1.3 테이블만 IMPORT(테이블 존재시 TRUNCATE)[편집]
impdp scott/tiger
tables=SCOTT.EMP,SCOTT.DEPT
network_link=XXX_DB_LINK
content=data_only
directory=PUMP_TEST
table_exists_action=truncate
logfile=XXX_DUMP.log
1.4 Package, Function, Procedure 만 import 하기[편집]
※ INCLUDE 에서 사용할 수 있는 OBJECT_TYPE은 아래 뷰를 이용하여 확인 가능
DATABASE_EXPORT_OBJECTS, SCHEMA_EXPORT_OBJECTS, and TABLE_EXPORT_OBJECTS.
$impdp system/password directory=temp_dir schemas=scott dumpfile=scott%U.dmp logfile=scott.log
include=PACKAGE,FUNCTION,PROCEDURE
1.5 IMPORT DP 파라미터[편집]
1.5.1 통계정보를 제외[편집]
impdp system
directory=DATA_PUMP_DIR
LOGFILE=MyImpdp.log
schemas=MyRemoteDBSchema1,MyRemoteDBSchema2
exclude=STATISTICS
1.5.2 스키마 선택[편집]
impdp system
directory=DATA_PUMP_DIR
LOGFILE=MyExpdp.log
network_link=MyRemoteDBLink
schemas=MyRemoteDBSchema1,MyR
- directory 로그가 저장될 오라클디렉토리명
- logfile 로그파일명
- network_link DB 링크를 사용
- remap_schema scott 유저를 new_scott 유저로
- Import multiple schemas DBA권한필요
impdp simondba@kdb01
directory=ADMIN_DUMP_DIR
LOGFILE=dblink_transfer.log
network_link=OLD_DB
schemas=simon,scott,hr
1.6 IMPORT API[편집]
1.6.1 IMPORT 스키마/테이블 API[편집]
DECLARE
dph NUMBER;
v_job_name VARCHAR(100) := 'IMP_JOB_TEST';
BEGIN
-- DB_LINK 이용 작업시
dph := DBMS_DATAPUMP.OPEN( operation => 'IMPORT', job_mode => 'SCHEMA' ,job_name => v_job_name, remote_link => 'db링크명');
-- 덤프파일 이용 작업시
-- dbms_datapump.add_file(handle => dph,
-- filename => 'EXPIMP%U.DMP',
-- directory => 'EXPIMP', filetype=>1);
-- 로그
dbms_datapump.add_file(handle => dph,
filename => v_job_name||'.log',
directory => 'DATA_PUMP_DIR', filetype=>3);
-- 스키마 정보
DBMS_DATAPUMP.METADATA_FILTER(handle => dph ,
name => 'SCHEMA_EXPR',
value => ' IN (''MIG_BACKUP'')');
-- 테이블 존재시 TRUNCATE/REPLACE/APPEND
dbms_datapump.set_parameter(handle => dph,
name => 'TABLE_EXISTS_ACTION',
value =>'REPLACE');
-- 테이블 정보
DBMS_DATAPUMP.METADATA_FILTER(handle => dph
,name => 'NAME_EXPR'
,value => ' IN (''TB_TEST'')'
,object_type => 'TABLE'
);
dbms_datapump.start_job(dph);
dbms_datapump.detach(dph);
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line('Error:' || sqlerrm || ' on Job-ID:' || dph);
END;
/
1.6.2 IMPORT 개별 TABLE (복구시)[편집]
DECLARE
dph NUMBER;
v_job_name VARCHAR(100) := 'IMP_JOB_TABLE_RECOVERY';
BEGIN
-- DB_LINK 이용
dph := DBMS_DATAPUMP.OPEN( operation => 'IMPORT', job_mode => 'SCHEMA' ,job_name => v_job_name); -- , remote_link => 'db링크명'
-- 덤프파일 작업시
dbms_datapump.add_file(handle => dph,
filename => 'EXP_EMP_20200102_01.EXP',
directory => 'DATA_PUMP_DIR', filetype=>1);
-- 로그
dbms_datapump.add_file(handle => dph,
filename => v_job_name||'.log',
directory => 'DATA_PUMP_DIR', filetype=>3);
-- 스키마 정보
DBMS_DATAPUMP.METADATA_FILTER(handle => dph ,
name => 'SCHEMA_EXPR',
value => ' IN (''EMP'')');
-- 테이블 존재시 TRUNCATE/REPLACE/APPEND
dbms_datapump.set_parameter(handle => dph,
name => 'TABLE_EXISTS_ACTION',
value =>'TRUNCATE');
-- 테이블 정보
DBMS_DATAPUMP.METADATA_FILTER(handle => dph
,name => 'NAME_EXPR'
,value => ' IN (''TB_TEST'')'
,object_type => 'TABLE'
);
dbms_datapump.start_job(dph);
dbms_datapump.detach(dph);
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line('Error:' || sqlerrm || ' on Job-ID:' || dph);
END;
/