메뉴 건너뛰기

조회 수 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
번호 제목 날짜 조회 수
121 CentOS 6.5 에 Oracle Database 11g Release 2 설치하기 file 2016.12.08 12409
120 CentOS 6.5 에 Oracle Database 11g Release 2 설치하기 file 2016.12.08 10855
119 CLOB TEXT 데이타를 저장하고, 조회하는 예제 2016.12.08 13069
118 Create SYNONYM 2016.09.12 7412
117 cron을 이용한 Oracle 백업 2016.09.12 8045
116 Database link, Synonym How to 2016.09.12 7500
115 DB Link How-To 2016.09.12 7015
114 IMP-00010: 엑스포트 파일이 유효하지 않고, 헤더가 검증에 실패했습니다 file 2016.12.08 8812
113 INSTR 문자열의 뒤(마지막)에서 부터 문자 찾기 (right to left, last) file 2016.12.08 14893
112 linux oracle 서비스 시작 및 확인 ( 간단 ) 2016.09.11 12296
111 linux 오라클 리스너 설정(오라클 원격접속) 2016.09.11 25399
110 Merge into를 이용해서 insert나 update를 자동으로 실행하자. 2016.08.29 7572
109 ORA-01652 128(으)로 테이블 공간 ***에서 임시 세그먼트를 확장할 수 없습니다. file 2016.12.08 9257
108 ORA-28001: the password has expired - 추천 실적용 실전 2016.12.08 7079
107 ORA-39142 덤프 버전이 틀려서 넣지 못할 때 2016.12.08 8973
106 oracle 10g - log, trc 관리 정책 스크립트 2016.09.11 10098
105 Oracle 11g Client Install 및 외부 클라이언트 도구의 사용 file 2016.12.08 70722
104 Oracle 11g Database에 외부 접속 허용하도록 설정하기 file 2016.12.08 24907
103 Oracle Batch Processing 2016.12.08 6829
102 oracle db 백업(full) 2016.09.11 9663
Board Pagination Prev 1 2 3 4 5 6 7 Next
/ 7

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

© k2s0o1d4e0s2i1g5n. All Rights Reserved