Logo Oracle Deutschland   Deutschsprachige APEX und PL/SQL Community

Versehentlich gelöschte Anwendung oder Komponenten wiederherstellen

Erscheinungsmonat APEX-Version Datenbankversion
März 2017 alle alle

Es kommt nicht oft vor, wenn es jedoch passiert, ist der Ärger groß: Eine Anwendung, eine Seite oder eine Gemeinsame Komponente wurde versehentlich gelöscht. Wenn man schnell ist, kann man den Fehler ganz einfach beheben - und zwar mit der Flashback-Option beim Export einer Anwendung, Seite oder Komponente.

Flashback-Option beim Export einer APEX-Komponente oder Anwendung nutzen

Abbildung 1: Flashback-Option beim Export einer APEX-Komponente oder Anwendung nutzen

Grundlage hierfür ist die Flashback-Query Technologie der Oracle-Datenbank - sie erlaubt es, die AS OF Klausel in einer SQL-Abfrage zu verwenden und diese Abfrage so "in der Vergangenheit" auszuführen. Technische Details zu Flashback Query findet man in der Oracle Dokumentation: Overview of Oracle Flashback Technology.

Grundlage sind die Daten, die Oracle im Undo-Tablespace speichert. Solange historische Tabellendaten darin vorhanden sind, können sie mit Flashback Query angesprochen werden. Auf Ihrer lokalen Datenbank auf dem Laptop kann das durchaus für mehrere Stunden der Fall sein, auf einer Produktionsdatenbank oder einem zentralen Entwicklungssystem können Sie von etwa 5 bis 15 Minuten ausgehen.

Es ist nun naheliegend, nach dem versehentlichen Löschen zum Bereich Export Page zu navigieren und die gelöschte Seite mit der Flashback Option zu exportieren. Allerdings wird die zu exportierende Seite per Auswahlliste gewählt - die gelöschte Seite kommt darin natürlich nicht mehr vor ...

Die Auswahl der zu exportierenden Seite ist eine Auswahlliste

Abbildung 2: Die Auswahl der zu exportierenden Seite ist eine Auswahlliste

Aber es gibt einen einfachen Trick: Erzeugen Sie eine neue Seite ("Dummy-Seite") mit der Seitennummer der versehenlich gelöschten. Nehmen Sie eine leere Seite und akzeptieren Sie die Standards - Sie wollen mit dem Dialog ja schnell fertig werden. Dann navigieren Sie wieder zu Page Export und exportieren diese neue Seite - mit der Flashback Option zu der Zeit, als die alte noch existierte.

Die Dummy-Seite wird mit der Flashback-Option exportiert

Abbildung 3: Die Dummy-Seite wird mit der Flashback-Option exportiert

Dann navigieren Sie zum Bereich Import und importieren die gerade exportierte Seite wieder zurück.

Exportdatei importieren

Abbildung 4: Exportdatei importieren

Da die Dummy-Seite noch existiert, wird Application Express Sie warnen. Bestätigen Sie, dass Sie die Seite wirklich austauschen wollen.

Austausch der Anwendungsseite bestätigen

Abbildung 5: Austausch der Anwendungsseite bestätigen

Danach haben Sie Ihre alte Seite zurück.

Wenn Sie mit der Seite auch Gemeinsame Komponenten wie Breadcrumbs oder Listeneinträge gelöscht haben, werden diese nicht wiederhergestellt - schließlich haben Sie nur die Seite exportiert. Wenn Sie diese wiederherstellen möchten, ist es empfehlenswert, gleich die ganze Anwendung per Flashback zu exportieren.

Ganze Anwendung mit der Flashback-Option exportieren

Abbildung 6: Ganze Anwendung mit der Flashback-Option exportieren

Beim Import können Sie sich nun entscheiden. Eine Option ist es, die Anwendung unter der gleichen ID zu importieren - damit wird die vorhandene überschrieben und die fehlenden Komponenten sind wieder da. Allerdings werden dann auch beabsichtigte Änderungen zurückgesetzt - was vielleicht nicht gewünscht ist.

In diesem Fall importieren Sie die Anwendung am besten unter einer anderen ID. Damit Sie nicht durcheinander kommen, geben Sie dieser Kopie dann noch einen sprechenden Namen. Sie können die versehentlich gelöschten Komponenten nun entweder in der Kopie nachsehen und manuell wiederherstellen - oder Sie kopieren die Komponente aus der Anwendungskopie.

Komponente - aus der Anwendungskopie - zurück kopieren 1: Am Beispiel "Liste" Komponente - aus der Anwendungskopie - zurück kopieren 2: Am Beispiel "Liste"

Abbildung 7: Komponente - aus der Anwendungskopie - zurück kopieren: Am Beispiel "Liste"

Eine versehentlich gelöschte Komponente ist mit Application Express überhaupt kein Problem - wenn man schnell genug ist, kann man sie mit Hilfe eines "Flashback Exports" problemlos wiederherstellen. Und wenn man das ganze noch etwas weiter denkt, so bieten sich regelmäßige, am besten tägliche Exports an. Optimal ist es, wenn man diese gleich noch in die Versionskontrolle eincheckt - dann kann man stets auf die gesamte Versionshistorie zugreifen - und auch Fehler korrigieren, die schon länger zurückliegen.

zurück zur Community-Seite