메뉴 건너뛰기

조회 수 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
번호 제목 날짜 조회 수
81 UNION ALL 과 ORDER BY 섞어서 쓰기 2016.08.30 9898
80 데이터베이스 백업하기 ( import : 가져오기 , export : 내보내기 ) file 2016.12.08 9877
79 오라클 백업 및 복구(Export, Import) file 2016.12.08 9756
78 오라클11g DB 생성 file 2016.12.08 9727
77 oracle db 백업(full) 2016.09.11 9662
76 조건절에 WHERE 1=1, WHERE 1=0 사용하여 쿼리 간편하게 사용하기 file 2016.08.29 9612
» 다른 버전의 오라클 import, export 하기 file 2016.09.12 9475
74 간단한 쿼리로 일련번호 쉽게 넣기 - ROWNUM 사용 file 2016.08.29 9472
73 PL/SQL에서 자바(Java) 클래스(Class), 함수 실행 방법 file 2016.12.08 9383
72 단일행을 다중 row로 분리, 다중 row 결과를 단일행으로 연결하는 방법 2016.08.29 9382
71 WHERE절에서 Null 값 비교하기 file 2016.08.29 9354
70 ORA-01652 128(으)로 테이블 공간 ***에서 임시 세그먼트를 확장할 수 없습니다. file 2016.12.08 9254
69 Oracle에서 Foreign Key가 걸려있는 컬럼값 업데이트(update) 하기 file 2016.08.29 9168
68 [Oracle|오라클] 한글 초성 검색 함수 2016.12.08 9087
67 oracle 특수문자 입력시 Substitution Variable 변수치환을 없애는 방법 file 2016.08.30 9024
66 ORA-39142 덤프 버전이 틀려서 넣지 못할 때 2016.12.08 8967
65 Oracle 에서 테이블과 리소스의 존재 여부를 알아보는 쿼리 file 2016.08.30 8949
64 오라클 12c (Oracle) 에서 테스트를 위해 샘플 스키마 설치하기 file 2016.08.30 8929
63 시퀀스 초기화 프로시저 2016.09.12 8924
62 sqlplus에서 Ampersand나 특수 문자를 갖는 데이타를 insert하는 방법 sqlplus 데이터 insert 입력값 요구 2016.12.08 8911
Board Pagination Prev 1 2 3 4 5 6 7 Next
/ 7

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

© k2s0o1d4e0s2i1g5n. All Rights Reserved