Samstag, 20. April 2013

Dump Export mit epx.exe in Oracle 11


Wer mit Oracle 11 arbeitet ist angehalten, die neuen "DataPump" Import/Export Funktionen von Oracle zu nutzen. Speziell den alten Export (exp.exe) unterstützt Oracle für Oracle 11g nicht mehr. Das neue "DataPump" dagegen lässt keinen Import oder Export von Dumps von einem beliebigen Rechner mit Oracle Client zu. Dies ist für viele Anwender eine unflexible Lösung.

Der alte Export lässt sich weiterhin noch verwenden. Leider gab es bis einschliesslich Oracle Version 11.2.0.1 ein Problem, dass den alten Export in seiner Anwendbarkeit stark eingeschränkt hat. Der Export ignoriert unter gewissen Umständen leere Tabellen: wird eine neue Tabelle angelegt, ist die Voreinstellung in Oracle 11 R2 nun, dass nicht automatisch auch ein Segment angelegt wird (Deferred Segment Creation). Dies geschieht erst, wenn Daten in die Tabelle eingefügt werden. Diese leeren und bisher noch nicht befüllten Tabellen wurden durch exp.exe nicht exportiert.  Die ReadMe Dateien von AutoCAD Map 2013 und Map 2014 erwähnen diesen Umstand auch:

Das vorgabegemäße Exportdienstprogramm (EXP) wird von Oracle für 11g nicht mehr unterstützt. Das Importieren (IMP) wird aus Gründen der Kompatibilität weiterhin unterstützt. Vorhandene Fachschalen von Oracle 10g, die von AutoCAD Map 3D exportiert wurden, können deshalb dennoch importiert werden, wobei die bekannten Funktionen in System-Administrator verwendet werden.

Wenn Sie mit Oracle 11g R2 aus System-Administrator exportieren, kann in einigen Fällen die daraus resultierende DMP-Datei nicht importiert werden. Das Exportdienstprogramm ignoriert einige leere Tabellen, ohne eine Warnung auszugeben. Dies führt zu einem Fehler, wenn Sie versuchen, den Import durchzuführen.

Mit Version 11.2.0.2 hat Oracle das Problem allerdings behoben - auch wenn es scheinbar an einer entsprechenden Dokumentation fehlt. Der einzige Hinweis darauf habe ich bisher nur hier gefunden:

http://www.dba-oracle.com/t_oracle_deferred_segment_creation.htm

Beim Export mit Oracle 11.2.0.2 oder höher werden leere Tabellen wieder beim "alten" Export (exp.exe) berücksichtigt:

Angemeldet bei: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Exportieren in WE8MSWIN1252-Zeichensatz und AL16UTF16-NCHAR-Zeichensatz durchgeführt

Spezifizierte Benutzer werden gleich exportiert ...
. Prozedurale Pre-Schema-Objekte und -Aktionen werden exportiert
. Fremdfunktions-Bibliotheksnamen für Benutzer TOPO_TEST_RF werden exportiert
. Synonyme vom Typ PUBLIC werden exportiert
. Synonyme vom Typ PRIVATE werden exportiert
. Objekttypdefinitionen für Benutzer TOPO_TEST_RF  werden exportiert
TOPO_TEST_RF Objekte werden gleich exportiert ...
. Datenbank-Links werden exportiert
. Sequenzzahlen werden exportiert
. Clusterdefinitionen werden exportiert
. Tabellen von TOPO_TEST_RF werden gleich exportiert ... über 'Direct Path'
. . Export der Tabelle                            FOO          0 Zeilen exportiert
...
...
Export erfolgreich ohne Warnungen beendet.

Kommentare:

  1. Hi Robert, danke für den Tipp.
    Finde den Blog eine tolle Idee! Gefühlsmässig ist die Map Community eh zu klein im Vergleich zu Civil.

    AntwortenLöschen
  2. Was mir bishe rnicht klar war - der Oracle Client muss 11.2.0.3 sein. Der Server ist 11.2.0.3, mein Client ebenfalls - Export funktioniert. Der Kollege hat nur 11.2.0.1 Client und es erscheint:

    EXP-00003: no storage definition found for segment(0, 0)

    Immer noch nicht klar ist - müssen DB und Client beide in der neueren Version vorliegen oder muss es nur der Client sein?

    AntwortenLöschen
  3. Hallo Robert,
    Generell gilt bei Oracle, dass der Server und der Client dieselbe Version haben sollten...
    Da die EXP.EXE mit dem Client installiert wird und somit der Export auf dem Client und nicht auf dem Server ausgeführt wird, macht Deine Aussage soweit Sinn, dass es am Client liegt, der in der neueren Version vorhanden sein sollte.
    Gruass #Urs

    AntwortenLöschen