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

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - Datenbankadministration » Datenbank starten und Verbindung mit ihr herstellen » Mit Datenbankdateien arbeiten » Das Transaktionslog

 

Hinweise zum Checkpoint-Log

Die Datenbankdatei besteht aus Seiten, die Abschnitten mit fester Größe auf der Festplatte entsprechen. Das Checkpoint-Log befindet sich am Ende der Datenbankdatei und wird im System-DBSpace gespeichert. Seiten werden während einer Sitzung erforderlichenfalls dem Checkpointlog hinzugefügt, und das gesamte Checkpointlog wird am Ende der Sitzung gelöscht.

Bevor eine Seite aktualisiert (somit dirty) wird, führt der Datenbankserver immer folgende Maßnahmen durch:

  • Er liest die Seite in den Speicher, wo sie im Datenbankcache untergebracht wird.

  • Er stellt eine Kopie der Originalseite her. Diese kopierten Seiten sind das Checkpointlog.

Der Datenbankserver liest Seite A in den Speicher, wo sie im Cache gespeichert wird. Die Seite A wird dann dem Checkpoint-Log hinzugefügt.

Änderungen der Seite werden in die Kopie im Cache eingetragen. Aus Performancegründen werden sie nicht sofort in die Datenbankdatei auf der Festplatte geschrieben.

Änderungen der Seite A werden in die Kopie im Cache übernommen, die jetzt Seite B heißt. Die Änderungen an der Seite A werden im Transaktionslog protokolliert.

Wenn der Cache voll ist, kann die geänderte Seite auf die Festplatte geschrieben werden. Die Kopie im Checkpointlog bleibt aber unverändert.

Seite B wird in die Datenbank geschrieben, aber die Kopie der Seite A bleibt unverändert im Checkpoint-Log. Das Transaktionslog enthält die Änderungen an Seite A seit dem Checkpoint.
Hinweise zu Checkpoints

Ein Checkpoint ist ein Zeitpunkt, an dem alle nicht festgeschriebenen Seiten (Dirty Pages) auf die Festplatte geschrieben werden und der daher einen bekannten konsistenten Zustand der Datenbank auf der Festplatte darstellt. Nachdem ein Checkpoint gesetzt wurde, wird der Inhalt des Checkpointlogs bereinigt. Die leeren Checkpoint-Logseiten bleiben während der laufenden Sitzung im Checkpointlog und können für neue Checkpoint-Logdaten wiederverwendet werden. Wenn das Checkpointlog größer wird, ist dies auch bei der Datenbankdatei der Fall.

Wenn ein Checkpoint gesetzt wird, befinden sich alle Daten in der Datenbank auf der Festplatte in der Datenbankdatei. Die Informationen in der Datenbankdatei entsprechen denen des Transaktionslogs. Während der Wiederherstellung wird die Datenbank erst bis zum jüngsten Checkpoint wiederhergestellt, danach werden die Änderungen nach diesem Checkpoint übernommen.

Das komplette Checkpointlog, einschließlich aller leeren Checkpoint-Logseiten, wird am Ende jeder Sitzung gelöscht. Das Löschen des Checkpointlogs führt dazu, dass die Datenbank kleiner wird.

Der Datenbankserver kann einen Checkpoint initiieren und während seiner Durchführung andere Vorgänge ausführen. Wenn allerdings ein Checkpoint bereits durchgeführt wird, müssen alle Vorgänge wie ALTER TABLE oder CREATE INDEX, die einen neuen Checkpoint initiieren, warten, bis der aktuelle Checkpoint beendet wird.

Siehe auch