Montag, Juli 11, 2016

Staleness IMPORT für Materialized Views in all_mviews nach data pump Import

Eine kurze Notiz, da ich bei meiner Recherche im Netz nicht arg viel zum Thema gefunden habe: durch den Transport einer Materialized View über data pump (expdp - impdp) werden zwar die Daten des Segments transportiert, aber die MView wird nicht mehr für Query Rewrite verwendet und auch ein Fast Refresh ist nicht mehr möglich und scheitert an einem Fehler ORA-12034:
ORA-12034: materialized view log on "XXX"."YYY" younger than last refresh
An dieser Stelle ist daher ein complete refresh erforderlich. Insofern ist es vermutlich sinnvoller, auf den Transfer der MView-Daten komplett zu verzichten und sie lieber gleich im Zielsystem neu aufzubauen. Besonders überraschend ist das nicht - auch wenn sich dafür vermutlich eine Lösung bei der Implementierung hätte finden lassen, wenn man sich darum bemüht hätte -, aber falls ich es schon mal wusste, habe ich es vergessen. Überraschender ist vielleicht der Status IMPORT, der in diesem Fall für die MView in der Spalte STALENESS in DBA_MVIEWS auftaucht - obwohl die Dokumentation diesen Status nicht erwähnt; dort findet man nur den Hinweis auf die ergänzende Spalte UNKNOWN_IMPORT: "Indicates whether the materialized view is imported (Y) or not (N)". Gänzlich undokumentiert ist dieser Staleness-Status aber nicht: man findet ihn im MOS-Dokument "How to Perform an EXPDP/IMPDP for a SCHEMA with a MATERIALIZED VIEW. Highlighting the IMPORT Staleness and UNKNOWN_IMPORT column in DBA_MVIEWS (Doc ID 1579866.1)" und dort wird das Verhalten auch noch mal anhand eines Beispiels dargestellt.

Keine Kommentare:

Kommentar veröffentlichen