IMPDP는
데이터베이스에 디렉터리에 있는 *.DMP파일을 적용시키는 방법입니다.
이때 말하는 디렉터리는 자신의 컴퓨터 디렉터리가 아닙니다. 혹시 모르시는 분들을 위해 전에 쓴 글을 링크 걸어둘게요.
https://self-interest.tistory.com/22
그리고 이전편인 EXPDP도 보시는 걸 추천합니다.
https://self-interest.tistory.com/23
IMPDP랑 EXPDP는 비슷한 기능으로 IMP랑 EXP가 있었지만 Oracle11g 이후 비추천되고 있습니다. 그러므로 IMPDP를 사용하시기를 권장합니다. 성능면으로서도 우수합니다.
전체적인 맥락으로 보자면 아래와 같아요.
impdp <아이디> / <패스워드> @ <접속처> <옵션>
EXPDP랑 비슷한 맥락입니다.
옵션을 어떻게 주냐에 따라 임포트하는 방식이 달라집니다.
IMPDP 또한 윈도우의 경우 파워쉘이나 명령 프롬프트를 실행하시고 하면 됩니다.
이제 옵션을 어떻게 주는지 대표적으로 몇 가지 알아보겠습니다.
DB 전체(full) 임포트
impdp 아이디/비밀번호@접속처 directory=디렉터리명 dumpfile=파일명.dmp full=y
테이블스페이스(tablespaces) 임포트
impdp 아이디/비밀번호@접속처 directory=디렉터리명 dumpfile=파일명.dmp tablespaces=테이블스페이스
다른 테이블스페이스로 임포트
(임포트 대상이 테이블스페이스 이름이 다를때)
impdp 아이디/비밀번호@접속처 directory=디렉터리명 dumpfile=파일명.dmp remap_tablespace=FROM테이블스페이스:TO테이블스페이스
FROM스키마: 백업당시의 테이블스페이스
TO스키마: 임포트 대상 테이블스페이스
스키마(Schemas) 임포트
impdp 아이디/비밀번호@접속처 directory=디렉터리명 dumpfile=파일명.dmp schemas=스키마
다른 스키마로 임포트
(임포트 대상이 스키마 이름이 다를때)
impdp 아이디/비밀번호@접속처 directory=디렉터리명 dumpfile=파일명.dmp remap_schema=FROM스키마:TO스키마
FROM스키마: 백업당시의 스키마
TO스키마: 임포트 대상 스키마
테이블(tables) 임포트
impdp 아이디/비밀번호@접속처 directory=디렉터리명 dumpfile=파일명.dmp tables=스키마.테이블
여기서 말하는 디렉터리명은 모두 디렉터리 오브젝트명입니다.
조금 더 옵션을 알아보겠습니다.
위에 적은 백업 방법 뒤에 [옵션 이름 = 값]으로 추가적으로 기입하면 됩니다.
예시)
impdp 아이디/비밀번호@접속처 directory=디렉터리명 dumpfile=파일명.dmp full=y logfile=backup.log
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 해당 매개 변수입니다.
'DB > Oracle' 카테고리의 다른 글
오라클에서 처리중인 SQL 쿼리문 진행상황 확인 (2) | 2019.06.22 |
---|---|
DATA PUMP 데이터베이스 EXPDP 하는 방법(DMP 파일 만드는 방법) (0) | 2019.05.23 |
오라클 DATA PUMP (EXPDP / IMPDP) 하기전 디렉터리 추가, 조회, 삭제, 권한설정 방법 (0) | 2019.05.22 |
ON 조건 없이 조인(JOIN) 하는 방법 (0) | 2019.05.07 |
오라클 테이블 전체 삭제 팁 (1) | 2019.04.19 |
댓글