Datenbankadministration - 5. Backup & · PDF file• f¨ur DB2 zugreifbar • liegen...

35
Datenbankadministration 5. Backup & Recovery AG DBIS University of Kaiserslautern, Germany Karsten Schmidt [email protected] (Vorlage TU-Dresden) Wintersemester 2008/2009 K. Schmidt 5. Backup & Recovery

Transcript of Datenbankadministration - 5. Backup & · PDF file• f¨ur DB2 zugreifbar • liegen...

Datenbankadministration5. Backup & Recovery

AG DBIS University of Kaiserslautern, Germany

Karsten Schmidt [email protected]

(Vorlage TU-Dresden)

Wintersemester 2008/2009

K. Schmidt 5. Backup & Recovery

Backup & Recovery

Wiederherstellung (recovery)Wiederherstellen der Datenbank nach Fehlerfall

SystemausfallTransaktionsfehlerMedienfehlerHavarie

RESTART- und RESTORE-Kommandoerfordert ggf. Backup & Protokollierung

Protokollierung (logging)

Protokollierung aller Anderungen an der Datenbankermoglicht UNDO und REDO

Sicherung (backup)

Sicherung der Datenbank fur spateres WiederherstellenBACKUP-Kommando

K. Schmidt 5. Backup & Recovery

Wiederholung: Transaktionen

TransaktionenKapselung mehrerer Datenbankoperationenu.a. Alles-oder-Nichts-PrinzipAbschluß mit COMMIT oder ROLLBACKAchtung: automatisches Commit ausschalten

UPDATE COMMAND OPTIONS USING C OFF

BeispielUberweisung

UPDATE PERS SET BALANCE = BALANCE - 100 WHERE ID = 1

UPDATE PERS SET BALANCE = BALANCE + 100 WHERE ID = 2

COMMIT

K. Schmidt 5. Backup & Recovery

Arten von Recovery

Crash RecoveryWiederherstellung nach Systemausfall (crash)

nicht beendete Transaktionen rucksetzen (undo, rollback)nicht vollstandig ausgeschriebene Transaktionen ausschreibenerfordert Protokolldatei

Datenbankneustart nach Systemausfall

RESTART DATABASE <db-name>

Parameter AUTORESTART in Datenbankkonfiguration

Beispiel:UPDATE PERS SET BALANCE = BALANCE - 100 WHERE ID = 1

UPDATE PERS SET BALANCE = BALANCE + 100 WHERE ID = 2

→ CRASHCOMMIT

Problem: keine Losung fur Medienfehler oder Havarie

Backup notwendig

K. Schmidt 5. Backup & Recovery

Arten von Recovery

Version RecoveryWiederherstellung eines gespeicherten Datenbankzustandes

erfordert vorheriges Backupneuere Anderungen gehen verloren

Rollforward Recoverywie Version Recovery, aber zusatzliche Verwendung vonProtokolldateien

Basis: Backup der Datenbanknachtragliche Anderungen anhand von Prokolldateiennachvollzogen (Archivprotokollierung notwendig)

Wiederherstellung des Zustands der DB zu einem bestimmtenZeitpunkt moglich

K. Schmidt 5. Backup & Recovery

Protokollierung

K. Schmidt 5. Backup & Recovery

Protokollierung

Transaktionsprotokolle (transaction logs)halten Anderungen an Datenbankobjekten und Daten festWAL-Prinzip (write-ahead-logging)

K. Schmidt 5. Backup & Recovery

Protokollarten

Protokollartenaktive Protokolle (active logs)

nicht abgeschlossene Transaktionen (COMMIT, ROLLBACK)abgeschlossene, aber nicht festgeschriebene Transaktionenbenotigt fur Crash Recovery

Archivprotokolle (archive logs)

abgeschlossene, festgeschriebene Transaktionen2 Arten- online• fur DB2 zugreifbar• liegen im selben Verzeichnis wie aktive Protokolle

- offline• durch System oder Nutzer verschoben

benotigt fur Rollforward Recovery

K. Schmidt 5. Backup & Recovery

Arten von Protokolldateien

Arten von Protokolldateienprimare Protokolldateien

Speicherplatz vorallokiert (max. 256GB)Parameter LOGPRIMARY in Datenbankkonfiguration

sekundare Protokolldateien

Speicherplatz dynamisch allokiertParameter LOGSECOND in Datenbankkonfiguration

weitere Parameter

LOGFILSZ: Große einer Protokolldatei (in 4KB)NEWLOGPATH: Verandern des Speicherortes

Uberlauf aller Protokolldateien → Rucksetzen der Transaktion

K. Schmidt 5. Backup & Recovery

Protokollierungsstrategien

Umlaufprotokollierung (circular logging)

Uberschreiben nicht mehr verwendeter ProtokolldateienRingpuffernur Crash Recovery (und Version Recovery) mogllich

K. Schmidt 5. Backup & Recovery

Protokollierungsstrategien

Archivprotokollierung (archival logging)

kein Uberschreiben von Protokolldateiengesteuert durch LOGARCHMETH1, LOGARCHMETH2Umschalten erfordert Backup

Parameter LOGARCHMETH1 der Datenbankkonfiguration

Umlaufprotokollierung (OFF)Behalten von Archivprotokollen (LOGRETAIN)Verschieben von Archivprotokollen (DISK:<path>)nutzerdefinierte Sicherung (USEREXIT)

sqllib/bin/db2uext2

automatischer Aufrufdurch DB2Parameter bestimmendurchzufuhrende Aktion

K. Schmidt 5. Backup & Recovery

Protokollierungsstrategien

Unbegrenzte Protokollierung (infinite logging)Archivierung von Protokolldateien

sobald diese voll sindunabhangig davon, ob Transaktionen beendet oderfestgeschrieben sind

Ergebnis

aktive Protokolle laufen nie uberkein Abbrechen von Transaktionen aufgrund vollerProtokolldateien

nicht empfohlen (Crash Recovery kann sehr lang dauern)

ParameterArchivprotokollierung aktivierenLOGSECOND auf -1 setzen

K. Schmidt 5. Backup & Recovery

Backup

K. Schmidt 5. Backup & Recovery

Datenbank-Backup

Datenbank-BackupSicherung einer Datenbank

DatenInformationen uber Tabellenbereiche / ContainerDatenbankkonfigurataionaber: nicht Instanzparameter und Registrierung

2 Arten

offline• Datenbank wird gesperrtonline• Zugriff auf Datenbank weiterhin moglich• erfordert Archivprotokollierung

erforderliche Rechte: SYSADM, SYSMAINT, SYSCTRL

K. Schmidt 5. Backup & Recovery

Vollstandiges Backup

Vollstandiges Backup (full backup)

ermoglicht Version RecoveryBACKUP DATABASE <db-name> [ONLINE]

TO {<directory> | <device>}

[INCLUDE LOGS]

[COMPRESS]

Namenskonventionen

Information uber Backup-Dateien: db2ckbkp <name>

Beispiel

BACKUP DATABASE TPCH

TO /home/db2inst1/db2backup

TPCH.0.db2inst1.NODE0000.CATN0000.20071119140359.001

K. Schmidt 5. Backup & Recovery

Aktualisierendes Backup

Aktualisierendes Backupkumulative Sicherung (incremental backup)

sichert alle Veranderungen seit letztem vollstandigen Backup

nicht-kumulative Sicherung (delta backup)

sichert alle Veranderungen seit letztem vollstandigen,kumulativen oder nicht-kumulativen Backup

K. Schmidt 5. Backup & Recovery

Aktualisierendes Backup

Aktualisierendes Backup in DB2Datenbankparameter TRACKMOD muss auf ON gesetzt seinBACKUP DATABASE <db-name> [ONLINE] [INCREMENTAL [DELTA]]

. . .Beispiel

UPDATE DB CFG USING TRACKMOD ON

BACKUP DATABASE TPCH

TO /home/db2inst1/db2backup

. . .BACKUP DATABASE TPCH INCREMENTAL

TO /home/db2inst1/db2backup

K. Schmidt 5. Backup & Recovery

Tabellenbereichs Backup

Tabellenbereichs BackupArchivprotokollierung notwendigBACKUP DATABASE TPCH

TABLESPACE (SYSCATSPACE, USERSPACE1)

TO /home/db2inst1/db2backup

TPCH.3.db2inst1.NODE0000.CATN0000.20071119140359.001

3 = Tablespace Backup

kein Backup temporarer TabellenbereicheTabellenbereiche mit zusammenhangenden Daten gemeinsamsichern

Daten, Indizes, LOBsTabellen mit Fremdschlusselbeziehungen

K. Schmidt 5. Backup & Recovery

Recovery

K. Schmidt 5. Backup & Recovery

Datenbankwiederherstellung

Version Recovery mit vollstandigem Backupvollstandige Wiederherstellung des gesicherten ZustandsUberschreiben der existierenden bzw. Anlegen einer neuenDatenbank

K. Schmidt 5. Backup & Recovery

Datenbankwiederherstellung

Version Recovery mit vollstandigem Backupnur offline moglichRESTORE DATABASE <dbname>

FROM {<directory>|<device>}

TAKEN AT <timestamp>

[INTO <dbname>]

[REPLACE EXISTING]

BeispielRESTORE DATABASE TPCH

FROM /home/db2inst1/db2backup

TAKEN AT 20071119140359

erforderliche Rechte: SYSADM, SYSCTRL, (SYSMAINT)

K. Schmidt 5. Backup & Recovery

Datenbankwiederherstellung

Version Recovery mit aktualisierenden Backupsbenotigt (ausgehend vom Zielzeitpunkt)

volles Backupletztes inkrementelles Backupalle nachfolgenden Delta-Backups

RESTORE DATABASE <dbname> INCREMENTAL [AUTOMATIC]

. . .

automatisches Einspielensonst manuell: Reihenfolge letztes, erstes, zweites, . . . , letztes

K. Schmidt 5. Backup & Recovery

Tabellenwiederherstellung

Wiederherstellung von Tabellenbereichenvon Datenbank- oder Tabellenbereichs-BackupWiederherstellung von Benutzertabellenbereichen auch onlinemoglichArchivprotokollierung notwendignach RESTORE immer im ROLLFORWARD PENDING-ZustandRESTORE DATABASE <dbname>

TABLESPACE (<tablespacename>)

FROM {<directory>|<device>}

K. Schmidt 5. Backup & Recovery

Wiederherstellung der Protokolldateien

Wiederherstellung der ProtokolldateienVoraussetzung: Protokolldateien im Backup ([INCLUDE LOGS])Option: LOGTARGET <targetpath>

mit Option LOGS lassen sich auch ausschließlich die Protokolldateienwiederherstellen

RESTORE DATABASE <dbname>

LOGS FROM <backuppath>

LOGTARGET <targetpath>

K. Schmidt 5. Backup & Recovery

Umgeleitete Wiederherstellung

Umgeleitete Wiederherstellung redirected recoveryerforderlich wenn:

Container, von dem Backup gemacht wurde, nicht mehrverfugbarWiederherstellung der Datenbank auf anderem System mitanderer Konfiguration

Ablauf1 Information uber Container und Tabellenbereiche aus Backup

sammeln

RESTORE DATABASE <dbname>

FROM {<directory>|<device>} INTO <dbname>

REDIRECT

WITHOUT ROLLING FORWARD

2 Informationen ansehen

LIST TABLESPACES SHOW DETAIL

K. Schmidt 5. Backup & Recovery

Umgeleitete Wiederherstellung

Ablauf (Fortsetzung)1 Container fur Tabellenbereiche setzen

SET TABLESPACE CONTAINERS FOR <tbspc_id> USING (...)

2 Wiederherstellung der Daten starten

RESTORE DATABASE <dbname> CONTINUE

Einschrankungenkeine Anderung des Tabellenbereichstyp (SMS/DMS)keine Anderungen an automatic storage Tabellenbereichen

K. Schmidt 5. Backup & Recovery

ROLLFORWARD

K. Schmidt 5. Backup & Recovery

Rollforward Recovery

Rollforward Recovery einer Datenbankerlaubt Wiederherstellung des Datenbankzustands einesangegebenen Zeitpunktesnur offline moglichROLLFORWARD DATABASE <db-name>

TO {<time> [USING LOCAL TIME] | END OF LOGS}

[AND COMPLETE]

Wiederholen aller bis <time> abgeschlossenen Transaktionenmuss abgeschlossen werden

ROLLFORWARD DATABASE <db-name> COMPLETE

erforderliche Rechte: SYSADM, SYSCTRL, SYSMAINT

K. Schmidt 5. Backup & Recovery

Rollforward Recovery

Rollforward Recovery eines Tabellenbereichsfur Benutzertabellenbereiche auch online moglichROLLFORWARD DATABASE <db-name>

TO {<time> [USING LOCAL TIME] | END OF LOGS}

[AND COMPLETE]

TABLESPACE (<tablespacename>) [ONLINE]

bei ROLLFORWARD zu angegebenen Zeitpunkt → Tabellenbereich inBACKUP PENDING-Zustand

K. Schmidt 5. Backup & Recovery

Zielzeitpunkt der Wiederherstellung

Zielzeitpunkt der Wiederherstellungmuss zwischen minimum point in time und end of logs liegenAchtung: keine Garantie, dass Daten nach ROLLFORWARD inkonsistentem ZustandSetzen von Konsistenzpunkten mit Hilfe des QUIESCE-Kommandos

minimum point in time

sichert zu, dass Tabellenbereiche und Protokolle konsistent mitSystemkatalogen sindaktualisiert, wenn DDL gegen Tabellenbereich oder Tabellenim TabellenbereichLIST TABLESPACES SHOW DETAILS oderGET SNAPSHOT FOR TABLESPACE ON <dbname>

K. Schmidt 5. Backup & Recovery

Hochverfugbarkeit

K. Schmidt 5. Backup & Recovery

Hochverfugbarkeit

Hochverfugbarkeit bei Backup und WiederherstellungBackup von gesamter Datenbank schwer zu planen und langeLaufzeit → Backup einzelner TabellenbereicheWiederherstellung (RESTORE) mit Option REBUILD (ab Version 9)

Wiederherstellung der vollstandigen DatenbankVoraussetzung: Backups der Tabellenbereiche und ProtokolleAblauf

RESTORE DATABASE <dbname> REBUILD WITH ALL

TABLESPACES IN DATABASE TAKEN AT <timestamp>

(<timestamp> von letztem Tabellenbereichs-Backup wahlen)ROLLFORWARD . . .

K. Schmidt 5. Backup & Recovery

Hochverfugbarkeit

Wiederherstellung der Datenbank mit einer Teilmengeder Tabellenbereiche

Katalogtabellenbereich muss wiederhergestellt werdenRESTORE DB <dbname> REBUILD WITH TABLESPACE

(<tablespacename>) TAKEN AT <timestamp>

oder

RESTORE DB <dbname> REBUILD WITH ALL TABLESPACES IN

DATABASE EXCEPT (<tablespacename>) TAKEN AT <timestamp>

ROLLFORWARD . . .nicht wiederhergestellte Tabellenbereiche imRESTORE PENDING-ZustandDatenbank ist (normal) verwendbar

K. Schmidt 5. Backup & Recovery

Hochverfugbarkeit

Wiederherstellung aus Online-Backup mit ProtokollenProtokolle extrahieren

RESTORE DB <dbname> REBUILD WITH ALL TABLESPACES IN

DATABASE TAKEN AT <timestamp> LOGTARGET <pathtologs>

extrahierte Protokolle anwenden

ROLLFORWARD DB <dbname> TO END OF LOGS OVERFLOW LOG

PATH (<pathtologs>) [AND COMPLETE]

K. Schmidt 5. Backup & Recovery

Zusammenfassung

ProtokollierungUmlauf- und Archivprotokollierung

BackupDatensicherungonline oder offlinevollstandig oder aktualisierendDatenbank oder einzelne Tabellenbereiche

RecoveryEinspielen von BackupsWiederherstellen mit Hilfe von Archivprotokollen

HochverfugbarkeitBackup und Recovery einzelner Tabellenbereiche

K. Schmidt 5. Backup & Recovery