덤프 익스포트 임포트


C:\> exp 권한이있는유저(스키마)/비밀번호 file=경로/덤프파일.dmp owner=익스포트할스키마
C:\> imp file=경로/덤프파일.dmp userId=임포트할유저(스키마)/비밀번호 full=y log=경로/로그파일.log

주의 )
익스포트시 테이블에 테이블스페이스가 지정되어 있을 경우 임포트할 데이터베이스에도 같은 이름의 테이블스페이스가 존재해야 임포트가 됨. 


덤프파일 임포트시 테이블스페이스 변경

C:\> imp file=경로/덤프파일.dmp userId=임포트할유저(스키마)/비밀번호 full=y log=경로/로그파일.log indexfile=index.sql 

1. 위처럼 임포트문을 실행시키면 실제 임포트가 되는 것이 아닌 테이블 생성 구문은 REM으로 주석 처리되고 index 생성 구문만 sql파일로 내려줍니다.

2. 해당 파일에서 REM으로 되어 있는 주석을 모두 풀어줍니다. ( REM이라는 단어 제거 )

3. 따옴표를 모두 제거합니다 ( “ ) 

4. ... row 라고 되어있는 건수 줄을 모두 제거합니다 ( 노가다. 비울 수 있는 테이블은 모두 비운 후 하는 것을 추천합니다. ) 

5. 테이블스페이스명을 모두 바꿀 테이블스페이스로 변경합니다. 해당 과정 진행 후 실행시키면 전체 테이블이 껍데기만 테이블스페이스가 바뀌어서 만들어 집니다. 그 후에 다시 해당 임포트문을 ignore=y를 붙여 진행합니다. ( 테이블이 미리 생성되어 있다는 오류 무시 )

C:\> imp file=경로/덤프파일.dmp userId=임포트할유저(스키마)/비밀번호 full=y log=경로/로그파일.log ignore=y 





펌프 익스포트 임포트

해당 directory에 대한 권한이 주는계졍/받는계정 둘다 존재해야 함.

SELECT * FROM all_directories;  -- 지정되어있는 전체 디렉토리 보기

GRANT READ, WRITE ON DIRECTORY 디렉토리명 TO 유저;  --해당 유저에 해당 이름의 디렉토리 권한 부여

C:\> expdp 권한이있는유저(스키마)/비밀번호 schemas=익스포트할스키마 directory=디렉토리명 dumpfile=펌프파일명.dmp logfile=로그파일명.log 

C:\> impdp 권한이있는유저(스키마)/비밀번호  directory=디렉토리명 dumpfile=펌프파일명.dmp logfile=로그파일명.log  REMAP_SCHEMA=이전스키마명:넣을스키마명
REMAP_TABLESPACE=이전테이블스페이스명:변경할테이블스페이스명




오라클 상위 버전에서 익스포트 -> 하위 버전으로 임포트 

오라클에서 11g의 클라이언트가 Export를 하면 10g에서는 이를 이용할 수 가 없다.

10g에서 Export한 것은 11g에서 Import하는데 문제가 없지만. 이럴 때는 단순 Export를 하지말고 데이터 펌프를 이용하면 하위버전에서 사용가능하도록 Export가 가능하다.

이는 10g이상에서만 사용 가능함.

방법 

위의 펌프 익스포트 뒤에 VERSION = 10.2 을 붙여 줌