Skip to Main Content

Breadcrumb

Schaltsekunde am 30. Juni 2015

Schaltsekunde - werden wieder viele Systeme stehen?

In der Nacht vom 30. Juni auf 1. Juli wird es um Mitternacht wieder eine Schaltsekunde - die 25. seit deren Einführung - geben. Der Grund für die Schaltsekunden ist die Tatsache, dass unsere Erde nicht 100% gleichmäßig rotiert, dadurch wird die Zeit alle 3-4 Jahre mit Hilfe der Schaltsekunden an die Wirklichkeit angeglichen. Weitere Details dazu finden Sie unter anderem auf Wikipedia.

Warum soll uns das interessieren?

Bei der letzten Schaltsekunde im Jahre 2012 gab es bei vielen Systemen - speziell bei Linux, VMware, Solaris aber auch anderen - Probleme, die oft nur mit einem Reboot behoben werden konnten. Der Grund war, dass einige Prozesse mit 100% CPU utilisation gelooped haben und nicht terminierbar waren. Damit Ihnen dies heuer erspart bleibt, haben wir hier die wichtigsten Informationen rund um die Oracle Datenbanken zusammen getragen. Weiter unten im Artikel finden Sie einen Workaround, der für alle Produkte gilt!

Linux - bis inkl. Kernel 2.26.39

Alle neueren Kernel können damit umgehen, das bedeutet aber nur, dass der Kernel selbst kein Problem mehr hat. Software, die auf dem Linux Betriebssystem läuft, kann sehr wohl ein Problem bekommen.

Im Fall von Oracle Enterprise Linux bedeutet dies, dass man auf eine Version NEUER als OEL6up2 upgraden muss. Da OEL und REDHAT auf dem gleichen Code basieren, gilt das gleiche für RedHat Nutzer. Bei anderen Linux Distributionen muss man einfach entsprechend auf eine neuere Version upgraden, solange der Kernel noch zu alt ist.

Referenz: Oracle Doc ID 1472421.1 Leap Second Hand - CPU Can Be Seen at 100%.

Oracle VM

Oracle VM ist bis inkl. Version 3.1.1 betroffen. Hier muss man ein Upgrade auf eine entsprechend höhere Oracle VM Version durchführen.

Referenz: Oracle Doc ID 1472421.1 Leap Second Hand - CPU Can Be Seen at 100%.

Solaris bis inkl. Solaris 10

Hier ist es von der Solaris Version abhängig, wobei das Problem anscheinend nur in Zusammenhang mit der Oracle Clusterware bzw. Java Applikationen auftritt. Weiter Informationen finden Sie hier:

Referenz: Oracle Doc ID 759143.1 NTP leap second event causing Oracle Clusterware node reboot.

AIX, HP-UX und andere Betriebssysteme

Grundsätzlich sind (waren) auch diese von dem Thema betroffen - auch hier hilft der Workaround

VMware

Laut VMware ist ESX/ESXi nicht betroffen.

Referenz: VMware KB 1007342: Leap Seconds and ESX/ESXi.

Oracle Datenbanken

Laut Oracle ist die letzte betroffene Datenbank Version die Version 9.2.0.1 unter Windows. Auf allen anderen Platformen gibt es keine Probleme seit 8.1.7.4. Alle aktuellen Datenbankversionen sollen von dem Problem somit nicht betroffen sein.

Referenz: Oracle Doc ID 730795.1 Leap seconds (extra second in a year) and impact on the Oracle database.

Allerdings gibt es dazu eine Einschränkung: Weder der Datentype DATE noch TIMESTAMP erlauben das Einfügen von Sekundenwerten außerhalb von 0 und 59 --> somit kann man keinen Datensatz mit der Schaltsekunde einfügen. Die Datenbank quittiert einen solchen Versuch mit dem Fehler ORA-01852: seconds must be between 0 and 59. Leider gibt es von Oracle keinerlei Plan die Schaltsekunde in der Datenbank zu unterstützen. Der dazugehörige Bug steht seit Oktober 2006 auf "Suspended"...

Referenz: Oracle Doc 1553906.1 Insert leap seconds into a timestamp column fails with ORA-01852,
Bug 4767647 : LEAP SECONDS CAN BE INSERTED IF APPLYING TZDATA-2005M-1.

Oracle Clusterware

Die Oracle Clusterware ist ist sowohl auf Linux als auch auf Solaris bis inkl. 11.1.0.7 betroffen. Neuere Clusterware Versionen sollen nicht betroffen sein, es gibt aber dafür keine finale Bestätigung seitens Oracle.

Referenz: Oracle Doc ID 759143.1 NTP leap second event causing Oracle Clusterware node reboot.

Oracle Enterprise Manager - alle Versionen bis inkl. Cloud Control 12c

Beim Oracle Enterprise Manager beginnend mit 10.2.0.5 bis zur aktuellen Version sowie bei den Agents kann es zu dem Problem kommen, dass einige oder alle JAVA Prozesse 100% der CPU konsumieren. Sollte dies auftreten hilft nur ein Reboot des betroffenen Systems! Leider geht aus den Informationen seitens Oracle nicht 100% hervor, ob dies nur in Zusammenhang mit einem betroffenen Betriebssystem oder unabhängig davon auftritt.

Referenz: Oracle Doc ID 1472651.1 Enterprise Manager Management Agent or OMS CPU Use Is Excessive near Leap Second Additions on Linux.

Workaround

Da in allen Fällen der Auslöser die Schaltsekunde ist, die über die Weltweiten NTP Services verteilt wird, gibt es einen sehr einfachen Workaround: Deaktivieren Sie NTP für diesen Zeitraum! Hier finden Sie ein Beispiel für Linux Betriebssysteme:

Kurz vor Mitternacht am 30. Juni als root:

Sofern Ihre Systeme nicht zu schnell die Zeit verlieren, können Sie dies schon am 30. Juni 2015 unter Tag durchführen.

Kurz vor Mitternacht am 30. Juni als root:

/etc/init.d/ntpd stop

Kurz nach Mitternacht als root:

Mit den folgenden Befehlen holen Sie die aktuelle Zeit und reaktivieren den NTP Service wieder:

/usr/sbin/ntpdate <hier_den_ntp_server_eintragen_den_sie_sonst_auch_nutzen>

/etc/init.d/ntpd start

Zusammenfassung

Wer auf einem aktuellen Betriebssystem unterwegs ist, sollte keinerlei Probleme vom Betriebsystem her bekommen, es besteht aber eine geringe Gefahr bei der Oracle Clusterware, Enterprise Manager und Agents und vor allem bei der Datenbank, wenn man versucht, Daten mit der Schaltsekunde in DATE oder TIMESTAMP Variablen einzufügen. Um ganz sicher zu gehen, sollte man den NTPD für den kritischen Zeitraum einfach deaktivieren.