Neue Data Pump Funktionen in Data Pump Bundle Patches

Oracle biete für Data Pump seit Oracle 19.10 eigene Bundle Patches, die jeweils kurz nach einem RU für die jeweilige Version zur Verfügung stehen. Diese Bundle Patches kann man – solange kein Data Pump Job läuft – jederzeit in die laufende Datenbank einspielen.

Neben vielen Bugfixes – speziell auch im Bereich Performance – bringen diese Bundle Patches aber auch neue Funktionen mit, hier einige interessante Beispiele:

transform=constraint_novalidate

Nachdem die Daten bei EXPDP/IMPDP in der Quelle natürlich valide in Bezug auf FK/PK bzw. FK/UK Constraints sein müssen, solange die Constraints mit VALIDATE angelegt wurden,
macht es eigentlich keinen Sinn, beim IMPDP die Constraints wieder zu validieren. Daher kann man bei IMPDP jetzt folgendes mitgeben:

transform=constraint_novalidate:Y

Wenn hier ein Y mitgegeben wird (Default=N) werden FK Constraints mit NOVALIDATE RELY statt mit VALIDATE angelegt. Damit erfolgt KEINE Prüfung der vorhandenen
Daten in der Tabelle, DMLs werden selbstverständlich weiterhin auf Einhaltung des Constraints geprüft. Wenn man möchte – man muss nicht – kann man dies jederzeit
nachträglich auf VALIDATE ändern.

index_threshold

Sofern man eine Oracle Enterprise Edition nutzt, kann man das CREATE INDEX auf große Tabellen parallelisieren. Wenn man Beispielsweise

index_threshold=10G

konfiguriert, nutzt Oracle bei Indizes, die potentiell großer als 10GB werden, einen höhere Grad der Parallelisierung (DOP). Allerdings meist nur mit DOP=2, und nur wenn man die Parallelisierung beim IMPDP Aufruf mit angegeben hat. Bei verschiedenen Tests mit PARALLEL=16 ist es nicht gelungen eine höhere DOP zu erreichen (Instance Parameter parallel_max_servers=80).

Auch der Parameter ONESTEP_INDEX ist dafür relevant. Dieser muss auf FALSE oder NO stehen.

impdp .... PARALLEL=8 ONESTEP_INDEX=FALSE INDEX_THRESHOLD=10G

onestep_index

Damit kommen wir gleich zum nächsten Parameter: onestep_index. Mit diesem kann man durch Angabe von TRUE oder YES dafür sorgen,
dass mehrere Indizes auf der Tabelle gleichzeitig – allerdings immer mit DOP=1 – erzeugt werden. Dies hat den Vorteil, dass bei Tabellen mit mehreren/vielen Indizes
die Index-Erzeugung praktisch ebenfalls parallel erfolgt. Auch hier kann man mit PARALLEL steuern, wie viele Indizes gleichzeitig erzeugt werden sollen.

impdp ... PARALLEL=8 ONESTEP_INDEX=YES

Aktuell ist eine Kombination von ONESTEP_INDEX=YES und INDEX_THRESHOLD=10G nicht erlaubt. Man kann somit entweder spezifizieren,
dass große Indizes mit Parallel angelegt werden, oder mehrere Indizes auf der Tabelle gleichzeitig.

Zusammenfassung

In der Oracle 19c Dokumentation findet man diese Parameter schon, allerdings fehlt der Hinweis, dass diese nur dann zur Verfügung stehen, wenn man den Data Pump Bundle Patch eingespielt hat.
Mit Oracle 23ai/26ai sollten diese Parameter auch ohne Bundle Patch zur Verfügung stehen.

Referenzen

  • Oracle 19c Dokumentation zu Oracle Data Pump Import
  • Data Pump Recommended Proactive Patches For 19.10 and Above – KB107134
  • Data Pump Recommended Proactive Patches For 23ai / 26ai – KB160561