Oracle Datapump

Nelle ultime versioni di Oracle (dalla 10g) i tool di export e import (imp e exp che Dio li benedica) fanno spazio a due nuovi tools exdp (export Data Pump)  e impdp (import Data Pump).
La principale differenza architetturale di Data Pump rispetto alle utility exp/imp è che expdp/impdp vengono sempre eseguite sul DB server e non su un client. Quindi i file generati saranno sempre sul server dove e’ attivo un database Oracle. Questa differenza architetturale permette di avere un aumento significativo delle performance degli export, pertanto vi consiglio di usarli 🙂

A livello di sintassi non ci sono grosse differenze ma è necessario indicare ad Oracle dove fare l’export del DUMP.

Vediamo i passi da fare per portare a termine con successo un expdp.

  1. Creare una DIRECTORY su oracle
  2. Dare i grant di export
  3. Lanciare l’expdp 🙂

Per creare una DIRECTORY è sufficiente aprire una sessione SQLPLUS e scrivere:

CREATE OR REPLACE DIRECTORY nome_logico AS ‘percorso’;
dove nome_logico è il nome che verrà utilizzato durante l’expdp mentre il percorso è la directory fisica presente sul server (nel caso di server Linux ricordarsi di utilizzare la sintassi Linux)
expdp1

Ora è necessario dare i grant sulla directory in modo che Oracle possa scrivere sul percorso sempre utilizzando SQLPLUS:

GRANT READ,WRITE ON DIRECTORY nome_logico to utente;
dove nome_logico è il nome che abbiamo dato alla DIRECTORY mentre utente è l’utente che utilizzerò per fare l’export
expdp2

Ok adesso possiamo finalmente usare il nostro tool di export 🙂
Usciamo da SQLPLUS e, rimanendo nella shell di dos,  lanciamo il seguente comando per fare un export full:

expdp utente/password@db full=y directory=nome_logico dumpfile=nomefile logfile=logfile

dove db è l’entry del TNSNAMES.ORA che rappresenta il db di cui vogliamo effetturare l’export (nel mio caso non è presente in quanto lancio l’expdp sul server)
nome_logico è il nome della DIRECTORY che abbiamo creato al punto 1
nomefile è il nome come che vogliamo dare al nostro file dump
logfile è il nome che vogliamo dare al nostro file di log (dove si vedranno gli eventuali errori)

expdp3

Nel caso in cui si desideri esportare solo uno schema sarà sufficiente sostituire full=y con schemas=nomeschema1,nomeschema2, ecc…

Ultimo consiglio, ma non per questo poco importante, utilizzate expdp help=y per scoprire quali sono i parametri che si possono utilizzare con il comando expdp!