[신탁] 오라클 데이터베이스 내보내기 (데이터의 .sql 파일 생성)
소스 데이터베이스에서 데이터를 내보내고 새 데이터베이스로 가져올 수 있습니다.
이 명령의 사용법을 보여주는 좋은 링크는 여기 에서 찾을 수 있습니다.
전체 데이터베이스를 내보내는 경우 다음과 같이 요약됩니다.
%> exp USERID=<username>/<password> FULL=Y FILE=dbExport.dmp
%> imp USERID=<username>/<password> FILE=dbExport.dmp FULL=Y
두 명령 모두 필요에 맞게 조정할 수있는 다양한 옵션이 있습니다. 예를 들어 TABLES 매개 변수를 통해 특정 테이블 만 가져 오도록 import 명령을 제한하거나 TOUSER, FROMUSER 매개 변수를 사용하여 사용자간에 데이터베이스 개체를 이동할 수 있습니다. 제약 조건, 색인 등을 내보낼 지 가져올 지 여부에 대한 옵션도 있습니다. 다음 중 하나를 실행하여 두 명령에 대한 모든 유효한 매개 변수를 찾을 수 있습니다.
%> exp help=Y
%> imp help=Y
-------------------사용중인 데이터베이스 버전을 말하지 않습니다. 새로운 기능은 매 릴리스마다 Oracle에 추가되기 때문에 이것은 중요한 정보입니다. 예를 들어, 10g에서 Oracle은 이전 IMP 및 EXP를 대체하는 새로운 유틸리티 인 DataPump를 도입했습니다 (이러한 유틸리티는 여전히 설치에 포함되어 있으며 사용되지 않음).
DataPump의 멋진 점 중 하나는 OS 명령 줄뿐 아니라 데이터베이스 내부에서도 실행할 수 있다는 것입니다. 최근 에이 SO 스레드 에서 PL / SQL의 DataPump를 사용하는 예제를 게시했습니다 . `오라클은 포괄적 인 문서를 제공 합니다 .
편집하다
구식 IMP / EXP 나 DataPump는 SQL 파일 (*)을 생성하지 않습니다. 그것이 당신이 정말로 원하는 것이라면 (스키마와 데이터를 어떻게 든 이식하는 것과는 반대로 ) 일이 조금 더 까다로워집니다. Oracle에는 DDL 스크립트를 생성하는 데 사용할 수있는 DBMS_METADATA 패키지가 있지만 데이터를 처리하지는 않습니다. 실제 INSERT 문을 생성하려면 IDE를 사용하는 것이 가장 좋습니다. Quest의 TOAD는 Oracle의 (무료) SQL Developer 도구 처럼이를 수행합니다 . 두 IDE 모두 DDL 스크립트도 생성합니다.
(*) Datapump 가져 오기는 SQLFILE=
매개 변수를 사용하여 이전 Datapump 내보내기 파일에서 DDL 문을 파생 할 수 있습니다 . 그러나 그것은 데이터가 아닌 구조 일뿐입니다.
출처
https://stackoverflow.com/questions/2006164