웹개발 관련

[ORACLE] impdp, expdp

반응형

디비는 뭔가를 건드릴 때마다 잘 못 될까봐 너무 무서움 ㄷㄷㄷㄷ

 

 

 

-- 덤프 하기 전 기초 설정

 

create or replace directory datapump as '/oracle/datapump';

( /oracle/datapump 을 datapump로 링크 걸기)

 

grant read, write on directory datapump to TEST;

( TEST사용자가 datapump 폴더 접근가능 할 수 있게 권한줌 )

 

grant create any directory to TEST;

( TEST사용자가 datapump폴더 안에 덤프파일 생성 권한 주기 )

 
 
-- 권한 주기
- 유저 권한 grant connect,  resource  to TEST;
- TEST에 DBA권한 생성 : grant dba to TEST;
 
grant exp_full_database, imp_full_database to TEST; [exp, imp 사용]

 

 

 

-- 디렉토리확인

SQL> select directory_name, directory_path from dba_directories;

 

 

 

 

 

 

-- IMP, EXP

버전이 다른 오라클 덤프해서 버전 맞춰줌

 

ORA-39001에러 = 버전 안맞음

ORA-39001: invalid argument value

 

>expdp id/pw directory=DATA_PUMP_DIR dumpfile=dmpfile01.dmp version=11.2.0.1.0 tables=BOARD

 

>impdp id/pw  directory=DATA_PUMP_DIR dumpfile=dmpfile01.dmp tables=BOARD table_exists_action=truncate  

 

 

 

임포트 할 때 table_exists_action=truncate   안하면 테이블 중복이라고 오류남

 

※※※참고※※※

- table_exists_action 

    ·replace : 존재하는 테이블을 drop 한 후, dumpfile 로부터의 테이블을 새로 생성하고 rows 를 import 

    ·skip : 존재하는 오브젝트는 import 하지 않음 

    ·append : 존재하는 rows 는 그대로 두고, dumpfile 의 rows 를 import 

    ·truncate : 존재하는 rows 는 delete 하고, dumpfile 의 rows 를 import

 

 

반응형