DataPump: Dump-Datei und Log-Datei in unterschiedliche Verzeichnisse ablegen

2. August 2017 Aus Von Markus Flechtner

DataPump ist ein Werkzeug, das schon länger – genauer: seit Oracle 10g – bei der Oracle-Datenbank dabei ist. Und wenn man etwas damit gearbeitet hat, dann denkt man, dass man das Werkzeug kennt. Aber man lernt immer wieder dazu – so auch in diesem Fall, als ich eine große Dump-Datei von einem NFS-Laufwerk importieren musste und dort keine Schreibrechte hatte.

Der klassische Aufruf von DataPump, sei es nun expdp oder impdp sieht meist wie folgt aus:

expdp user/password \
directory=<DIRECTORY> \
dumpfile=<DUMPFILE> \
logfile=<LOGFILE> ..

bzw.

impdp user/password \
directory=<DIRECTORY> \
dumpfile=<DUMPFILE> \
logfile=<LOGFILE> ..

Dump-Datei und Log-Datei werden also in das gleiche Verzeichnis geschrieben; bzw. beim Import wird die Log-Datei in das Verzeichnis geschrieben, in dem die Dump-Datei liegt. Was ist nun, wenn man beim Import nicht in das Directory mit der Dump-Datei schreiben kann, weil – wie in meinem Fall – es ein via NFS gemountetes Verzeichnis ist, auf das es keine Schreibrechte gab (und wenn die lokalen Dateisysteme nicht genug Platz bieten).

Eine Variante ist es, mit dem Parameter NOLOGFILE zu arbeiten:

impdp user/password \
directory=BACKUP_DIR \
dumpfile=demo.dmp \
NOLOGFILE=Y \
schemas=demo

Dann erfolgt die Ausgabe allerdings nur auf dem Bildschirm.

Die elegantere Variante ist es aber, das Verzeichnis für die Log-Datei direkt beim Parameter LOGFILE mit anzugeben:

impdp user/password \
directory=DUMP_DIR \
dumpfile=demo.dmp \
logfile=LOG_DIR:demo.log ..

Man kann auch komplett auf den Directory-Parameter verzichten, wenn man für Dump- und Log-Datei die Verzeichnisse im Parameter mit angibt:

impdp user/password \
dumpfile=DUMP_DIR:demo.dmp \
logfile=LOG_DIR:demo.log ..

Das erlaubt es auch, wenn man mit mehreren Dump-Dateien arbeitet, diese in verschiedene Verzeichnisse zu schreiben:

expdp user/password \
dumpfile=DUMP_DIR1:demo_%U.dmp,DUMP_DIR2:demo_%U.dmp \
filesize=2G ..

Das ganze funktioniert schon seit Oracle 10g – aber ehrlich, ich hab‘s nicht gewusst.

 

Links & Referenzen:

 

Werbung (Amazon-Partner-Link)