5 1 0: SAP HANA Protokollsicherungen und Sicherungspunkte (Savepoints)

From SEPsesam
This page is a translated version of the page 5 1 0:SAP Hana Logbackup and Savepoints and the translation is 100% complete.
Other languages:


Docs latest icon.png Willkommen in der aktuellsten Version der SEP sesam Dokumentation 5.1.0 Apollon. Frühere Versionen der Dokumentation finden Sie hier: Documentation Archiv.


Übersicht


Dieser Artikel beschreibt die Hintergründe und Auswirkungen der standardmäßigen Behandlung von Protokollbereichen in SAP HANA. Da es sich hierbei größtenteils um Wissen von Datenbankadministratoren (DBA) handelt, übernimmt die SEP AG keine Verantwortung für die technische Korrektheit des Inhalts dieser Seite. Wir haben uns bemüht, die richtigen Informationen zusammenzustellen.

Sobald ein Protokollsegment voll ist und ein neues angelegt wird, wird der automatische Protokollsicherungsmechanismus von der Datenbank ausgelöst. Dies kann nicht verhindert werden und ist ein erzwungenes Verhalten, um sicherzustellen, dass die Datenbank die Ausführung von Transaktionen nicht aufgrund von Platzmangel im Transaktionsprotokoll abbrechen muss. Aus der Sicht der Sicherung bedeutet dies, dass eine Protokollsicherung immer automatisch erfolgt, wenn ein Protokollsegment abgeschlossen ist.

SAP HANA Sicherungspunkte

Wie bereits erwähnt, befinden sich alle Datenbankinhalte im Hauptspeicher des/der Server. Dies würde im Falle einer Systemabschaltung zu schwerwiegenden Datenverlusten führen, da der Arbeitsspeicher ein fluktuierender Speichertyp ist und bei einem Spannungsabfall seinen Zustand verliert. Um dies zu verhindern und die gesamte Datenbank beständig zu machen, schreibt SAP HANA in regelmäßigen Abständen einen Zustand der In-Memory-Datenbankdaten auf die Festplatte.

Dieser Vorgang wird als Sicherungspunkte (Savepoint) bezeichnet und erfolgt standardmäßig alle 5 Minuten. Der Unterschied zwischen einem Sicherungspunkt und den Transaktionsprotokollen besteht darin, dass ein Sicherungspunkt den aktuellen Stand der Daten ohne Historie enthält, während das Transaktionsprotokoll die Historie der Transaktionen seit dem letzten Sicherungspunkt bzw. der letzten Aktualisierung der Datendatei enthält.

SAP HANA Transaktionsprotokollbereich

SAP HANA als In-Memory-Datenbank hält alle Datenbankinhalte im RAM. Daher werden dort auch die Transaktionen ausgeführt. Um sicherzustellen, dass die Daten im Falle eines Ausfalls (sei es eine geplante Wartung oder nur ein Stromausfall) erhalten bleiben, schreibt SAP HANA die Transaktionen gleichzeitig in den Protokollbereich der Festplatte. Weitere Informationen zu dieser Funktion finden Sie in der SAP HANA Dokumentation oder auf diesem Blog.

Die Datenbank verwaltet ihr Transaktionsprotokoll in so genannten Protokollsegmenten, wie im verlinkten Artikel beschrieben. Ein Protokollsegment ist eine Datei mit einer durch die Konfiguration festgelegten Größe (Standard: 1 GB), die die Transaktionen in einem Bereich von Transaktionsnummern enthält. Alle Segmente zusammen bilden den Protokollbereich. Sobald ein Protokollsegment seine konfigurationsdefinierte Grenze erreicht hat, wird ein neues Segment von der Datenbank geöffnet, solange noch genügend Platz in der konfigurationsdefinierten Größe des gesamten Protokollbereichs vorhanden ist. Weitere Informationen über Protokollsegmente finden Sie hier. Dieser Mechanismus ist nicht zu verwechseln mit dem Prinzip des Datenbank-Sicherungspunkts.

Die folgende Abbildung zeigt das Prinzip des Protokollbereichs mit seinen Segmenten und Schwellenwerten:

Hanalogarea.png


Sicherung des Transaktionsprotokolls

Sobald ein Protokollsegment voll ist und ein neues angelegt wird, wird der automatische Protokollsicherungsmechanismus von der Datenbank ausgelöst. Dies kann nicht verhindert werden und ist ein erzwungenes Verhalten, um sicherzustellen, dass die Datenbank die Ausführung von Transaktionen nicht wegen Platzmangels im Transaktionsprotokoll abbrechen muss. Aus der Sicherungssicht bedeutet dies, dass eine Protokollsicherung immer automatisch erfolgt, wenn ein Protokollsegment abgeschlossen ist. Die Datenbank versucht außerdem, eine Protokollsicherung durchzuführen, wenn die Größe des Protokollbereichs als Summe (alle Transaktionsprotokolle seit dem letzten Sicherungspunkt) einen bestimmten Schwellenwert überschreitet. Dies ist ein ziemlich ernster Status, denn wenn die Protokollsicherungen in diesem Fall häufig fehlschlagen, wird die Datenbank bald keine Datenbanktransaktionen mehr ausführen (zumindest keine schreibenden Transaktionen) und der Betrieb wird ähnlich wie bei einer Downtime beeinträchtigt.

Ein weiteres Ereignis, bei dem eine Protokollsicherung stattfindet, ist die konfigurierbare maximale Zeit zwischen automatischen Protokollsicherungen. Dies kann über den SAP HANA global.ini Persistenz-Konfigurationsabschnitt konfiguriert werden und ist auch grafisch über das SAP HANA Studio oder DBA Cockpit konfigurierbar. Der Standardwert ist 15 Minuten, was bedeutet, dass auch wenn keine neuen Transaktionen übertragen wurden oder ein Protokollsegment abgeschlossen wurde, die Transaktionen gesichert werden und ein neues Protokollsegment erstellt wird. Daher kann und sollte der Wert auf der Grundlage des Recovery Point Objective (RPO) und der Anzahl der Datenbanktransaktionen pro Zeit angepasst werden. Zusammenfassend können folgende Ereignisse dazu führen, eine Protokollsicherung auszulösen:

  • Das Protokollsegment ist voll.
  • Der Schwellenwert für die Größe des Protokollbereichs ist erreicht.
  • Die eingestellte Zeit ist abgelaufen (Standard: 15 Minuten).

Die Datenbank wird immer den konfigurierten Weg verwenden, um eine Protokollsicherung durchzuführen. Der Zieltyp wird ebenfalls in der Datenbankkonfiguration definiert, die wie im allgemeinen Leitfaden zur SAP HANA-Sicherung mit SEP sesam beschrieben, erreicht werden kann.

Relevante Konfigurationsabschnitte

Um SAP HANA und die Handhabung von Sicherungspunkten und/oder Protokollbereichen an Ihre Bedürfnisse anzupassen, sollten Sie sich die folgenden Abschnitte der SAP HANA-Konfiguration ansehen:

Protokollmodus

Für Systemdatenbanken:

nameserver.ini
Persistenz
log_mode

Für Tenant-Datenbanken:

global.ini
Persistenz
log_mode

Mögliche Werte sind:

  • normal
  • overwrite (überschreiben)

Seien Sie sich bewusst, was Sie tun, wenn Sie den Protokollmodus ändern. Dies kann dazu führen, dass Ihre Datenbank nicht mehr rückgesichert werden kann, da eine Änderung des log_mode auf überschreiben nicht dazu führt, dass die Protokollsegmente nach Beendigung gesichert werden, sondern mit neueren Transaktionen überschrieben werden. Es wird daher dringend empfohlen, in der Produktion nur log_mode normal zu verwenden. In Entwicklungs- oder Testumgebungen (wenn keine Protokollsicherung benötigt wird) kann es jedoch eine nützliche Einstellung sein. Nach der Änderung des log_mode Parameters muss die Datenbank neu gestartet werden.

Intervallmodus für die Protokollsicherung

Dies bietet sich an, wenn die Anzahl der Transaktionen eher vorhersehbar ist und Sie (als DBA) sicherstellen können, dass der Protokollbereich nicht innerhalb einer bestimmten Zeitspanne sein Limit erreicht. Wenn Sie Protokollsicherungen in einer zeitlich besser strukturierten Weise durchführen wollen, können Sie den so genannten Protokollsicherungsintervallmodus ändern. Die Einstellung ist hier zu finden:
Für Systemdatenbanken:

nameserver.ini
backup
log_backup_interval_mode

Für Tenant-Datenbanken:

global.ini
backup
log_backup_interval_mode

Mögliche Werte sind:

  • immediate (sofort)

Protokollsegmente werden sofort nach Abschluss eines Protokollsegments oder nach Erreichen des konfigurierten Service-Timeouts gesichert. Dies ist die Standardeinstellung und für die meisten Umgebungen sinnvoll, da sie die größte Flexibilität und das geringste Risiko einer Überlastung der Datenbank aufgrund eines vollen Protokollbereichs bietet.

  • service

Protokollsegmente werden unabhängig von ihrem Status (writing, closed oder truncated) nach Erreichen des konfigurierten Service-Timeouts gesichert. Sie können diese Einstellung verwenden, wenn Sie die Protokollsicherungen zu festen Zeiten benötigen. Dies kann sich jedoch auf die Recovery Point Objectives (RPOs) auswirken, da die Transaktionen erst nach bestimmten Zeitintervallen gesichert werden. Zu bedenken ist, dass der potenzielle Verlust von Transaktionen die konfigurierte Zeitüberschreitung des Protokollsicherungsdienstes um das Doppelte übersteigen kann.

Sicherungspunkt-Intervall-Konfiguration

Standardmäßig schreibt SAP HANA seine geänderten Datenbankinhalte alle 5 Minuten auf die Festplatte. Wenn Sie dies ändern möchten, verwenden Sie diesen Konfigurationsparameter:

global.ini
persistence
savepoint_interval_s

Der Wert gibt die Zeitspanne zwischen zwei Sicherungspunkten in Sekunden an.

SEP Warning.png Achtung
Eine Erhöhung dieses Wertes wirkt sich auf die Startzeit von SAP HANA aus und kann den Datenbankzustand nach einem Neustart der Datenbank beeinflussen. Der Höchstwert für diesen Parameter beträgt 7200 Sekunden.

Ein typisches Ziel für die Anpassung dieses Wertes kann die Optimierung der Laufzeitleistung sein, da mehr Festplattenleistung für die Aufzeichnung von Datenbanktransaktionen und nicht für die Erstellung von Sicherungspunkten verwendet werden kann.


Siehe auch

SAP HANA Sicherung

Copyright © SEP AG 1999-2024. Alle Rechte vorbehalten.
Jede Form der Reproduktion der Inhalte dieses Benutzerhandbuches, ganz oder in Teilen, ist nur mit der ausdrücklichen schriftlichen Erlaubnis der SEP AG gestattet. Bei der Erstellung dieses Benutzerhandbuches wurde mit größtmöglicher Sorgfalt gearbeitet, um korrekte und fehlerfreie Informationen bereit stellen zu können. Trotzdem kann die SEP AG keine Gewähr für die Richtigkeit der Inhalte dieses Benutzerhandbuches übernehmen.