Adar marek oracle-rman-internals

59
Frankfurter Datenbanktage Tipps und Tricks zum Oracle Recovery Manager Marek Adar

description

Oracle Recovery Manager (RMAN), Best Practicces and Internals: Marek Adar Der zertifizierte Oracle Trainer und mehrfache Buch-Autor Marek Adar gibt Tipps und zeigt Tricks zu Backup und Recovery von Oracle-Datenbanken, darunter: Tipps und Tricks zum Block Recovery Desaster Recovery von Band ohne Sicherungskatalogdatenbank und Controlfile-Autobackup Inkrementell aktualisierte Image-Kopien / Die Mini-Standbay-Datenbank Ein Ausflug in Interna des Packages DBMS_BACKUP_RESTORE RMAN-TracingInterna für das Troubleshooting

Transcript of Adar marek oracle-rman-internals

Page 1: Adar marek oracle-rman-internals

Frankfurter Datenbanktage

Tipps und Tricks

zum Oracle Recovery Manager

Marek Adar

Page 2: Adar marek oracle-rman-internals

Vortrag im Rahmen der

13. – 15. März 2013

Page 3: Adar marek oracle-rman-internals

Die ersten Frankfurter Datenbanktage fanden am 14. und 15. März 2013 statt.

Knapp 250 Teilnehmerinnen und Teilnehmer verfolgten an den zwei

Konferenztagen Vorträge und Diskussionen, Keynotes und Hands on Sessions

aus der Welt von IBM, Oracle, SAP, Microsoft und Open Source-Datenbanken. Die

fünf parallelen Vortragstracks boten rund 60 intensive Sessions. Am Vortag der

Konferenz, am 13. März gab es zusätzlich einen optional buchbaren

Schulungstag zu Virtualisierung, Cloud Computing und Hochverfügbarkeit

mit Datenbanken.

Weitere Präsentationen der Konferenz sowie Sprecher-Interviews und Aufnahmen

der Live Hackings stehen unter

www.frankfurter-datenbanktage.de

zum Download bereit.

Die nächsten Frankfurter Datenbanktage finden vom 26. - 28. März 2014 statt.

Page 4: Adar marek oracle-rman-internals

Wer bin ich?

• Marek Adar, Baujahr: 1970

• Physik-Ing. seit 1996

• Verheiratet, mit fast vier Kindern

• Oracle seit 1998

• Themen für Training und Support: – SQL –PL/SQL

– DBA

– SQL- und DB-Performance Tuning

– Backup & Recovery

– RAC und Data Guard

Page 5: Adar marek oracle-rman-internals

Publikationen

Page 6: Adar marek oracle-rman-internals

Themen

• Desaster Recovery von Band ohne Autobackup der Kontrolldatei und einem Recovery-Katalog

• Inkrementelles Recovery von Image-Kopien – Die Mini-Standby-Datenbank

• Das Package DBMS_BACKUP_RESTORE – Ein Experiment

• Wenn noch Zeit ist:

– Durchführung von Block-Recovery

– Trace-Informationen

Page 7: Adar marek oracle-rman-internals

Desaster Recovery von Band ohne Autobackup der Kontrolldatei und einem Recovery-Katalog

Page 8: Adar marek oracle-rman-internals

Desaster Recovery von Band ohne Autobackup der Kontrolldatei und einem

Recovery-Katalog • Problematik

– Kontrolldatei beinhaltet Metadaten der Sicherungen

– Kontrolldatei liegt auf Band

– Frage: Wie kann ohne Informationen aus einem Katalog die Kontrolldatei wiederhergestellt werden, um die Datenbank mit den Informationen aus der Kontrolldatei zurückzusichern?

Page 9: Adar marek oracle-rman-internals

Desaster Recovery von Band ohne Autobackup der Kontrolldatei und einem

Recovery-Katalog • Vorgehensweise

– Wiederherstellung des Grundsystems mit Betriebssystem und Oracle-Software

– Wiederherstellung der Oracle NET-Umgebung

– Erstellung der Kennwortdatei mit orapwd unter Linux

– Erstellung der Kennwortdatei und eines Dienstes mit oradim unter Windows

Page 10: Adar marek oracle-rman-internals

Desaster Recovery von Band ohne Autobackup der Kontrolldatei und einem

Recovery-Katalog • Vorgehensweise (cont.)

– Erstellung einer Parameterdatei mit den Parametern:

– Anlegen der Ordnerstrukturen für die Datenbank

– Installation der Tape-Library

Page 11: Adar marek oracle-rman-internals

Desaster Recovery von Band ohne Autobackup der Kontrolldatei und einem

Recovery-Katalog • Vorgehensweise (cont.)

– Starten des Recovery Managers

Page 12: Adar marek oracle-rman-internals

Desaster Recovery von Band ohne Autobackup der Kontrolldatei und einem

Recovery-Katalog • Vorgehensweise (cont.)

– Setzen der Datenbank-ID, ausgelesen aus dem Sicherungsprotokoll.

– Starten der Instanz in die NOMOUNT-Fase

Page 13: Adar marek oracle-rman-internals

Desaster Recovery von Band ohne Autobackup der Kontrolldatei und einem

Recovery-Katalog • Vorgehensweise (cont.)

– Wiederherstellung der Serverparameterdatei über den Bandkanal aus einem Backupset, ausgelesen aus dem Sicherungsprotokoll

Page 14: Adar marek oracle-rman-internals

Desaster Recovery von Band ohne Autobackup der Kontrolldatei und einem

Recovery-Katalog • Vorgehensweise (cont.)

– Herunterfahren der Instanz und erneutes Starten in die NOMOUNT-Fase, um vom SPFILE zu starten

Page 15: Adar marek oracle-rman-internals

Desaster Recovery von Band ohne Autobackup der Kontrolldatei und einem

Recovery-Katalog • Vorgehensweise (cont.)

– Wiederherstellung der Kontrolldatei über den Bandkanal aus einem Backupset, ausgelesen aus dem Sicherungsprotokoll.

Page 16: Adar marek oracle-rman-internals

Desaster Recovery von Band ohne Autobackup der Kontrolldatei und einem

Recovery-Katalog • Vorgehensweise (cont.)

– Datenbank anhängen

– Datenbankwiederherstellung starten

Page 17: Adar marek oracle-rman-internals

Desaster Recovery von Band ohne Autobackup der Kontrolldatei und einem

Recovery-Katalog • Vorgehensweise (cont.)

– Archive auf die Datenbank anwenden

Page 18: Adar marek oracle-rman-internals

Desaster Recovery von Band ohne Autobackup der Kontrolldatei und einem

Recovery-Katalog • Vorgehensweise (cont.)

– Datenbank mit der Option – RESETLOGS öffnen.

Page 19: Adar marek oracle-rman-internals

Inkrementelles Recovery von Image-Kopien

Die Mini-Standby-Datenbank

Page 20: Adar marek oracle-rman-internals

Inkrementelles Recovery von Image-Kopien. Die Mini-Standby-Datenbank

• Grundlage

– Erstellung einer Kopie der Datenbank auf ein zweites Speichersubsystem

– Anwenden von differenziellen Sicherungen auf die Kopie zur Aktualisierung.

Page 21: Adar marek oracle-rman-internals

Inkrementelles Recovery von Image-Kopien. Die Mini-Standby-Datenbank

• Grundlage (cont.)

– Bei Ausfall der Datenbank kann zeitnah auf die Kopie geschwenkt werden.

– Zurücksichern der Datenbank entfällt.

Page 22: Adar marek oracle-rman-internals

Inkrementelles Recovery von Image-Kopien. Die Mini-Standby-Datenbank

• Grundlage

– Aufbau

Page 23: Adar marek oracle-rman-internals

Inkrementelles Recovery von Image-Kopien. Die Mini-Standby-Datenbank

• Grundlage (cont.)

Page 24: Adar marek oracle-rman-internals

Inkrementelles Recovery von Image-Kopien. Die Mini-Standby-Datenbank

• Erstellen der Image-Kopie

Page 25: Adar marek oracle-rman-internals

Inkrementelles Recovery von Image-Kopien. Die Mini-Standby-Datenbank

• Regelmäßiges Durchführen der differenziellen Sicherung mit Anwendung auf die Image-Kopie

Page 26: Adar marek oracle-rman-internals

Inkrementelles Recovery von Image-Kopien. Die Mini-Standby-Datenbank

• Regelmäßiges Durchführen der differenziellen Sicherung mit Anwendung auf die Image-Kopie. (cont.)

Page 27: Adar marek oracle-rman-internals

Inkrementelles Recovery von Image-Kopien. Die Mini-Standby-Datenbank

• Durchführung eines Schwenks im Falle eines Ausfalls von NAS1

– Starten der Datenbank in die MOUNT-Fase

Page 28: Adar marek oracle-rman-internals

Inkrementelles Recovery von Image-Kopien. Die Mini-Standby-Datenbank

• Durchführung eines Schwenks im Falle eines Ausfalls von NAS1

– Schwenken auf die Kopie der Datenbank

Page 29: Adar marek oracle-rman-internals

Inkrementelles Recovery von Image-Kopien. Die Mini-Standby-Datenbank

• Durchführung eines Schwenks im Falle eines Ausfalls von NAS1

– Anwenden der Archive und öffnen der Datenbank

Page 30: Adar marek oracle-rman-internals

Inkrementelles Recovery von Image-Kopien. Die Mini-Standby-Datenbank

• Zusätzliches: – Ist das ausgefallende NAS-System wieder verfügbar, kann

erneut eine Einrichtung in die andere Richtung durchgeführt werden

– Die alten Datenbankdateien werden als Kopien im Katalog gepflegt, können aber nicht für die das erneute Aufsetzen verwendet werden, da sie keinen Bezeichner (TAG) besitzen

– Die differenzielle Sicherung kann zeitversetzt auf die Kopien angewendet werden, um zusätzlich eine unvollständige Wiederherstellung zu erlauben

Page 31: Adar marek oracle-rman-internals

Das Package DBMS_BACKUP_RESTORE.

Ein Experiment

Page 32: Adar marek oracle-rman-internals

Das Package DBMS_BACKUP_RESTORE. Ein Experiment

• DBMS_BACKUP_RESTORE

– Internes Package, welches für die Durchführung der Sicherung zuständig ist

– Nicht dokumentiert

– Direkter Zugriff wird nicht unterstützt

– Wird über den Recovery Manager gestartet

– Dieses Beispiel dient nur zu Demonstrations-zwecken

Page 33: Adar marek oracle-rman-internals

Das Package DBMS_BACKUP_RESTORE. Ein Experiment

• Prozeduren und Funktionen

– BACKUPSETDATAFILE

• Definiert die Erstellung eines Backupsets

– DEVICEALLOCATE

• Allokiert den Kanal

– SETLIMIT

• Setzt „PIECE“-Größe

– BACKUPDATAFILE

• Nimmt die zu sichernden Datenbankdateien auf

Page 34: Adar marek oracle-rman-internals

Das Package DBMS_BACKUP_RESTORE. Ein Experiment

• Prozeduren und Funktionen (cont.)

– BACKUPPIECECREATE

• Erstellt die „PIECES“

– DEVICEDEALLOCATE

• Deallokiert den Kanal

– BACKUPCANCEL

• Beendet die Sicherung

Page 35: Adar marek oracle-rman-internals

Das Package DBMS_BACKUP_RESTORE. Ein Experiment

• Eine Testprozedur / Übergabeparameter

Page 36: Adar marek oracle-rman-internals

Das Package DBMS_BACKUP_RESTORE. Ein Experiment

• Eine Testprozedur / Backupset / Kanalallokierung

Page 37: Adar marek oracle-rman-internals

Das Package DBMS_BACKUP_RESTORE. Ein Experiment

• Eine Testprozedur / Definition der „PIECE“-Namen

Page 38: Adar marek oracle-rman-internals

Das Package DBMS_BACKUP_RESTORE. Ein Experiment

• Eine Testprozedur / Erstellung der „PIECES“

Page 39: Adar marek oracle-rman-internals

Das Package DBMS_BACKUP_RESTORE. Ein Experiment

• Durchführung der Sicherung / Komprimiert und in die Flash Recovery Area

Page 40: Adar marek oracle-rman-internals

Das Package DBMS_BACKUP_RESTORE. Ein Experiment

• Durchführung der Sicherung

Page 41: Adar marek oracle-rman-internals

Das Package DBMS_BACKUP_RESTORE. Ein Experiment

• Durchführung der Sicherung. (cont.)

Page 42: Adar marek oracle-rman-internals

Das Package DBMS_BACKUP_RESTORE. Ein Experiment

• Durchführung der Sicherung. (cont.)

Page 43: Adar marek oracle-rman-internals

Das Package DBMS_BACKUP_RESTORE. Ein Experiment

• Test der Sicherung

Page 44: Adar marek oracle-rman-internals

Das Package DBMS_BACKUP_RESTORE. Ein Experiment

• Test der Sicherung. (cont.)

Page 45: Adar marek oracle-rman-internals

Das Package DBMS_BACKUP_RESTORE. Ein Experiment

• Test der Sicherung. (cont.)

Page 46: Adar marek oracle-rman-internals

Das Package DBMS_BACKUP_RESTORE. Ein Experiment

• Test der Sicherung. (cont.)

Page 47: Adar marek oracle-rman-internals

Block-Recovery in der

Enterprise Edition

Page 48: Adar marek oracle-rman-internals

Block Recovery

• Wann entstehen defekte Blöcke

– Defekter Kontroller

– Defekter Hauptspeicher

• Unterscheidung von

– Physisch defekte Blöcke

– Logisch defekte Blöcke

• RMAN führt während der Sicherung eine physische, mit der Option check logical auch eine logische Blockprüfung durch.

• Archivelog-Modus muss für BR aktiviert sein.

Page 49: Adar marek oracle-rman-internals

Block Recovery

• Abbruch von Anweisungen mit der Fehler-meldung ORA-01578

Page 50: Adar marek oracle-rman-internals

Block Recovery

• Prüfung von defekten Blöcke mit der RMAN-Anweisung validate [check logical] database;

Page 51: Adar marek oracle-rman-internals

Block Recovery

• Durch Ausführung der Blockprüfung wird die View V$DATABASE_BLOCK_CORRUPTION gefüllt.

Page 52: Adar marek oracle-rman-internals

Block Recovery

• Wiederherstellung der Blöcke über den RMAN-Befehl blockrecover corruption list;

Page 53: Adar marek oracle-rman-internals

Trace-Informationen

Page 54: Adar marek oracle-rman-internals

Trace-Informationen

• Über Tape-Library wird die Datei sbtio.log geschrieben, in der auftretende Fehler protokolliert werden.

• diagnostic_dest/rdms/<db>/<sid>/trace/sbtio.log

Page 55: Adar marek oracle-rman-internals

Trace-Informationen

• Über Tape-Library wird die Datei sbtio.log geschrieben, in der auftretende Fehler protokolliert werden.

• diagnostic_dest/rdms/<db>/<sid>/trace/sbtio.log

Page 56: Adar marek oracle-rman-internals

Trace-Informationen

• Debug-Trace in RMAN aktivieren

• Alle Aufrufe an dbms_backup_restore werden sichtbar.

Page 57: Adar marek oracle-rman-internals

Trace-Informationen

• Debug-Trace in RMAN aktivieren. (cont.)

Page 58: Adar marek oracle-rman-internals

Trace-Informationen

• Debug-Trace in RMAN aktivieren. (cont.)

Page 59: Adar marek oracle-rman-internals

Questions