moo_kuh Geschrieben 1. Februar 2007 Geschrieben 1. Februar 2007 Hallo Kollegen, ich habe mal eine kleine Frage zum Thema Backup Controlfile. Es gibt ja 2 Möglichkeiten ein Backup vom Controlfile zu erstellen 1) alter database backup controlfile to trace 2) alter database backup controlfile to 'FILENAME' Zu 1) Hier kann ich die Datenbank evtl. umbennen oder gewissen Einstellungen korregieren die man sonst nicht mehr ändern kann. Das "Controlfile" ist im Klartext. Aus diesem File erzeuge ich dann wieder die binären Controlfiles Zu 2) Das ist eine binäre Kopie des Controlfiles. Und nun meine Frage: Wenn ich eines der beiden "Controlfiles" benutzen will, soll man ja die Datenbank mit "recover database using backup controlfile" wiederherstellen. Mir ist aber ganz ehrlich gesagt nicht klar, was der IDENTIFIER "using backup controlfile" für einen Sinn hat? Wenn ich z.B. das Controlfile aus Punkt 2 nehme, ist es doch nicht unterschiedlich wenn ich Datenbank restoren will (gut die fortlaufenden SCNs, Sequenznummer der Redologs unterscheiden sich).. aber das bekommt Oracle doch auch hin, wenn ich nur "recover database" mache, oder? Bei Punkt1 leuchtet es mir auch nicht ein, da ich aus der Tracedatei wieder die Controlfiles erstelle (gut die SCNs, Sequenznummern gibt es überhaupt nicht mehr), aber das bekommt Oracle ja auch hin, wenn ich nur "recover database" mache, oder? In beiden Fällen öffne ich die Datenbank mit OPEN RESET LOGS. Kann mir vielleicht mal jemand den genauen Sinn von IDENTIFIER "using backup controlfile" erklären und worin der Unterschied zu einem recover ohne diesen Zusatz liegt? In beiden Fällen wurde ein Onlinebackup erstellt und das "Backup" des Controlfiles mitgesichert. Vielen Dank Zitieren
dr.dimitri Geschrieben 4. Februar 2007 Geschrieben 4. Februar 2007 Also wenn Du RMAN verwendest (wozu ich dringendst rate), dann sagst Du einfach CONFIGURE CONTROLFILE AUTOBACKUP ON Und damit ist dein Controlfile im Backupset mit drinnen. Einfach mal in RMAN ein show all eingeben und dir die eingestellten Parameter ausgeben lassen. Im einfachsten Fall genügt dann folgendes: restore controlfile from autobackup; alter database mount; recover database; alter database open resetlogs, Dim Zitieren
Jasper Geschrieben 4. Februar 2007 Geschrieben 4. Februar 2007 Wenn ich eines der beiden "Controlfiles" benutzen will, soll man ja die Datenbank mit "recover database using backup controlfile" wiederherstellen. nur wenn sqlplus zum recovern verwendet wird. ab 9ir2 ist RMAN die erste wahl. Wenn ich z.B. das Controlfile aus Punkt 2 nehme, ist es doch nicht unterschiedlich wenn ich Datenbank restoren will (gut die fortlaufenden SCNs, Sequenznummer der Redologs unterscheiden sich).. aber das bekommt Oracle doch auch hin, wenn ich nur "recover database" mache, oder? es unterscheidet sich sehr wohl. zum einen hat das backup controlfile ein flag, was es als backup kennzeichnet, zum anderen sind die SCN marker für alle datenfiles auf 0xffffffff (unlimited) gesetzt. beim recovery wird dann das flag gelöscht und die marker auf die echten werten gesetzt. Bei Punkt1 leuchtet es mir auch nicht ein, da ich aus der Tracedatei wieder die Controlfiles erstelle (gut die SCNs, Sequenznummern gibt es überhaupt nicht mehr), aber das bekommt Oracle ja auch hin, wenn ich nur "recover database" mache, oder? das gleiche procedere wie oben, nur gehen auch noch alle backupinformationen verloren. In beiden Fällen öffne ich die Datenbank mit OPEN RESET LOGS. geht nicht anders, da die information, an welcher stelle im redologstream oracle stand, verloren ist. resetlogs definiert somit einen neuen anfangspunkt. generell RMAN für backup/recovery verwenden. sqlplus ist veraltet und wird nicht weiterentwickelt. -j Zitieren
Jasper Geschrieben 4. Februar 2007 Geschrieben 4. Februar 2007 Also wenn Du RMAN verwendest (wozu ich dringendst rate), dann sagst Du einfach CONFIGURE CONTROLFILE AUTOBACKUP ON Und damit ist dein Controlfile im Backupset mit drinnen. Einfach mal in RMAN ein show all eingeben und dir die eingestellten Parameter ausgeben lassen. Im einfachsten Fall genügt dann folgendes: restore controlfile from autobackup; alter database mount; recover database; alter database open resetlogs, Dim und wie komme ich an das controlfile wieder heran, wenn das controlfile mit den metadaten des backupsets verloren ist? typisches henne-ei-problem. das controlfile mit den metadaten des backups sollte man getrennt von dem backupset speichern um im notfall wieder an die metadaten heranzukommen oder einen recovery catalog verwenden, was im bezug auf die metadaten das gleiche ist. -j Zitieren
moo_kuh Geschrieben 5. Februar 2007 Autor Geschrieben 5. Februar 2007 es unterscheidet sich sehr wohl. zum einen hat das backup controlfile ein flag, was es als backup kennzeichnet, zum anderen sind die SCN marker für alle datenfiles auf 0xffffffff (unlimited) gesetzt. beim recovery wird dann das flag gelöscht und die marker auf die echten werten gesetzt. geht nicht anders, da die information, an welcher stelle im redologstream oracle stand, verloren ist. resetlogs definiert somit einen neuen anfangspunkt. So habe ich das bisher auch verstanden. Durch das Flag erkennt Oracle das die aktuelle SCN aus dem aktiven Redolog nicht mehr verfügbar ist und liest die jeweiligen letzten SCNs aus den Headern der Datenfiles und recovered dann bis zu einem "cancel" oder "until". Hätte ich noch ein aktuelles intaktes controlfile könnte ich ein einfaches "recover database" machen, da Oracle noch weiss wie weit er zum kompletten recover heranfahren muss (vorrausgesetzt ich hätte noch die aktuellen Redologs). Ist das korrekt? generell RMAN für backup/recovery verwenden. sqlplus ist veraltet und wird nicht weiterentwickelt. -j Das ist korrekt.. unsere Backupsoftware benutzt aber noch das "alter database backup" kommando und unser softwarelieferant gibt bisher auch nur für diese Methode Support. Für unsere anderen Oracle Installationen haben wir RMAN im Einsatz. Danke Zitieren
Jasper Geschrieben 5. Februar 2007 Geschrieben 5. Februar 2007 Hätte ich noch ein aktuelles intaktes controlfile könnte ich ein einfaches "recover database" machen, da Oracle noch weiss wie weit er zum kompletten recover heranfahren muss (vorrausgesetzt ich hätte noch die aktuellen Redologs). Ist das korrekt? ja, das ist korrekt und die übliche methode für controlfile recover. -j Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.