운영DB과 개발DB 동기화하기 위한 EXPORT/IMPORT 작업에 대한 질문입니다. 0 1 3,711

by 라뮤 [Oracle Admin] 데이터이관 EXPDP/IMPDP EXPORT/IMPORT ORA-39006 ORA-39065 ORA-04063 ORA-06508 ORA-39097 에러 [2018.08.31 09:58:28]


운영DB와 개발DB 오브젝트 동기화 작업을 하려는데 개발DB도 운영DB의 사용자계정과 테이블스페이스 동일하게 사용하고 있습니다. 둘다 오라클 버전과 캐릭터셋도 같습니다.

먼저, 운영DB 데이터펌프를 이용해서 추출작업을 계정별로 완료해서

IMPDP 를 이용하여 IMPORT작업을 하려니 다음과 같은 에러가 나타났습니다.

With the Partitioning, OLAP, Data Mining and Real Application Testing options

ORA-39006: internal error

ORA-39065: unexpected master process exception in DISPATCH

ORA-04063: package body "SYS.DBMS_METADATA_UTIL" has errors

ORA-06508: PL/SQL: could not find program unit being called: "SYS.DBMS_METADATA_UTIL"

ORA-39097: Data Pump job encountered unexpected error -6508

에러발생내용입니다.

 

혹시 이 에러를 해결하려고 하는데 잘안되서 도움청하려고 합니다.

그리고 몇가지 문의 드리고자 합니다.

1. IMPORT하려는 개발DB의 추출한 사용자 계정을 지웠는데 기존 테이블스페이스도 다시 지우고 재성성해야하는지요? 물론 데이터파일도 수동으로 지워야하는지요?

2. 운영DB와 개발 DB의 데이터화일 경로가 같아야 하는지요?

3. 개발 DB의 시스템 계정과 그에 따른 테이블스페이스를 삭제해야하는지요?

4. 운영DB와 개발DB 동기화하는 방법이 이 방법말고도 다른 추천할 방법이 있는지요? 해당 함수 패키지,트리거 권한 등 모든 오브젝트정보를 다 가지고 가려고 합니다.

전문가들의 고귀한 의견 구합니다.

by 와일드키드 [2018.09.11 17:02:37]

정답은 없습니다. 늦었지만 답을 얻으시지 못한 것 같아 조금이나마 도움이 되시고자 적습니다.

1. IMPORT하려는 개발DB의 추출한 사용자 계정을 지웠는데 기존 테이블스페이스도 다시 지우고 재성성해야하는지요? 물론 데이터파일도 수동으로 지워야하는지요?

=> 사용자 계정을 지우면 모든 data가 삭제됩니다. 별도로 작업하실 필요 없습니다.  

2. 운영DB와 개발 DB의 데이터화일 경로가 같아야 하는지요?

=>위의 1번 질의에 같은 내용입니다. 즉, data파일들의 위치는 상관 없습니다. 단 tablespace이름은 같은 이름으로 만들어 놓는게 편합니다.

그렇지 않으면 impdp때 remap_tablespace로 변경되는 tablespace이름을 일이 지정해주는 작업을 해야 합니다.

3. 개발 DB의 시스템 계정과 그에 따른 테이블스페이스를 삭제해야하는지요?

=> 운영 DB를 사용하실때 application에서 사용하는 계정이 있을테니 그 계정만 drop cascade옵션으로 삭제 후 impdp전에 계정만 생성해주시면 됩니다.

물론 운영과 똑같이 생성해주셔야 합니다. 권한등.... 시스템 계정등은 아무런 상관 없습니다.

4. 운영DB와 개발DB 동기화하는 방법이 이 방법말고도 다른 추천할 방법이 있는지요? 해당 함수 패키지,트리거 권한 등 모든 오브젝트정보를 다 가지고 가려고 합니다.

=>application에서 사용하는 계정을 expdp-> impdp하셨으면 그 스키마가 사용하는 모든 오브젝트 정보들을 다 가져갑니다. impdp만 잘 끝나면 개발 DB사용에 아무 문제 없습니다.

그리고 다른 방법이라면 좀 몇가지 있게지요? TTS카피,  Online HOT백업받은 것을 개발서버에 복구, rman백업본을 개발로 복구, 등을 사용하는데요 용량이 많으면 rman백업 복구방법을 많이 씁니다.

용량이 적으면 당연 expdp->impdp를 사용하고요

 

저도 전문가가 아닙니다만 경험을 공유하고자 몇자 적습니다.

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