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.
- Creare una DIRECTORY su oracle
- Dare i grant di export
- 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)
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
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)
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!