Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 (Deutsch) » SQL Remote » SQL Remote-Systeme verwalten

 

Eine konsolidierte Datenbank manuell wiederherstellen

Stellen Sie eine konsolidierte Datenbank wieder her, indem Sie jedes Transaktionslog in der Datenbank anwenden.

Voraussetzungen

Sie müssen das BACKUP DATABASE-Systemprivileg haben.

Erstellen Sie eine Kopie der Datenbank und der Transaktionslogdatei. In dieser Prozedur wird angenommen, dass frühere Sicherungen der Datenbankdatei erstellt wurden und verfügbar sind, zum Beispiel auf Band.

 Aufgabe
  1. Erstellen Sie ein temporäres Verzeichnis.

  2. Stellen Sie die aktuellste Sicherung der Datenbankdatei (.db) und nicht der Transaktionslogdatei vom Band in einem temporären Verzeichnis wieder her.

    Im temporären Verzeichnis führen Sie Folgendes durch:

    1. Starten Sie die Sicherungskopie der Datenbank.

    2. Wenden Sie die alten Transaktionslogs unter Verwendung der Befehlszeilenoption -a an.

    3. Fahren Sie die Datenbank herunter.

    4. Starten Sie die Datenbank mit dem aktuellen Transaktionslog und der Befehlszeilenoption -a, um die Transaktionen anzuwenden und die Datenbankdatei auf den letzten Stand zu bringen.

    5. Fahren Sie die Datenbank herunter.

    6. Sichern Sie die Datenbank.

  3. Kopieren Sie die Datenbank in das Produktionsverzeichnis.

  4. Starten Sie die Datenbank.

    Jede neue Aktivität wird an das aktuelle Transaktionslog angefügt.

Ergebnisse

Die konsolidierte Datenbank wird wiederhergestellt.

Beispiel

Angenommen, Sie haben eine konsolidierte Datenbankdatei namens c:\dbdir\cons.db, eine Transaktionslogdatei c:\dbdir\cons.log und eine Transaktionslog-Spiegeldatei d:\mirdir\cons.mlg.

Nehmen wir überdies an, dass Sie vollständige Sicherungen wöchentlich und inkrementelle Sicherungen täglich durchführen, wobei Sie den folgenden Befehl verwenden:

dbbackup -c "UID=DBA;PWD=sql" -r -n -t e:\backdir

Dieser Befehl sichert das Transaktionslog cons.log im Verzeichnis e:\backdir. Die Transaktionslogdatei wird dann in datexx.log umbenannt, wobei date das aktuelle Datum und xx die nächste Buchstabenserie in der Sequenz ist, und ein neues Transaktionslog wird gestartet. Das Verzeichnis e:\backdir wird dann mit einem Dienstprogramm anderer Hersteller gesichert.

In diesem Szenario würden Sie den SQL Remote-Nachrichtenagenten (dbremote) mit dem optionalen Verzeichnis ausführen, sodass auf die umbenannten Transaktionslogdateien verwiesen wird. Zum Beispiel:

dbremote -c "UID=DBA;PWD=sql" c:\dbdir

Am dritten Tag nach der wöchentlichen Sicherung wird die Datenbankdatei durch einen fehlerhaften Plattenspeicherblock beschädigt. Führen Sie die folgenden Schritte aus:

  1. Sichern Sie die Transaktionslog-Spiegeldatei d:\mirdir\cons.mlg.

  2. Erstellen Sie ein temporäres Verzeichnis, in dem Sie die Wiederherstellung durchführen. In diesem Beispiel ist es das Verzeichnis c:\recover.

  3. Stellen Sie die aktuellste Sicherung der Datenbankdatei cons.db mit c:\recover\cons.db wieder her.

    dbeng16 -a c:\dbdir\dateAA.log c:\recover\cons.db
    dbeng16 -a c:\dbdir\dateAB.log c:\recover\cons.db
  4. Wenden Sie die umbenannten Transaktionslogs in der richtigen Reihenfolge an, und zwar folgendermaßen:

  5. Kopieren Sie das aktuelle Transaktionslog d:\mirdir\cons.log in das Wiederherstellungsverzeichnis, sodass c:\recover\cons.log entsteht.

    dbeng16 c:\recover\cons.db
  6. Starten Sie die Datenbank mit dem folgenden Befehl:

  7. Fahren Sie den Datenbankserver herunter.

  8. Sichern Sie die wiederhergestellte Datenbank und das Transaktionslog von c:\recover.

  9. Kopieren Sie die Dateien von c:\recover in die entsprechenden Produktionsverzeichnisse:

    • Kopieren Sie c:\recover\cons.db in c:\dbdir\cons.db.

    • Kopieren Sie c:\recover\cons.log in c:\dbdir\cons.log und d:\mirdir\cons.mlg.


 Siehe auch