11g 버전에서 10g 버전으로 데이터 이관하기 1 5 2,881

by 말라카스 [Oracle 백업/복구] exp imp [2015.08.06 10:01:34]


A서버 : 오라클 11g가 설치되어져 있습니다.

 

B서버 : 오라클 10g가 설치되어져 있습니다.

 

A서버에서 B서버 오라클로 접근이 가능합니다.

 

위 상황에서 A서버의 오라클 데이터를 B서버 오라클로 이관해야 하는 상황입니다.

 

일반적인 방법으로 exp, imp 진행하니 오류가 우르르 쏟아지면서 데이터가 정확히 안들어가는데요..

 

어떠한 방법으로 exp, imp를 진행해야 할 지 방법좀 알려주세요.

 

그리고 A서버에서 B서버 오라클로 접속이 가능하다보니

 

exp, imp 하지않고 직접 접속해서 데이터를 복사(?)하는 방법이 있다고 들었는데요..

 

그 방법도 같이 알려주시면 좋겠습니다.

 

왕초보에게는 너무나 어렵고 부담스러운 작업이네요..

 

부탁드립니다.

by 겸댕2후니 [2015.08.06 10:09:36]

A서버와 B서버간에 DBLINK가 구성되어있다는 건가요?

구성되어 있고, 데이터가 많이 크지 않다면 DBLINK를 통해 이관하시면됩니다.

B서버 -> A서버 DBLINK 구성되어있는경우

create table table_name as select * from table_name@dblink_name;


by 창조의날개 [2015.08.06 10:32:28]

 

1. PUMP를 이용합니다.

  DUMP는 버젼이 다르면 에러가 나지만.. PUMP는 상위버전에서 하위 버전으로도 가능합니다.

  계정명과 테이블 스페이스등 서로 이름이 다르다면 맞춰 주면서 작업을 해야 하는등의 약간의 조정은 필요합니다.

  좀더 자세한 내용은 직접 검색을 통해 알아 보시기 바랍니다.

 

2. A -> B 서버로 DBLINK가 있다면

  먼저 B 서버에 A서버와 같은 모든 테이블 및 시퀀스 함수 등등을 만들어 줍니다.

  DBLINK를 통해 A서버의 데이터를 B 서버로 모두 옮겨 줍니다.

  복사하는 쿼리를 만드는 쿼리 샘플 입니다.


SELECT 'INSERT INTO '||TNAME||'@DBLINK명 SELECT * FROM '||TNAME||';'
FROM TAB
;

  먼저 B 서버에서 위 쿼리를 실행하여 쿼리를 생성합니다.

  A 서버에서 만들어진 쿼리를 실행합니다.

 

위 2번의 방법은 당연히 데이터가 많으면 오래 걸립니다.

속도는 1번 방법이 빠를것 입니다.

 


by 임핑구 [2015.08.06 10:43:48]

어 ? 이거 제가 해봤던거랑 똑같은 내용 같네요~

http://blog.naver.com/limpingu/220257632892


by 겸댕2후니 [2015.08.06 15:34:24]

블로그 방문해보았습니다.

이런방법이 있었군요! 좋은지식얻고갑니다.


by hsung [2015.08.07 10:17:12]

EXP/IMP 로 이관하실경우 스키마 단위로 하시면서 object invalid 체크하셔야하구요

PUBLIC SYNONYM 하고 PUBLIC DBLINK 는 꼭 챙기셔야 합니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입