Anfang des Inhaltsbereichs

Vorgehensweisen Wiederherstellen der Datenbankinstanz Dokument im Navigationsbaum lokalisieren

Verwendung

Nach einem Hardware- oder Datenbankfehler stellen Sie die Daten in der betreffenden Datenbankinstanz wieder her, indem Sie die Daten- und gegebenenfalls Log-Sicherungen dieser Datenbankinstanz wieder einlesen.

Sie zeigen zunächst die Sicherungshistorie an und ermitteln, welches die neueste vollständige Datensicherung ist (Siehe: Strukturlinkbackup_history_open, Strukturlinkbackup_history_list) und welche inkrementellen Datensicherungen noch danach angefertigt wurden. Werten Sie dazu die Angaben in den Zeilen der Sicherungen aus, aus denen hervorgeht, wann und von welcher bis zu welcher Seite die jeweilige Sicherung angefertigt wurde. Die neuesten Einträge stehen am Ende der Datei.

Als Nächstes lesen Sie die vollständige und danach die inkrementellen Datensicherungen ein (Siehe: Strukturlinkrecover_start). Nach jeder eingelesenen Datensicherung erhalten Sie angezeigt, welche Seite nach dieser Datensicherung als nächste einzulesen ist.

Nach dem Einlesen der Datensicherungen zeigen Sie die Restart-Information an und ermitteln, ob die Datenbankinstanz restartfähig ist und ab welcher Seite die Log-Einträge im Log-Bereich noch vorhanden sind (Siehe Strukturlinkdb_restartinfo).

Wenn sich die nach einer Datensicherung als nächste einzulesende Seite noch im Log-Bereich der Datenbankinstanz befindet, müssen Sie nun nur noch die Datenbankinstanz neu starten (Siehe: Strukturlinkdb_restart). Das System liest die Log-Einträge aus dem Log-Bereich und stellt so den letzten konsistenten Datenbankzustand wieder her. Wenn Sie die Datenbankinstanz nicht vollständig bis zum letzten konsistenten Zustand sondern nur bis zu einem bestimmten früheren Zeitpunkt wiederherstellen wollen, geben Sie diesen Zeitpunkt als Option beim Restart an.

Wenn die nach einer Datensicherung einzulesende Seite kleiner ist, als die kleinste Seitennummer im Log-Bereich, dann ermitteln Sie in der Sicherungshistorie, in welcher Sicherung diese Seite enthalten ist. Lesen Sie die entsprechende Daten- oder Log-Sicherung und fortlaufend chronologisch alle nachfolgend erstellten Sicherungen bis einschließlich jener ein, die mindestens den Vorgänger der kleinsten Seitennummer im Log-Bereich enthält (Siehe: Strukturlinkrecover_replace). Sobald diese Seite eingelesen wurde, beendet das System das Einlesen der Sicherung und startet die Datenbankinstanz unter Verwendung der noch im Log-Bereich stehenden Einträge (Restart).

Siehe auch:

Einlesen der Log-Sicherungen bis zu einem bestimmten Zeitpunkt

 

Sie lesen die erste Sicherung mit Hilfe des DBM-Kommandos recover_start ein. Alle folgenden Sicherungen lesen Sie mit dem DBM-Kommando recover_replace ein.

Falls Sie aus irgendeinem Grunde das Einlesen der Sicherungen unterbrechen oder Ihnen bei der Angabe des Folgekommandos ein Fehler unterlaufen sollte, überführt das System die Datenbankinstanz sofort in den Betriebszustand OFFLINE.

Sie müssen dann die Datenbankinstanz erneut in den Betriebszustand ADMIN überführen und die Datenbanksitzung wieder eröffnen. Anschließend führen Sie erneut db_restartinfo aus, um sich davon zu überzeugen, welche der eingelesenen Seiten bereits persistent im Datenbereich abgelegt wurden und welche gegebenenfalls noch einmal eingelesen werden müssen. Fahren Sie in diesem Fall mit dem Einlesen der Sicherungen fort, indem Sie erneut mit recover_start die gemäß Restart-Information vom System erwartete erste Seite und mit recover_replace alle folgenden Sicherungen einlesen.

 

Zu den Voraussetzungen siehe Database Manager CLI, Strukturlinkrecover_start, Strukturlinkrecover_replace

Siehe auch:

Restart-Information und Sicherungshistorie für das Einlesen von Sicherungen auswerten

Konzepte des Datenbanksystems, StrukturlinkSichern und Wiederherstellen, StrukturlinkDatenbankinstanz wiederherstellen

Glossar, StrukturlinkSicherungshistorie

Szenario

Sie wollen die Datenbankinstanz nach einem Hardwarefehler im Datenbereich wiederherstellen.

Für die Simulation dieses Beispiels, muss die Datenbankinstanz über mindestens 2 Data-Volumes verfügen. Sie können alle vorhandenen Volumes mit dem DBM-Kommando Strukturlinkparam_getvolsall anzeigen. Legen Sie gegebenenfalls ein weiteres Data-Volume mit dem Namen DISKD0002 unter dem Pfad c:\documents and settings\all users\application data\sdb\data\demodb\data an (Siehe: Vergrößern einer Datenbankinstanz, Abschnitt Szenario 3).

Überführen Sie nun DEMODB in den Betriebszustand ADMIN. Simulieren Sie einen Hardwarefehler, indem Sie mittels Betriebssystemkommando das Data-Volume DISKD0002 löschen.

Die Datenbankinstanz befindet sich weiterhin im Betriebszustand ADMIN, alle vorher im Datenbereich vorhandenen Daten sind jedoch verloren. Die Datenbankinstanz muss wiederhergestellt werden.

Vorgehensweise

Im folgenden Beispiel sind die relevanten Werte der Ausgabe fett formatiert, die Interpretation dieser Werte ist als Kommentar gekennzeichnet (#).

Sicherungsinformationen anzeigen

Zeigen Sie zunächst die notwendigen Informationen über die vorhandenen Sicherungen an und werten Sie diese aus.

       1.      Aufrufen des Database Manager CLI im Sitzungsmodus, Anmelden als BenutzerOLEG mit dem Kennwort MONDAY, Herstellen der Verbindung zur Datenbankinstanz DEMODB:

>dbmcli -u OLEG,MONDAY -d DEMODB

dbmcli on DEMODB>

       2.      Holen der Sicherungshistorie:

dbmcli on demodb>backup_history_open

OK

       3.      Anzeigen der Sicherungshistorie :

dbmcli on demodb>backup_history_list

OK

END

# Die neuste vollständige Datensicherung ist jene mit dem Label DAT_000000002. Diese muss zuerst eingelesen werden.

# Die nächste Seite muss 9531 sein:

|                                        |

43C7BBD1000B|DAT_000000002|SAVE WARM|2006-01-13 15:40:17|2006-01-13 15:40:17|200

6-01-13 15:40:17|2006-01-13 15:40:17|      9531|          |NO |DemoDataCompl

                                               |       384|         1|         0

# Die Seite 9531 ist in dieser Log-Sicherung mit dem Label LOG_000000007 enthalten, damit ist diese unmittelbar nach der vollständigen Datensicherung einzulesen.

# Dabei werden die Seiten 9531 -11828 eingelesen, nächste einzulesende Seite ist die 11829:

|                                        |

43C7BBE5000C|LOG_000000007|SAVE WARM|2006-01-13 15:40:23|2006-01-13 15:40:37|200

6-01-13 15:40:37|2006-01-13 15:40:38|      9531|     11828|   |DemoFileLog

                                               |      2096|         1|         0

# Die Seite 11829 ist in dieser Log-Sicherung mit dem Label LOG_000000008enthalten, damit ist diese unmittelbar nach der Log-Sicherung mit dem Label LOG_000000007 einzulesen.

# Dabei werden die Seiten 11829 - 14182 eingelesen, nächste einzulesende Seite ist die 14183:

|                                        |

43C7BC01000D|LOG_000000008|SAVE WARM|2006-01-13 15:40:42|2006-01-13 15:40:46|200

6-01-13 15:41:05|2006-01-13 15:41:06|     11829|     14182|   |DemoFileLog

                                               |      2152|         1|         0

# Die Seite 14183 ist in dieser Log-Sicherung mit dem Label LOG_000000009enthalten, damit ist diese unmittelbar nach der Log-Sicherung mit dem Label LOG_000000008 einzulesen.

# Dabei werden die Seiten 14183 – 14358 eingelesen, nächste einzulesende Seite ist die 14359:

|                                        |

43C7BC01000D|LOG_000000009|SAVE WARM|2006-01-13 15:40:46|2006-01-13 15:41:05|200

6-01-13 15:41:06|2006-01-13 15:41:07|     14183|     14358|   |DemoFileLog

                                               |       176|         1|         0

# Die Seite 14359 ist in dieser Log-Sicherung mit dem Label LOG_000000010enthalten, damit ist diese unmittelbar nach der Log-Sicherung mit dem Label LOG_000000009 einzulesen.

# Dabei werden die Seiten 14359 - 16712 eingelesen, nächste einzulesende Seite ist die 16713.

|                                        |

43C7BC24000E|LOG_000000010|SAVE WARM|2006-01-13 15:41:17|2006-01-13 15:41:21|200

6-01-13 15:41:40|2006-01-13 15:41:42|     14359|     16712|   |DemoFileLog

                                               |      2152|         1|         0

# Nachfolgend müssen chronologisch alle Log-Sicherungen einschließlich der mit dem Label LOG_000000013 eingelesen werden.

|                                        |

43C7BC24000E|LOG_000000011|SAVE WARM|2006-01-13 15:41:21|2006-01-13 15:41:25|200

6-01-13 15:41:42|2006-01-13 15:41:43|     16713|     19065|   |DemoFileLog

                                               |      2152|         1|         0

|                                        |

43C7BC24000E|LOG_000000012|SAVE WARM|2006-01-13 15:41:25|2006-01-13 15:41:40|200

6-01-13 15:41:43|2006-01-13 15:41:43|     19066|     19770|   |DemoFileLog

                                               |       656|         1|         0

# Die Log-Sicherung mit dem Label LOG_000000013 enthält die Seiten 19771 bis 22124 und damit den Vorgänger der in der Restart-Information ausgewiesen ersten Seite im Log-Bereich (21452).

# Das System wird beim Wiederherstellen diese Log-Sicherung vollständig einlesen. Die nachfolgenden Log-Sicherungen brauchen nicht mehr eingelesen zu werden, da die darin enthaltenen Seiten noch im Log-Bereich stehen und vom System aus dem Log-Bereich wiederhergestellt werden können.

|                                        |

43C7C497000F|LOG_000000013|SAVE WARM|2006-01-13 16:17:14|2006-01-13 16:17:17|200

6-01-13 16:17:43|2006-01-13 16:17:45|     19771|     22124|   |DemoFileLog

                                               |      2152|         1|         0

 

|                                        |

43C7C497000F|LOG_000000014|SAVE WARM|2006-01-13 16:17:17|2006-01-13 16:17:22|200

6-01-13 16:17:45|2006-01-13 16:17:46|     22125|     24478|   |DemoFileLog

                                               |      2152|         1|         0

 

|                                        |

43C7C497000F|LOG_000000015|SAVE WARM|2006-01-13 16:17:22|2006-01-13 16:17:43|200

6-01-13 16:17:46|2006-01-13 16:17:48|     24479|     26748|   |DemoFileLog

                                               |      2080|         1|         0

 

|                                        |

43C7C5240010|LOG_000000016|SAVE WARM|2006-01-13 16:17:45|2006-01-13 16:20:04|200

6-01-13 16:20:04|2006-01-13 16:20:05|     26749|     28510|   |DemoFileLog

                                               |      1616|         1|         0

|                                        |

Daten und Log-Einträge wiederherstellen

Sie verfügen nun über die Informationen zu den Sicherungen und können DEMODB wiederherstellen.

...

       1.      Überführen der Datenbankinstanz in den Betriebszustand ADMIN:

dbmcli on demodb>db_admin

OK

       2.      Aufbau einer Datenbanksitzung:

dbmcli on demodb>db_connect

OK

       3.      Einlesen der letzten vollständigen Datensicherung:

dbmcli on demodb>recover_start DemoDataCompl

OK

Returncode              0

Date                    20060117

Time                    00114627

Server                  GENUA

Database                DEMODB

Kernel Version          Kernel    7.6.00   Build 016-123-109-428

Pages Transferred       384

Pages Left              0

Volumes                 1

Medianame               DemoDataCompl

Location                Backups 2005\data\completeDataJan

Errortext

Label                   DAT_000000002

Is Consistent           true

First LOG Page          9531

# Nach der vollständigen Datensicherung erwartet das System die Log-Seite mit der Nummer 9531.

Last LOG Page

DB Stamp 1 Date         20060113

DB Stamp 1 Time         00154017

DB Stamp 2 Date

DB Stamp 2 Time

Page Count              362

Devices Used            1

Database ID             GENUA:DEMODB_20060113_153806

Max Used Data Page      0

       4.      Anzeigen der Restart-Information:

dbmcli on demodb>db_restartinfo

OK

Used LOG Page           28513

First LOG Page          21452

# Der Log-Bereich enthält noch alle Seiten der Nummern 21452 bis 28513. Für einen Restart der Datenbankinstanz müssen somit noch die Seiten 9531 bis 21451 aus Sicherungen eingelesen werden.

Restartable             1

# Die Datenbankinstanz ist restartfähig, d.h. der Log-Bereich ist unbeschädigt.

Id Restart Record       GENUA:DEMODB_20060113_153806

Id LOG Info             GENUA:DEMODB_20060113_153806

Consistent              1

       5.      Einlesen der Log-Sicherungen

                            a.      Einlesen der Log-Sicherung mit dem Label LOG_000000007:

dbmcli on demodb>recover_start DemoFileLog LOG 007

OK

Returncode              -8020

# Der Rückgabewert -8020 weist aus, dass die chronologisch nächste Sicherung mit Hilfe des Folgekommandos recover_replace eingelesen werden muss.

Date                    20060117

Time                    00143406

Server                  GENUA

Database                DEMODB

Kernel Version          Kernel    7.6.00   Build 016-123-109-428

Pages Transferred       2096

Pages Left              0

Volumes                 1

Medianame               DemoFileLog

Location                Backups 2005\data\logBackup.007

Errortext

Label                   LOG_000000007

Is Consistent

First LOG Page          9531

Last LOG Page           11828

DB Stamp 1 Date         20060113

DB Stamp 1 Time         00154023

DB Stamp 2 Date         20060113

DB Stamp 2 Time         00154037

Page Count              2297

Devices Used            1

Database ID             GENUA:DEMODB_20060113_153806

Max Used Data Page

 

                            b.      Einlesen der Log-Sicherung mit dem Label LOG_000000008 mit Hilfe des Folgekommandos recover_replace:

dbmcli on demodb>recover_replace DemoFileLog "C:\Documents and Settings\All Users\Application Data\sdb\data\wrk\DEMODB\Backups 2005\Data\logBackup" 008

OK

Returncode              -8020

Date                    20060117

Time                    00143406

Server                  GENUA

Database                DEMODB

Kernel Version          Kernel    7.6.00   Build 016-123-109-428

Pages Transferred       2152

Pages Left              0

Volumes                 1

Medianame               DemoFileLog

Location                C:\Documents and Settings\All Users\Application Data\sdb\data\wrk\DEMODB\Backups 2005\Data\logBackup.008

Errortext

Label                   LOG_000000008

Is Consistent

First LOG Page          11829

Last LOG Page           14182

DB Stamp 1 Date         20060113

DB Stamp 1 Time         00154042

DB Stamp 2 Date         20060113

DB Stamp 2 Time         00154046

Page Count              2353

Devices Used            1

Database ID             GENUA:DEMODB_20060113_153806

Max Used Data Page

 

                            c.      Einlesen der Log-Sicherung mit dem Label LOG_000000009 mit Hilfe des Folgekommandos recover_replace:

dbmcli on demodb>recover_replace DemoFileLog "C:\Documents and Settings\All Users\Application Data\sdb\data\wrk\DEMODB\Backups 2005\Data\logBackup" 009

OK

Returncode              -8020

Date                    20060117

Time                    00143406

Server                  GENUA

Database                DEMODB

Kernel Version          Kernel    7.6.00   Build 016-123-109-428

Pages Transferred       176

Pages Left              0

Volumes                 1

Medianame               DemoFileLog

Location                C:\Documents and Settings\All Users\Application Data\sdb\data\wrk\DEMODB\Backups 2005\Data\logBackup.009

Errortext

Label                   LOG_000000009

Is Consistent

First LOG Page          14183

Last LOG Page           14358

DB Stamp 1 Date         20060113

DB Stamp 1 Time         00154046

DB Stamp 2 Date         20060113

DB Stamp 2 Time         00154105

Page Count              175

Devices Used            1

Database ID             GENUA:DEMODB_20060113_153806

Max Used Data Page

 

                            d.      bis g: Einlesen der übrigen Log-Sicherungen mit den Labels LOG_000000010 - LOG_000000013 mit Hilfe des Folgekommandos recover_replace (siehe Abschnitte a – c).

# Wenn die letzte notwendige Log-Sicherung eingelesen ist und das Datenbanksystem damit über alle Seiten verfügt, deren Nummer kleiner als die erste Seite im Log-Bereich ist, dann liest es die übrigen Seiten selbsttätig aus dem Log-Bereich ein und überführt die Datenbankinstanz am Schluss in den Betriebszustand ONLINE.

Ergebnis

Die Datenbankinstanz DEMODB wurde wiederhergestellt, das manuell gelöschte Data-Volume wurde entsprechend der Informationen in der Datenbankparameterdatei wiederhergestellt und befindet sich an der ursprünglichen Stelle auf Ihrer Festplatte.

Alle vor dem Hardwarefehler im Daten- und Log-Bereich vorhandenen Seiten sind wieder in der Datenbankinstanz und Sie können darauf zugreifen.

Die Datenbankinstanz ist betriebsbereit und befindet sich im Betriebszustand ONLINE.

Ende des Inhaltsbereichs