Data Pump Bundle Patch

Seit Oracle 19.10 inkludiert Oracle die Patches für Data Pump nicht mehr in den Release Updates (RUs / Critical Patch Updates). Diese müssen nach dem Einspielen eines RUs extra heruntergeladen und eingespielt werden.

Warum muss der Data Pump Patch gesondert einspielt werden?

Der Grund liegt darin, dass der Patch nicht RAC-Rolling einspielbar ist. Das kommt daher, dass dieser Patch mittels Datapatch einige zentrale Packages wie DBMS_DATAPUMP und DBMS_METADATA austauscht. Das führt dazu, dass etwaige Data Pump Jobs auf anderen Instanzen Fehler melden würden.

Oracle arbeitet daran, diese Patches in Zukunft ebenfalls rolling machen. Eine Aussage, wann es soweit sein wird, gibt es noch nicht.

Wo findet man die Informationen zu den Data Pump Patches?

Diese hat Oracle im My Oracle Support Dokument 819284.1 – Data Pump Recommended Proactive Patches For 19.10 and Above – bereit gestellt. Leider erscheinen sie nicht zeitgleich mit den RUs, sondern um einige Wochen verzögert. Außerdem gibt es Einschränkungen bei Windows: nicht für jeden RU erscheint ein passender Data Pump Patch.

Was passiert, wenn ich die Data Pump Patches nicht einspiele?

Das hängt größtenteils von der Zieldatenbank ab. Werden nur Tabellen und Indizes genutzt, wird vermutlich keiner der vielen Bugs schlagend werden, die mit dem Patch behoben werden. Oft fallen diese Bugs nicht einmal auf.

Die Bugfixes beheben unter anderem:

  • Mehrere performancerelevante Bugs (EXPDP dauert länger)
  • Fehler rund um Deaktivieren von ARCHIVE LOGGING beim Import
  • Fehlerhafte DDL Statements im Zusammenhang mit MViews, Tabellen mit Constraints und USING INDEX CLAUSE
  • Fehlende Grants, beispielsweise auf SEQUENCES nach dem Import
  • Probleme rund um Transportable Tablespace

und viele mehr!

Der Patch für Oracle 19.17 enthält 73 Bugfixes. Für Oracle 19.18 sind immerhin 97 Bugfixes. Der Data Pump Patch 34972375 für 19.18 ist seit dem 9. Feb 2023 verfügbar – drei Wochen nach dem RU 19.18.

Wenn Sie Data Pump regelmäßig nutzen, empfehlen wir Ihnen den Patch auf alle Fälle einzuspielen!

Einspielen des Data Pump Patches

Da der Patch keine Oracle Binaries modifiziert, sondern nur SQL und PL/SQL Code enthält, kann der Patch jederzeit eingespielt werden – auch wenn Datenbanken und Listener in dem ORACLE_HOME laufen.

Es muss jedoch dafür gesorgt werden, dass kein Data Pump Job (egal ob EXPDP oder IMPDP) läuft, bis der Patch inkl. Data Dictionary vollständig eingespielt ist.

Wie bei vielen anderen Patches muss die Änderungen im Data Dictionary mittels:

$ORACLE_HOME/OPatch/datapatch -verbose

eingespielt werden. Erst danach ist das Patching abgeschlossen. Anschließend unbedingt alle invaliden Objekte recompilieren!

sqlplus / as sysdba @?/rdbms/admin/utlrp.sql

Wie wird der Patch im RAC eingespielt?

Der Patch muss auf jedem Knoten einzeln eingespielt werden. Sobald das erfolgt ist, muss nur auf EINEM Knoten zuerst Datapatch und dann das Recompile angestoßen werden.

Was muss man machen, wenn sich ein neuer RU / Critical Patch Update auf Grund des Data Pump Patches nicht einspielen läßt?

In diesem Fall muss zuerst der Data Pump Patch mittels:

$ORACLE_HOME/OPatch/opatch rollback -id <patchid> 

zurückgenommen werden. Danach kann der RU problemlos eingespielt werden und – sobald verfügbar – ebenfalls der neue Data Pump Patch.

Referenzen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

This site uses Akismet to reduce spam. Learn how your comment data is processed.