
AWS에서 2개의 EC2 인스턴스를 생성했습니다.
하나는 DB 서버 역할을 하고 다른 하나는 클라이언트 역할을 합니다.
Oracle 12c DB 인스턴스는 DB 서버에 설치되고 Oracle 12c 인스턴트 클라이언트는 클라이언트 서버에 설치됩니다.
스키마를 생성하고 여기에 테이블과 데이터를 추가한 다음 DB 덤프와 로그를 내보냈습니다.
Oracle 클라이언트 서버에서 sys 사용자를 통해 Oracle 서버에 연결할 수 있습니다.
내보낸 DB 덤프(expdp 명령 사용)와 로그를 클라이언트 서버로 전송했습니다.
impdp 명령을 사용하여 클라이언트 서버에서 내보낸 DB 덤프를 가져오려고 합니다.
create directory dumpdir as '/home/oracle/exportDB';
impdp smithj/pwd4smithj@newdevdb schemas=smithj directory=dumpdir dumpfile=smithj.dmp logfile=expdpsmithj.log
하지만 로컬 서버(클라이언트 서버) 경로를 디렉터리로 언급하는 방법을 알 수 없습니다.
가상 디렉터리를 추가하려고 하면 경로가 존재하지 않는다는 메시지가 나타납니다.
이 경로 /home/oracle/exportDB는 클라이언트 서버에 있습니다.
선택의 여지가 없으므로 제안해 주실 수 있나요?
추신: DB 서버에 공간이 적고 DB 덤프 파일이 크기 때문에 DB 서버로 보낼 수 없는 시나리오에서 POC 목적으로 이 작업을 수행하고 있습니다. 그리고 질문에 반대표를 던지지 마십시오. 나는 많은 포럼을 검색했지만 이것이 참조된 곳은 없습니다.
답변1
는 dumpdir
항상 데이터베이스(서버) 관점에서 생성됩니다. 명령 impdp
에서 이 디렉터리를 사용합니다. 그만큼최상의방법은 클라이언트의 대상 디렉토리에 대한 링크를 생성하거나 공유 또는 원하는 것을 마운트하는 것입니다. 그런 다음 CREATE OR REPLACE DIRECTORY dumpdir AS '/mount/dump_directory_on_client/';
또는 CREATE OR REPLACE DIRECTORY dumpdir AS '\\client\dumpdir';
(예: Windows의 경우) 와 같은 것을 사용하여 Oracle에서 디렉터리를 만들고 가져오기를 다시 시작합니다.