메뉴 건너뛰기

조회 수 8974 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

ORA-39001: invalid argument value
ORA-39000: bad dump file specification
ORA-39142: incompatible version number 2.1 in dump file "/oracle/mikyungnet/dnshop/z_dnshop_target.dmp"

--------------------------------------------------------------------------------------------------------------------

11g에서 10g로 스키마째 밀어 넣어야 되는데
버전이 틀려서 import/export는 동작 안한다.
벌써 이거가지고 몇번을 삽질한건지.. 정리 좀 해야겠다.

검색해보니까 data pump란게 있다. 버전이 상관없댄다. 그래서 그런줄 알았다.

그래서 expdp test/test@SID schemas=TEST dumpfile=TEST.dmpdp
이렇게 덤프를 뜨고

impdp test/test schemas=TEST dumpfile=TEST.dmpdp 했다.

그랬더니 디렉토리가 없다고 에러를 뱉어 낸다.
또 뒤졌다.

기본으로 잡혀있는 디렉토리가 있는데 해당 유저에게 권한을 줘야 한다.
디렉토리를 path로 주는게 아니라 오라클 객체를 사용하나보다.
grant read, write on directory DATA_PUMP_DIR to test;

아니면 디렉토리를 하나 만들고 아래처럼
CREATE OR REPLACE DIRECTORY data_pump_dir AS '/home/oracle/admin/ora10/dpdump';
GRANT read, write ON DIRECTORY data_pump_dir TO test;

이렇게 해주고

impdp test/test schemas=TEST directory=data_pump_dir dumpfile=TEST.dmpdp 했다.

근데 또 안된다. 망할..

ORA-39142: incompatible version number 2.1 in dump file 라고 뜬다.

또 검색..

뒤져보니 덤프를 뜰때 버전을 명시해줘야 한댄다..
그러니까 같은 11g라고 하더라도 서브버전이 틀린 경우는 그냥 되는데 메이저 버전이 틀린 경우는 그러니까 이번같이 11g에서 10g로 내려가는 경우는 덤프를 뜰때 버전을 명시해줘야 한다.

expdp test/test@SID schemas=TEST dumpfile=TEST.dmpdp VERSION=10.2

이렇게 해야되는건가 보다.

원래 EXPDP할때도 directory를 지정해줘야 하지만 지정안하면 기본 디렉토리에 덤프파일이 깔린다. 기본디렉토리는.. 아 쓰기 귀찮다. 덤프 다 뜨면 경로 나온다.

추가로 import할 곳에 스키마가 다른 경우라면 impdp ~~~~ REMAP_SCHEMA=test:test1 를 추가해주고 테이블 스페이스가 다른 경우 REMAP_TABLESPACE=test:test1 로 변경할 수도 있다.

돌려보니까. expdp를 아무 옵션안주고 뜨면 그 스키마에 걸려 있던 롤까지 통째로 가져와서 impdp할때 에러가 난다. 그다지 중요한 롤이 아니었으니 일단 skip하지만 나중엔 좀 챙겨놔야할 듯.

결론. 오라클의 data pump로 하위 호환성을 가지게 덤프를 뜨려면(스키마를 다른이름의 스키마로 다른 테이블 스페이스에)

expdp test/test@SID schemas=TEST dumpfile=TEST.dmpdp VERSION=10.2 

요렇게 떠서

impdp test/test schemas=TEST directory=data_pump_dir dumpfile=TEST.dmpdp REMAP_SCHEMA=test:test1 REMAP_TABLESPACE=test:test1 

요렇게 밀어 넣는다.

이것 외에 db를 통채로 이관하거나 특정테이블만 골라서 덤프를 뜰 수도 있으며 여러가지(스키마, 테이블스페이스, datafile 등) 리매핑 작업이 가능하다. 또한 덤프를 뜰때 타겟 버전만 명시해주면 타버전 호환도 가능하다.(물론 10g부터 나온거니까 그 이후로만)


List of Articles
번호 제목 날짜 조회 수
21 TOAD 에서 SQL Builder 을 사용하여 DML 문서 작성을 자동화 해본다 file 2016.08.30 7508
20 Toad 사용시 캐릭터 인코더 UTF-8 로 변경하기 file 2016.08.30 10090
19 Oracle 에서 NVL, NVL2 함수 사용하는 예제 2016.08.30 8336
18 rownum 으로 범위지정을 해주고 싶을 때 2016.08.30 8624
17 Oracle 시퀀스 생성, 추가, 삭제 file 2016.08.30 8152
16 TOAD 에서 Edit 를 통해 sql문을 작성할때 참고해야할 View file 2016.08.30 7468
15 UNION ALL 과 ORDER BY 섞어서 쓰기 2016.08.30 9899
14 오라클(Oracle) 대용량 데이터 토드(Toad)를 이용해서 넣기 file 2016.08.30 8032
13 간단한 쿼리로 일련번호 쉽게 넣기 - ROWNUM 사용 file 2016.08.29 9472
12 Oracle에서 ORA-28000: 계정이 잠금되었습니다. - 해결 방법 file 2016.08.29 7323
11 WHERE절에서 Null 값 비교하기 file 2016.08.29 9354
10 Oracle에서 Foreign Key가 걸려있는 컬럼값 업데이트(update) 하기 file 2016.08.29 9177
9 Oracle에서 사용자가 생성한 모든 Table, View를 삭제하는 쿼리 만들기 file 2016.08.29 7468
8 Oracle에서 세자리 콤마 찍기 file 2016.08.29 11720
7 Merge into를 이용해서 insert나 update를 자동으로 실행하자. 2016.08.29 7574
6 조건절에 WHERE 1=1, WHERE 1=0 사용하여 쿼리 간편하게 사용하기 file 2016.08.29 9621
5 Oracle에서 중복 조인을 피하기 위한 Update 방법 (MERGE 사용) 2016.08.29 8145
4 단일행을 다중 row로 분리, 다중 row 결과를 단일행으로 연결하는 방법 2016.08.29 9403
3 WITH문으로 쿼리를 임시테이블이나 View처럼 사용하자. 2016.08.29 8379
2 Oracle 저장 프로시저 샘플 2016.08.29 7140
Board Pagination Prev 1 2 3 4 5 6 7 Next
/ 7

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved