sql >> Database teknologi >  >> RDS >> Oracle

Hvordan bruger man Oracle-datapumpe-eksportværktøjet til at oprette en dumpfil på den lokale maskine?

Hvis du bruger Data Pump, er der ingen direkte måde at gemme en dumpfil på din lokale maskine. Det er den måde, Data Pump designet på.

Der er dog en af ​​mulige måder at opnå det, du ønsker. En løsning har to trin:

  1. Kør expdp som sædvanlig, hvilket opretter en dump-fil på serveren
  2. Brug ocp værktøj til at overføre en dumpfil fra en databaseserver til din lokale maskine (og tilbage, hvis du vil).

En ocp tool står for "Oracle Copy" og skrevet præcist med det formål at kopiere dumpfiler frem og tilbage fra/til en databaseserver. Den er tilgængelig her:https:// github.com/maxsatula/ocp/releases/download/v0.1/ocp-0.1.tar.gz Det er en kildedistribution, så når den er downloadet og pakket ud, skal du køre ./configure && make

(Forhåbentlig har du ikke Windows på en klientside, for jeg har aldrig prøvet at kompilere det der)

Det er et simpelt kommandolinjeværktøj med en simpel syntaks. For eksempel vil denne kommando trække en fil til dig:

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

Værktøjet bruger en databaseforbindelse og et minimumssæt af databaserettigheder.

Opdatering:

Endelig var jeg i stand til at justere kildekoden og bygge ocp værktøj til Windows 32-bit:

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

Kompileret/testet med 32-bit Instant Client 11.2.0.4 tilgængelig her:http://www.oracle.com/technetwork/topics/winsoft-085727.html

instantclient-basiclite-nt-11.2.0.4.0.zip (20.258.449 bytes)

Jeg tror også, det vil fungere med en fuld Oracle Client-installation (bare pas på bits, bør være 32), men jeg tjekkede ikke mig selv.

Desværre er Windows build af ocp har ikke en fancy fremdriftsmåler under filoverførsel. Det stykke kode havde for meget *nix-specifikke ting, så jeg var nødt til at skære det af.

Da det også bruger popt- og zlib-biblioteker, som er kompileret som en del af GnuWin-projektet og kun tilgængelige i 32-bit, ocp til Windows er kun 32-bit. Forhåbentlig er det ikke afgørende for dig, at du ikke har en 64-bit version.

Opdatering 2:

Advarsel! Sørg for altid at bruge DEDIKERET serverforbindelse, når du downloader filer fra serveren, ellers (for SHARED server) vil den downloadede kopi af filen blive beskadiget uden fejlmeddelelser!



  1. Hvordan skriver jeg en lagret procedure, som tilføjer en kolonne til en ref-markør fra en anden lagret procedure?

  2. Sådan flettes mine forespørgsler til en enkelt forespørgsel (eller kan være en lagret proc..)

  3. mySQL-forespørgsel returnerer ressource-id #5

  4. SQLSTATE[23000]:Fejlhåndtering af overtrædelse af integritetsbegrænsning