programing

Oracle 데이터 펌프 내보내기 유틸리티를 사용하여 로컬 시스템에서 덤프 파일을 만드는 방법은 무엇입니까?

muds 2023. 9. 23. 23:08
반응형

Oracle 데이터 펌프 내보내기 유틸리티를 사용하여 로컬 시스템에서 덤프 파일을 만드는 방법은 무엇입니까?

Oracle 데이터 펌프 내보내기 유틸리티에는 DB 서버에 존재하는 매개 변수 DIRECTORY (DBA_DIRECTORIES)가 필요합니다.이 디렉토리를 로컬 컴퓨터에 매핑할 수 있습니까? 아니면 오라클 데이터베이스에서 로컬로 여러 테이블을 내보낼 수 있는 다른 방법이 있습니까?

Data Pump를 사용하는 경우 로컬 컴퓨터에 덤프 파일을 저장할 직접적인 방법이 없습니다.그것이 바로 Data Pump가 설계한 방식입니다.

하지만, 여러분이 원하는 것을 성취할 수 있는 방법 중 하나가 있습니다.해결 방법에는 두 가지 단계가 있습니다.

  1. 실행.expdp다에 합니다.
  2. 사용하다ocp데이터베이스 서버에서 로컬 컴퓨터로 덤프 파일을 전송하는 도구(그리고 원하는 경우 다시)입니다.

ocptool은 "Oracle Copy"의 약자로 덤프 파일을 데이터베이스 서버에 앞뒤로 복사하기 위해 작성되었습니다.여기에서 이용 가능합니다: https://github.com/maxsatula/ocp/releases/download/v0.1/ocp-0.1.tar.gz 소스 배포판이므로 다운로드 후 압축을 풀면 실행합니다../configure && make

(클라이언트 측에 Windows가 없기를 바랍니다. 컴파일을 시도한 적이 없기 때문입니다.)

그것은 간단한 구문을 가진 간단한 명령줄 도구입니다.예를 들어, 이 명령을 사용하면 다음과 같이 파일을 꺼낼 수 있습니다.

ocp <connection_string> DATA_PUMP_DIR:remote_file_name.dmp local_file_name.dmp

이 도구는 데이터베이스 연결과 최소 데이터베이스 권한 집합을 사용합니다.

업데이트:

하고 를 할 수 .ocpWindows 32비트용 도구:

https://github.com/maxsatula/ocp/releases/download/v0.1/ocp-0.1-win32.zip

32비트 Instant Client 11.2.0.4를 사용하여 컴파일/테스트되었습니다. 여기: http://www.oracle.com/technetwork/topics/winsoft-085727.html

인스턴트 클라이언트-basiclite-nt-11.2.0.4.0.zip(20,258,449바이트)

전체 Oracle Client 설치에서도 작동할 것으로 생각하지만(비트만 확인하고 32개는 되어야 함), 스스로 확인하지 않았습니다.

ocp파일 전송 중에 화려한 진행률 미터가 없습니다.그 코드 조각은 너무 많은 *nix 특정한 것들을 가지고 있어서 나는 그것을 잘라내야 했습니다.

및하므로 GnuWin 된 popt zlib 에 32 를 합니다.ocpWindows의 경우에도 32비트입니다.64비트 버전이 없는 것이 미션 크리티컬하지 않기를 바랍니다.

업데이트 2:

경고!서버에서 파일을 다운로드할 때는 항상 전용 서버 연결을 사용해야 합니다. 그렇지 않으면 다운로드한 파일 복사본이 오류 메시지 없이 손상됩니다.

약간의 해킹만 있으면 데이터 펌프를 통해 원하는 작업을 수행할 수 있지만 로컬 컴퓨터에 데이터베이스가 있어야 합니다.

로컬 시스템에서 원격 시스템에 대한 데이터베이스 링크를 생성해야 합니다.

그런 다음 data pump 옵션에서 db link owner로 로컬 데이터베이스에 로그인하고 'network_link' 옵션을 생성한 데이터베이스 링크 이름으로 지정합니다.이렇게 하면 원격 데이터베이스에서 로컬 데이터베이스를 통해 내보내고 로컬 인스턴스에 파일을 만듭니다.예를 들어,

expdp directory=<local_dir_object> network_link=<dblinkname on local instance> dumpfile=.. logfile=.. tables/schema=...

아니요, 데이터 펌프는 그렇게 생각하지만 Oracle은 db가 있는 서버와 동일한 서버를 사용하여 처리 속도를 높일 수 있기 때문에 이점이 있습니다.다른 향상된 기능들도 있지만, 저는 여전히 이것이 데이터 펌프에 큰 단점이라고 생각합니다.이를 위해 기존 exp/imp 또는 타사 툴을 사용합니다.

"데이터를 데이터베이스 밖에 보관하려는 이유는 무엇입니까? 데이터의 가장 안전한 장소입니다.백업, 복원 및 복구가 이루어지는 곳입니다.

데이터베이스 A에서 데이터베이스 B로 데이터를 이동하려는 경우 두 데이터베이스 모두 디렉토리 객체를 통해 데이터 덤프 파일에 액세스하고 데이터 펌프를 사용할 수 있는 공통 파일 영역에 액세스할 수 있는지 확인합니다.

그래도 클라이언트 측에 데이터를 내보내려면 이전 툴 확장imp를 사용할 수 있습니다.

언급URL : https://stackoverflow.com/questions/8394243/how-to-use-oracle-data-pump-export-utility-to-create-dump-file-in-local-machine

반응형