Archiv der Kategorie: Unix

Schaltsekunde, Linux und Oracle

In wenigen Tagen ist es schon wieder soweit:
Am 1.7.2015 wird der Sekundenzeiger um 01:59:59 Uhr eine Sekunde länger stehenbleiben.

Auf Servern wird das u.U. anders gehandhabt: Hier kann es passieren, dass die UTC-Uhr 23:59:60 anzeigt. Wird so ein Datum in ein DATE-Feld eingefügt, führt das unter Oracle zu einem ORA-01852.
Schlimmer kann es noch bei älteren Linux-Versionen kommen, da kann das System schlicht stehen bleiben oder exzessiv CPU verbrauchen.

Maris Elsins von Pythian hat zwei ausführliche, englische Artikel zum Thema verfasst (1.: Welche Probleme entstehen können, 2.: Umgang mit diesen Problemen unter Linux). Daher liefere ich hier übersetzt nur

Die allerwichtigsten Maßnahmen für Linux in Kürze:

  • ntpd sollte mit der Option „-x“ laufen. Dadurch werden Zeitdifferenzen über einen längeren Zeitraum gestreckt („die Sekunden werden länger“), eine Schaltsekunde wird nicht benötigt.
    Alleine mit dieser Konfiguration können fast alle anderen Probleme umgangen werden.
  • file /etc/localtime“ sollte „no leap seconds“ zurückgeben. Sprich: das Betriebssystem ist nicht für das Einfügen einer Schaltsekunde konfiguriert.
  • Laut Oracle sind Kernel-Versionen von 2.4 bis 2.6.39 von Hängern betroffen. Ab Version 2.6.39-200.29.3 sind die bislang bekannten Bugs gefixt.

Weblinks

Advertisements

Linux Huge Pages: Schnellstart

If you’re not using HugePages, you’re doing it wrong!  (Mark J. Bobak)

Sie haben eine SGA von mehreren GB Größe, dazu mehrere Hundert Sessions auf der Datenbank? Ihr DB-Server läuft unter Linux, aber ohne Einsatz von HugePages? Dann verschenken Sie RAM und CPU-Leistung, und zwar nicht zu knapp!

Über Linux HugePages wurde schon viel geschrieben (s. Literaturliste unten), jedoch hauptsächlich auf Englisch und meist sehr ausgedehnt. Dieser Artikel soll die wichtigsten Fakten und Maßnahmen in Kürze aufzeigen.

Szenario

Ein Praxisbeispiel vorweg: Eine Data Warehouse-DB mit 20 GB SGA und etwa 300 Sessions läuft auf einem Server mit 32 GB RAM. Gelegentlich gerät der Server unter höhere Last und fängt daraufhin an, massiv zu swappen; die Performance geht in die Knie. Was ist passiert?

Weiterlesen

Hyperthreading in HP-UX aktivieren

Jan Karremans aus den Niederlanden erwähnte kürzlich in seinem Blog-Artikel „Can you boost your Oracle database performance on HP-UX for free?“ ein Szenario, das auch mir schon untergekommen ist:

Wenn Hyperthreading in HP-UX (ia64) nicht aktiviert ist, zeigt sich das z.B. in „top“ daran, dass die Numerierung der CPUs nicht fortlaufend sondern unterbrochen ist.

Da Oracle vom Hyperthreading profitiert, ist es sinnvoll es anzuschalten. Dies geht durch den Kernel-Parameter lcpu_attr, der per Default auf 0 steht, aber dynamisch geändert werden kann. Dazu sollten die Datenbanken auf dem betroffenen Server zuvor heruntergefahren werden.

Weitere Details im Original-Artikel (Englisch)

JDBC, Linux und reiner Zufall

Read this article in English →

Manche Probleme — besonders die, die nur sporadisch auftreten — sind nicht so leicht zu diagnostizieren und erfordern einen tieferen Einstieg in die Materie. In diesem Praxisbeispiel bedeutet das: SQL*Net Tracing und Verständnis für die Funktionsweise des Betriebssystems, speziell die Generierung von Zufallszahlen.

Der vorliegende Fall eignet sich daher sehr gut, um eine Vorgehensweise beim Troubleshooting von Verbindungen zur Datenbank exemplarisch darzulegen.
Weiterlesen

Alt, aber bezahlt: Oracle Disk Manager auf VxFS

Neues aus den Rubriken „Old Feature“ und „unbekannt oder unterbewertet„: Der Oracle Disk Manager (ODM)!

Nicht immer hat man als DBA in einem Unternehmen die Wahl, welche Speichersysteme man für die Datenbank einsetzt, und seien sie auch noch so effizient: Es gibt oft altertümliche Standards, gerne auch als „Best Practice“ bezeichnet (um sie über jeden Zweifel, jedes Gegenargument und jegliche Innovation erhaben zu machen), an die man sich halten muss. Ein solcher Standard ist die zwingende Nutzung von Dateisystemen anstelle von ASM und/oder Raw Volumes.

Worin aber sollen denn die Nachteile von Dateisystemen liegen? Sie sind doch so schön bequem handhabbar?

Weiterlesen

Oracle stoppt Softwareentwicklung für Itanium-Plattform

In einer Pressemeldung vom 22. März lässt Oracle verlauten, daß ab sofort keine Software für den Itanium-Prozessor mehr entwickelt werde. Die Entscheidung beruhe auf Gesprächen mit Intel, in denen das Intel-Management verdeutlicht habe, daß der strategische Fokus auf der x86-Plattform liege.

Dies trifft vor allem Kunden, die Ihre Anwendungen auf HP-Hardware (meist unter HP-UX) laufen lassen, da gerade HP bislang Itanium-Prozessoren verbaut hat.

Ein Intel-Sprecher ließ laut der „PC World“ verlauten, man „fühle sich Itanium weiterhin verpflichtet“, aber auch diese Äußerung darf als halbherziges Bekenntnis gedeutet werden.

Ob Oracle mit dieser Entscheidung lediglich Aufwand bei der Entwicklung einsparen oder dem inzwischen unliebsamen Konkurrenten HP auf diese Weise im Hardware-Segment Anteile abjagen möchte, ist Interpretationssache. Tatsache ist, daß Oracle-Anwender ihre bestehende Itanium-Hardware wohl bald abschreiben sollten, wenn sie neuere Oracle-Software einsetzen wollen.

Aufbau eines Oracle RAC mit VirtualBox

In einem kurzen Blogeintrag hatte ich schon darauf hingewiesen, daß VirtualBox jetzt auch Shared Disks beherrscht. Das wiederum ist eine wichtige Voraussetzung, um ein RAC aufzusetzen zu können. Da ich gerade eine RAC-Übungsumgebung benötigte und noch keine Aufbauanleitung für mein spezifisches Setup im Netz finden konnte, habe ich meine Notizen mal etwas formatiert und stelle sie hier zur Verfügung.

Setup:

  • Hostsystem: Ubuntu 10.04 „Lucid Lynx“ (mein Testsystem auf AMD64-Architektur)
  • VirtualBox >= 3.2.8 (wegen Shared Disks, Download hier)
  • Gastsystem: Windows 2003 Server 32-Bit, Service Pack 2
  • Oracle 10gR2 Standard Edition mit Clusterware (Download hier)

Zugegeben, RAC unter Windows ist nicht gerade die tollste Option, aber ich brauchte genau diese Konstellation, und für Linux gibt’s schon was online. ;-)
Weiterlesen