StrategicManagement 2012WS Geiger TUTL CaseStudies (Verschoben)
Datenbankadministration - 5. Backup & · PDF file• f¨ur DB2 zugreifbar • liegen...
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
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
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
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 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
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