Das SCN Headroom Problem – Ist meine Oracle Datenbank in Gefahr?

Die SCN (System Change Number) definiert den Zeitstrahl jeder Oracle-Datenbank. Sie wird mit jeder abgeschlossenen Transaktion inkrementiert und ist so groß definiert, dass sie in absehbarer Zeit nicht an ihr Maximum kommen sollte.

Die SCN erlaubt 281 Billionen Werte. Oracle sieht die aktuelle SCN als unkritisch an, wenn sie den Wert nicht überschreitet, der der Anzahl Sekunden seit 1988 multipliziert mit 16384 nicht überschreitet. Dieser Wert wird als maximale SCN angesehen. Die maximale SCN wird etwa für die nächsten 500 Jahre nicht überlaufen.

Die Differenz zwischen dem aktuellen Wert und der maximalen SCN wird als SCN Headroom bezeichnet – sozusagen die Luft nach oben. Praktisch jede existierende Datenbank vergrößert mit jeder Sekunde ihren SCN Headroom.

Wo liegt nun die Gefahr? Diese liegt in dem Verhalten begründet, dass Datenbanken sich auf die größte beteiligte SCN gleichziehen, wenn eine verteilte Transaktion abgeschlossen wird. Der hier beteiligte Code hat wohl mehrere Bugs, so dass die SCN springen kann. Somit besteht die Gefahr, dass der SCN Headroom kleiner wird bzw. verschwindet. Da eine Oracle Datenbank jede SCN ablehnt, die die maximale SCN überschreitet, könnten hierdurch größere Probleme entstehen.

Alle Bugs im Zusammenhang mit dem SCN Headroom sind im aktuellen CPU (Critical Patch Update) behoben. Bei der Planung zur Patch-Installation ist zu beachten, dass nicht nur die wichtigsten Produktionsdatenbanken zu beachten sind, sondern auch alle anderen Datenbanken, die mit diesen verteilte Transaktionen haben.

Um eine Vorstellung davon zu bekommen, ob eine Datenbank ein SCN-Headroom-Problem hat, gibt es von Oracle Support ein Skript (scnhealthcheck.sql), das als Patch 13498243 ausgeliefert wird. Dieser Patch muss nicht unbedingt auf jeder Datenbank installiert werden; es reicht, das Skript unter SQL*Plus auszuführen. Als Resultat gibt das Skript aus, ob der SCN Headroom OK ist, oder ob eine oder mehrere Maßnahmen empfohlen werden. Diese können aus der Installation des aktuellen CPUs und dem Setzen von Parametern bestehen.

Neben dem Skript sind auf Oracle Support weiterer Informationen zu bekommen, z.B. in Dokument 1393363.1.

Ein Gedanke zu „Das SCN Headroom Problem – Ist meine Oracle Datenbank in Gefahr?

  1. Pingback: SCN-Stress für verteilte Transaktionen / DB-Links in Oracle 11.1.0.7, 11.2.0.3 und 12.1.0.1 ab Ende Juni 2019 - Herrmann & Lenz BlogHerrmann & Lenz Blog

Schreibe einen Kommentar