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.