Jeśli używasz Data Pump, nie ma bezpośredniego sposobu na przechowywanie pliku zrzutu na komputerze lokalnym. W ten sposób zaprojektowano Data Pump.
Istnieje jednak jeden z możliwych sposobów osiągnięcia tego, czego pragniesz. Obejście składa się z dwóch kroków:
- Uruchom
expdp
jak zwykle, który tworzy plik zrzutu na serwerze - Użyj
ocp
narzędzie do przesyłania pliku zrzutu z serwera bazy danych na komputer lokalny (i z powrotem, jeśli chcesz).
ocp
Narzędzie to oznacza „Oracle Copy” i zostało napisane dokładnie w celu kopiowania plików zrzutu tam iz powrotem z/do serwera bazy danych. Jest dostępny tutaj:https:// github.com/maxsatula/ocp/releases/download/v0.1/ocp-0.1.tar.gz
To jest dystrybucja źródłowa, więc po pobraniu i rozpakowaniu uruchom ./configure && make
(Mam nadzieję, że nie masz systemu Windows po stronie klienta, ponieważ nigdy nie próbowałem go tam skompilować)
To proste narzędzie wiersza poleceń o prostej składni. Na przykład to polecenie pobierze dla Ciebie plik:
ocp <connection_string> DATA_PUMP_DIR:remote_file_name.dmp local_file_name.dmp
Narzędzie wykorzystuje połączenie z bazą danych i minimalny zestaw uprawnień do bazy danych.
Aktualizacja:
W końcu udało mi się dostosować kod źródłowy i zbudować ocp
narzędzie dla 32-bitowego systemu Windows:
https://github.com/maxsatula /ocp/releases/download/v0.1/ocp-0.1-win32.zip
Skompilowane/testowane z 32-bitowym Instant Client 11.2.0.4 dostępnym tutaj:http://www.oracle.com/technetwork/topics/winsoft-085727.html
instantclient-basiclite-nt-11.2.0.4.0.zip (20 258 449 bajtów)
Wierzę, że będzie działać również z pełną instalacją klienta Oracle (po prostu uważaj na bity, powinno być 32), jednak sam się nie sprawdzałem.
Niestety, Windows kompilacja ocp
nie ma fantazyjnego miernika postępu podczas przesyłania plików. Ten fragment kodu zawierał zbyt wiele elementów specyficznych dla *nixa, więc musiałem go odciąć.
Ponadto, ponieważ używa bibliotek popt i zlib, które są skompilowane jako część projektu GnuWin i dostępne tylko w wersji 32-bitowej, ocp
dla Windows jest tylko 32-bitowy. Mamy nadzieję, że nie posiadanie wersji 64-bitowej nie jest dla Ciebie kluczowe.
Aktualizacja 2:
Ostrzeżenie! Upewnij się, że zawsze używasz DEDYKOWANEGO połączenia z serwerem podczas pobierania plików z serwera, w przeciwnym razie (w przypadku serwera SHARED) pobrana kopia pliku zostanie uszkodzona bez komunikatów o błędach!