IMPDP랑 EXPDP는 비슷한 기능으로 IMP랑 EXP가 있었지만 Oracle11g 이후 비추천되고 있습니다. 그러므로 IMPDP를 사용하시기를 권장합니다. 성능면으로서도 우수합니다.
전체적인 맥락으로 보자면 아래와 같아요.
EXPDP랑 비슷한 맥락입니다.
옵션을 어떻게 주냐에 따라 임포트하는 방식이 달라집니다.
IMPDP 또한 윈도우의 경우 파워쉘이나 명령 프롬프트를 실행하시고 하면 됩니다.
이제 옵션을 어떻게 주는지 대표적으로 몇 가지 알아보겠습니다.
DB 전체(full) 임포트
테이블스페이스(tablespaces) 임포트
다른 테이블스페이스로 임포트
(임포트 대상이 테이블스페이스 이름이 다를때)
FROM스키마: 백업당시의 테이블스페이스
TO스키마: 임포트 대상 테이블스페이스
스키마(Schemas) 임포트
다른 스키마로 임포트
(임포트 대상이 스키마 이름이 다를때)
FROM스키마: 백업당시의 스키마
TO스키마: 임포트 대상 스키마
테이블(tables) 임포트
여기서 말하는 디렉터리명은 모두 디렉터리 오브젝트명입니다.
조금 더 옵션을 알아보겠습니다.
위에 적은 백업 방법 뒤에 [옵션 이름 = 값]으로 추가적으로 기입하면 됩니다.
logfile 옵션
logfile=backup.log
디렉터리 개체의 경로가 로그 파일의 대상이 된다.
대상 디렉터리 개체의 권한이 있는 경우, 디렉터리 이름도 생략 가능.
nologfile=yes
로그 파일을 출력하지 않는다.
nologfile=no (기본)
로그 파일을 출력하지 않는다.
content 옵션
content=datadata_only
테이블의 데이터만 임포트
content=metadata_only
메타데이터(테이블 정의 데이터는 없음)만 임포트
content=all (기본)
정의와 데이터 전부 임포트합니다.
table_exists_action 옵션
※ content = data_only의 경우 table_exists_action 옵션은 유효하지 않습니다.
skip (기본)
table_exists_action = skip는 테이블이 존재하는 경우, 데이터 가져 오기는하지 않는다.
truncate
table_exists_action = truncate는 테이블이 존재하는 경우, 기존 데이터 행을 내부적으로 truncate하고 데이터를 가져옵니다. 클러스터 테이블에서는 사용할 수 없다.
append
table_exists_action = append는 테이블이 존재하는 경우, 기존 데이터 행을 변경하지 않고 가져옵니다. append 파라미터의 주의점으로는 제약에 낀 때 중복되지 않은 데이터도 포함 전건가 생략되어 버리는 것.
replace
table_exists_action = replace는 테이블이 존재하는 경우, 테이블 자체를 내부적으로 drop하고 다시 생성하여 데이터를 가져옵니다. 이전 imp 명령 ignore 해당 매개 변수입니다.
exclude 옵션
exclude = INDEX
인덱스를 제외합니다.
임포트시에 특정 개체를 제외할 수 있습니다.
table, index, constraint, grant
remap_schema 옵션
export시 스키마 : import시 스키마
다른 스키마로 변경한다.
remap_tablepsace 옵션
export시 테이블 스페이스 : import시 테이블 스페이스
다른 테이블 스페이스로 변경한다.
remap_table 옵션
export시 테이블 : import시 테이블
다른 테이블로 변경한다.
reuse_datafiles 옵션
reuse_datafiles = yes
기존의 데이터 파일을 초기화 재사용한다.
reuse_datafiles = no (기본값)
기존의 데이터 파일을 초기화 재사용하지 않는다.
data_options 옵션
disable_append_hint
append 힌트를 무효화한다.
skip_constraint_errors
제약 조건 위반이 발생하더라도 롤백하지 않고 가져옵니다.
encryption_password 옵션
암호를 지정
암호화 된 데이터를 대상으로하는 경우 보안 강화에 사용한다.
※ Enterprise Edition에서 Advanced Security 옵션 라이센스가 필요합니다.
parallel 옵션
병렬 실행 프로세스의 최대 값을 지정
※ Enterprise Edition테이블이 존재하는 경우, 테이블 자체를 내부적으로 drop하고 다시 생성하여 데이터를 가져옵니다. 이전 imp 명령 ignore 해당 매개 변수입니다.