메뉴 건너뛰기

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

단축키

Prev이전 문서

Next다음 문서

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

단축키

Prev이전 문서

Next다음 문서

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

모 거래처에서 의뢰를 받아서 Batch 처리 프로그램을 개발하던 중...

테이블을 생성하고 데이터를 조작 해야 할 일이 있어서 실 서버의 특정 테이블을 개발서버로 옮겨서 작업 하기로 했다.

 

실무 담당자의 양해를 구하고 개발이 끝나면 삭제하는 조건으로 실서버에서 원하는 테이블만 추출해서 회사내의 개발 서버로 옮겨서 imp 했더니 아래와 같은 에러가 발생 했다. 

IMP-00010: 엑스포트 파일이 유효하지 않고, 헤더가 검증에 실패했습니다
IMP-00000: 임포트가 실패로 끝났습니다


 

구글링 해보니 dump 받은 파일을 FTP로 전송 할 때 Binary 모드가 아니고 Ascii 모드로 전송하면 저런 에러가 발생 한다는 블로그가 검색 되었지만... 나의 경우는 이문제가 아니고 오라클 버전의 차이때문에 발생하는 문제 였다.

 

운영서버의 오라클은 11g, 회사 내부의 개발 서버가 Windows 2008 Server라서 11g 64bit 설치중 에러가 발생해서 10g로 설치 했었다.

즉 11g에서 exp 명령으로 받은 dump 파일을 10g에서 imp명령으로 올릴 경우 저런 에러가 발생 하는 것 같다. (반대의 경우는 괜찮 겠지...)

 

exp또는 imp 명령의 인자로 버전을 지정 할 수도 있다고 하던데... 귀찮아서 패스

개발 서버의 exp 명령으로 실서버에 접속하여 덤프 받아서 개발서버에 import 하기로 했다.

 

앞서 했던 방법이랑 동일 한 방법 같지만 에러가 발생한 방법은 11g 오라클 클라이언트로 11g에 접속 해서 DB를 덤프 받아서 10g서버의 오라클 클라이언트로 10g서버에 접속해서 import 하는 방법이라면 후자는 10g의 오라클 클라이언트를 이용하여 11g 서버에 접속해서 export 받고 10g의 오라클 클라이언트를 이용하여 10g 서버에 import 하는 것으로 말장난 같지만 확연히 다른 방법이다.

 

 

1. TNS정보 추가

 

10g의 오라클 클라이언트에서 11g를 접속 할 수 있도록 tnsnames.ora 파일에 11g의 TNS정보 추가

 

 

 

2. sqlplus로 접속 테스트

 

sqlplus userid=USERID/PASSWORD@TNSNAME

 

 

 

3. 10g에서 export

 

exp userid=11g_USERID/11g_ASSWORD@11g_TNSNAME file='DUMP_FILE_NAME.dmp' tables=(11g_TABLE1_NAME,11g_TABLE2_NAME)

어찌 하다보니 import 화면을 캡쳐하지 못했다.

 

 

 

4. 10g 에서 import

 

imp userid=10g_USERID/10g_PASSWORD file='DUMP_FILE_NAME.dmp' tables=10g_TABLE_NAME commit=y ignore=y

화면에 보이는 IMP-00017, IMP-00003, ORA-01917등의 오류는 11g에서 받아온 테이블에 CONSTRAINTS, USER 등이 10g에는 존재하지 않아서 발생한 오류로 나의경우 무시해도 상관 없는 것들 이었다.

 

 

5. TOAD로 10g에 접속 해서 확인하니 모두 잘 옮겨짐 

 

 

 

 

6. 참고

 

10g에 import 하기전에 11g에서 옮길 테이블의 동일한 빈테이블을 10g에 생성한 후 작업 했다. 예전의 기억으로 테이블이 없는 경우 에러가 발생했던 기억이...

 

toad 같은 툴에서 테이블 스크립트를 복사해서 그대로 생성해 주면 끝.


List of Articles
번호 제목 날짜 조회 수
61 쿼리 파싱 시간 측정 - query parsing time 2016.12.08 7704
60 Oracle Batch Processing 2016.12.08 6822
59 rownum 사용 - 최근글 몇개만 가져오기 2016.12.08 9984
58 오라클 25가지 SQL 작성법 2016.12.08 7706
57 CLOB TEXT 데이타를 저장하고, 조회하는 예제 2016.12.08 13061
56 오라클에서 레코드 값이 없을때 2016.12.08 13469
55 oracle 에서 Index를 이용해서 즉 힌트와 rownum을 이용하여 게시판 작성하기 2016.12.08 7023
54 데이터의 암호화 및 복호화 file 2016.12.08 13237
53 ORA-39142 덤프 버전이 틀려서 넣지 못할 때 2016.12.08 8967
52 Oracle SQL Developer 도구 활용하기 - Part1 file 2016.12.08 11740
51 Oracle SQL Developer 도구 활용하기 - Part2 file 2016.12.08 11317
50 sqlplus에서 Ampersand나 특수 문자를 갖는 데이타를 insert하는 방법 sqlplus 데이터 insert 입력값 요구 2016.12.08 8910
49 Oracle DBMS_CRYPTO 사용하기 - 암복호화 하기 file 2016.12.08 11605
48 CentOS 6.5 에 Oracle Database 11g Release 2 설치하기 file 2016.12.08 12409
47 오라클 테이블 생성 스크립트 DDL 추출 - 깔끔하게 Table 전부 추출(Export)하기 file 2016.12.08 12514
46 오라클11g DB 생성 file 2016.12.08 9727
45 오라클 DB 생성 후 설정 Listener.ora & Tnsnames.ora (윈도우) file 2016.12.08 23306
44 IMP-00010: 엑스포트 파일이 유효하지 않고, 헤더가 검증에 실패했습니다 file 2016.12.08 8807
43 ORA-01652 128(으)로 테이블 공간 ***에서 임시 세그먼트를 확장할 수 없습니다. file 2016.12.08 9248
42 오라클 계정 lock 해제 2016.12.08 8444
Board Pagination Prev 1 2 3 4 5 6 7 Next
/ 7

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

© k2s0o1d4e0s2i1g5n. All Rights Reserved