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.
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 ...
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.
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.
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.
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.
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.
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
|