www.ordix.de € 3,20 04|2012 ne ws Mit dem Höllenhund im Urlaub 28 | Neue Reihe zu Kerberos 6 | Domänenspezifische Sprachen (DSL): Sprichst du meine Sprache? 21 | Neues Dateisystem unter Linux: btrfs für alle? 32 | NoSQL vs. SQL - Hype oder echte Alternative? (Teil II): Oracle NoSQL 36 | IT-Management 3.0: Raus aus der Rechtfertigungsfalle NACHHALTIGKEIT ist UNS wichtig! Wir denken umweltbewusst, Sie auch? Wussten Sie, dass wir in Deutschland ca. 250 Kilogramm Papier pro Kopf im Jahr verbrauchen? Helfen Sie uns mit die Umwelt zu schonen, abbonieren Sie die News in digitaler Form. Besuchen Sie unsere ORDIX news Internetseite und ändern Sie einfach Ihr Abo auf ein Online-Abo. Möchten Sie die ORDIX news wie bisher erhalten, ändert sich für Sie nichts. Natürlich werden wir die ORDIX news auch weiterhin in Papierform anbieten. Wir bitten Sie zu überlegen, ob für Sie persönlich die digitale Form die bessere Variante ist. Helfen Sie uns, die Umwelt zu schonen! Weitere Informationen unter: http://news.ordix.de Was bewegt uns noch? Paderborn, Dezember 2012 Weihnachtseditorials fallen mir in Anbetracht mancher Nachrichten besonders schwer. Viermal habe ich angesetzt, geschrieben und wieder verworfen. Wenn auch makaber, so hat mir ein Artikel der Frankfurter Rundschau in der Ausgabe vom 06.12., quasi als Geschenk zum Nikolaus, den zündenden Gedanken gebracht. Was lese ich da: McAfee auf der Flucht? Wird der Kollege etwa von seinen selbst geschriebenen Viren oder seinen erbosten Kunden verfolgt? Nein es ist viel schlimmer, er soll seinen Nachbarn erschossen haben. Jetzt hat er sich nach Guatemala abgesetzt. Der Nachbar hat sich durch die vielen Hunde (sogenannte Watchdogs ), die McAfee‘s Grundstück in Belize bewachten, gestört gefühlt und war deshalb mit McAfee angeeckt. Resultat siehe oben. Es ist schon eigenartig, wie wir hier in Deutschland permanent auf Software und Hardware aus den USA und deren exzentrischen „Erfindern“ (Ellison, Jobs ( ), Gates, McAfee ....) abfahren, nahezu abhängig sind. Da hilft auch kein IT-Gipfel in Deutschland, der vor ca. einem Monat stattfand. Kann er auch gar nicht, wenn man liest, wer da vorne mitmischt: die Herren Rössler (seines Zeichens Arzt!) und Bahr (der ist Gesundheitsminister und hat eine Ausbildung zum Bankkaufmann und zudem Volkswirtschaft studiert). Aber dann finden sich doch noch einige Personen aus der IT- bzw. Telekommunikationsbranche wieder. Diese zeichnen sich aber vor allem dadurch aus, dass sie seit Jahren in großem Stil Aufgaben der IT in Länder wie Russland, Indien sowie weitere osteuropäische Länder (weil billiger) auslagern und gleichzeitig den Fachkräftemangel beklagen. Da freue ich mich doch auf die nächste Bildungsoffensive unserer gelinde ausgedrückt sehr zurückhaltend operierenden Regierung. Die hat letztes Jahr beschlossen, alle Studenten, die ein duales Studium als Ausbildung nutzen, mit „Strafsteuern“ bzw. Sozialabgaben zu belegen. Um aber jetzt vor den kommenden Wahlen 2013 durch die Pseudo-Offensive mit Erlass der Praxisgebühr und der Absenkung des Rentenbeitrages, bei gleichzeitiger Zusage steigender Renten (!) genau das Gegenteil anzuleiern. Was den einen genommen wurde, die sich weiterbilden wollen, wird nun denen zugesteckt, die vielfach sinnlos zum Arzt rennen. Es ist Wahljahr. Die angeblich hervorragende Wirtschaftslage finanziert das, behauptet man. Warum man dann aber gleichzeitig wieder das Kurzarbeitergeld verlängert, kann mir keiner erklären. Aber auch die sprudelnden Steuereinnahmen führen nicht dazu, einen Bundeshaushalt auf die Beine zu stellen, ohne Schulden zu machen. Sparen sollen nach dem Willen von Mutti und Co. nur die anderen Länder. Zum Glück habe ich keine Nachkommen, aber was hier nachfolgenden Generationen aufgebürdet wird, nur um wiedergewählt zu werden, ist unbeschreiblich. Dass die Volkswirtschaften unserer europäischen Nachbarn durch den Sparzwang an die Grenzen ihrer Belastbarkeit geraten, lässt unsere Politikerelite kalt, denn Bildzeitung, Springer- und BurdaPresse werden unsere eiserne Lady schon wieder als alternativlos nach oben pushen. Leider spüren mittlerweile auch einige Unternehmen in unserem Land, dass Rezessionen in anderen Ländern der Eurozone bei uns weder Wirtschaftswachstum noch -Stabilität garantieren. Vor knapp zwei Jahren (kurz vor der ersten Landtagswahl in NRW) ließen sie sich in Berlin noch für Aussagen wie „Die Griechen bekommen keinen Cent, die sollen doch erst mal so lange arbeiten wie wir“ feiern. Das hat nicht viel gebracht und schon gar nicht lange gehalten. Ziemlich viel Geld musste mittlerweile gen Süden geschickt werden. Der Friedensnobelpreis tat sein übriges und brachte einige unserer Minister mittlerweile zu Aussagen in gepflegtem schwänglisch (schwäbischem Englisch, eingeführt durch Oettinger) wie „There will be no Staatsbankrott in Griechenland“, die das krasse Gegenteil der Botschaften von 2010 oder auch von Anfang des Jahres signalisieren. Aber schon Adenauer sagte „Was kümmert mich mein Geschwätz von gestern“. Ich sage Ihnen wieder einmal, genießen Sie einfach Weihnachten, eine gute Gans, Vegetarier meinethalben auch nur Knödel und Rotkohl und harren Sie dem, was in 2013 auf uns zukommt. Es ist halt Wahlk(r)ampf. In Abwandlung des Spruches am Zaun der Villa McAfee‘s „Never mind the dogs, Beware of Owner“, wünsche ich Ihnen für 2013 alles Gute. Denken Sie nicht an das, was in den nächsten neun Monaten passiert, es ist harmlos im Vergleich zu dem, was die letzten drei Jahre schon passiert ist und nach der Wahl passieren wird. Ihr Wolfgang Kögler ORDIX News 4/2012 3 Inhaltsverzeichnis 6 14 DSL - Sprichst du meine Sprache? Themen & Trends 2012 - Java entwickelt sich Datenbanken Projekt-/IT-Management 10.......... Oracle Cloud Control 12c (Teil III): Das Gitternetz wird zur Wolke In diesem Artikel werden neben dem Upgrade-Prozess von Oracle Grid Control Versionen 10 und 11 auch verschiedene Installationsvarianten erläutert. 36.......... IT-Management 3.0: Raus aus der Rechtfertigungsfalle Müssen Sie Ihre Leistungen, Aufgaben und Kosten im Projekt rechtfertigen oder hagelt es häufig Kritik? Dann befinden Sie sich möglicherweise in einer Rechtfertigungsfalle. Wir zeigen Ihnen, wie Sie dieser Falle entkommen können. 18.......... Physikalische Speicherverwaltung in Oracle (Teil III): Klein aber fein! Der dritte Teil dieser Reihe stellt vor, wie und wann mit Hilfe der Reorganisation freier Speicher erzeugt werden kann. Er stellt zudem die Formen der Komprimierung vor und wie der gewonnene Speicherplatz effizient genutzt werden kann. 32 ...........NoSQL vs. SQL - Hype oder echte Alternative? (Teil II): Oracle NoSQL Oracle hat sein Portfolio um eine eigene Key/ValueDatenbank erweitert. Dieser Artikel beschreibt den Ansatz, den Oracle mit dieser Lösung verfolgt. 40.......... Privilegien in Oracle einschränken: Schützen Sie Ihre vertraulichen Daten vor den Augen des DBA Durch die Option Database Vault ist es möglich, Datenschutzmaßnahmen auf Basis umfangreiche DV-SecurityKonzepte zu realisieren. Dieser Artikel erläutert, wie man sensible Daten vor dem Zugriff von privilegierten Benutzern schützen kann. 47.......... Die neue Version V10.1 von IBM DB2 (Teil II): Multi-Temperature Storage Die neue Funktion Multi-Temperature Storage wird vorgestellt. Hiermit ist es möglich, Daten intelligent zu verwalten und bedarfsgerecht auf die schnellsten bzw. günstigsten Speichermedien zu verteilen. 4 ORDIX news 4/2012 Betriebssysteme und Monitoring 28.......... Neue Reihe - Kerberos (Teil I): Mit dem Höllenhund im Urlaub Am Beispiel einer Urlaubsbuchung stellt dieser Artikel die Rechnerumgebung Kerberos vor. Der erste Teil dieser Reihe beschreibt die Arbeits- und Funktionsweise des Authentifizierungsdienstes. 44.......... Solaris 11 - Neue Funktionen (Teil II): Image Packaging System (IPS) Mit Solaris 11 wurde die Funktion IPS neu eingeführt. Sie soll das Erstellen, Installieren, Pflegen und Löschen von Paketen erleichtern. OpenSource 21.......... Neues Dateisystem unter Linux: btrfs für alle? Dieser Artikel stellt das neue Dateisystem btrfs unter Linux vor. Nach Meinung vieler Experten wird sich dieses System in den nächsten Jahren zum Standard entwickeln. Inhaltsverzeichnis 28 Kerberos - Mit dem Höllenhund im Urlaub 36 IT-Management 3.0 - Raus aus der Rechtfertigungsfalle Java/JEE Impressum 14.......... Neuigkeiten aus der Welt von Java Enterprise: Themen und Trends 2012 Was bewegte die Java Enterprise Welt in diesem Jahr? Dieser Artikel gibt einen Überblick in die Hype-Themen aus dem Java-Umfeld. Herausgeber: ORDIX AG Aktiengesellschaft für Softwareentwicklung, Beratung, Schulung und Systemintegration, Paderborn Redaktion: V.i.S.d.P.: Anschrift der Redaktion: Gestaltung/Layout: Jens Pothmann, Evelyn Ernst Benedikt Georgi, Wolfgang Kögler ORDIX AG | Westernmauer 12 - 16 | 33098 Paderborn Tel.: 05251 1063-0 | Fax: 0180 1673490 Jens Pothmann Softwarearchitektur Auflage: Druck: 9.200 Exemplare Druckerei Bösmann, Detmold Bildnachweis: © istockphoto.com | Businessman with puzzle | ricardoinfante © istockphoto.com | help | kemalbas © sxc.hu | gearscape | deafstar © sxc.hu | coins | drniels © istockphoto.com | Be ermetic | alphaspirit © flickr.com | Standing Neo | CowCopTim © sxc.hu | Ready to go | emsago © sxc.hu | Winterspaziergang | Kristkindl © freepsdfiles.net | World flags © freepsdfiles.net | Product Box PSD Template © sxc.hu |-Digital Globe II- | spekulator Aktuell | Standards Autoren: 13.......... Larry Ratlos 26.......... Seminarübersicht: Januar bis Juni 2013 50.......... DOAG Konferenz und Ausstellung 2012 Ein Rückblick auf die Jubiläumskonferenz Michael Auer, Lars Brenker, Evelyn Ernst, Christian Fertsch, Thilo Fleischhauer, Martin Gudacker, Martin Hoermann, Carsten Hummel, Veit Jäger; Wolfgang Kögler, Björn Konrad, Dominic Oberländer, Jens Pothmann, Gerhard Weick, Thomas Schwarz Copyright: Die ORDIX news erscheint vierteljährlich. Alle Eigentumsund Nachdruckrechte, auch die der Übersetzung, der Vervielfältigung der Artikel oder von Teilen daraus, sind nur mit schriftlicher Zustimmung der ORDIX AG gestattet. ORDIX® ist ein eingetragenes Markenzeichen der ORDIX AG. Einige der aufgeführten Bezeichnungen sind eingetragene Warenzeichen ihrer jeweiligen Inhaber. ORDIX® ist eine registrierte Marke der ORDIX AG. Eine Haftung für die Richtigkeit der Veröffentlichungen kann trotz sorgfältiger Prüfung durch die Redaktion vom Herausgeber nicht übernommen werden. 6............ Domänenspezifische Sprachen: Sprichst du meine Sprache? Eine domänenspezifische Sprache (DSL) ist eine formale Sprache, die speziell für eine bestimmte Domäne entworfen und implementiert wird. Wie eine solche Sprache aufgebaut ist und wie sie eingesetzt wird, verdeutlicht dieser Artikel. Warenzeichen: Haftung: Sie können die Zusendung der ORDIX news jederzeit ohne Angabe von Gründen schriftlich (z.B. Brief, Fax, E-Mail) abbestellen. ORDIX news 4/2012 5 Softwarearchitektur Domänenspezifische Sprachen Sprichst du meine Sprache? Um individuelle, häufig wiederkehrende Probleme auf einfache Art und Weise zu lösen, bieten sich Domain-specific Languages (DSL) an. Dieser Artikel beschreibt anhand eines Beispiels die Vorgehensweise bei der Entwicklung einer externen domänenspezifischen Sprache mit dem Framework Xtext. Was ist eine domänenspezifische Sprache? Bei einer DSL handelt es sich in erster Linie um eine Programmiersprache. Dennoch besteht ein Unter­ schied zu den herkömmlichen Sprachen. Eine DSL ist in ihrer Ausdruckskraft beschränkt. Das heißt, die Sprache besitzt nur ein Minimum an Möglichkeiten, die aber ausreichend sind, um ein bestimmtes Problem zu lösen. Dazu ist sie auf ein ganz bestimmtes Problem­ feld – die Domäne – ausgerichtet. Eine klare Abgrenzung dieser Domäne spielt eine ent­ scheidende Rolle beim Entwickeln einer DSL. Mit der Sprache sollen sich alle Begrifflichkeiten der Domäne beschreiben lassen. Der Sprachumfang sollte aller­ dings nicht darüber hinaus gehen. Weiterhin zeichnet sich eine DSL dadurch aus, dass die Aussagekraft nicht nur durch die Verwendung individueller Ausdrücke bestimmt wird. Daher sollte es ebenso möglich sein, Ausdrücke zu kombinieren, um somit die Flexibilität der Sprache zu erhöhen. 6 ORDIX news 4/2012 Ein populäres Beispiel für eine DSL ist die Datenbank­ abfragesprache SQL. Die Domäne beschränkt sich dabei auf die gezielte Abfrage und Manipulation von Datenbankinhalten. Dabei ist es auch möglich, Aus­ drücke zu kombinieren (SELECT, WHERE, ORDER BY, ...), um gezieltere Abfragen zu ermöglichen. Neben der Verwendung einer bereits vorhandenen DSL ist es auch möglich, eine eigene Sprache zu erstellen. Dies ist sinnvoll, wenn für eine Domäne bisher keine passende DSL zur Verfügung steht oder wenn die Kon­ trolle über die (Weiter­)Entwicklung einer Sprache nicht aus der Hand gegeben werden soll. Welche unterschiedlichen Arten existieren? Grundsätzlich wird zwischen internen und externen DSL unterschieden. Interne DSL basieren auf einer existierenden Programmiersprache, der sogenannten Wirtssprache, die sie erweitern. Dadurch steht deren komplette Infrastruktur zur Verfügung. Hierzu gehören Werkzeuge, wie Parser, Compiler und Debugger, die Softwarearchitektur bei der Entwicklung der DSL benutzt werden können. Dies erleichtert den Einstieg für Entwickler erheblich. Auf der anderen Seite ist die Syntax der DSL teilweise an die Wirtssprache gebunden, da sie in ihrem Sinne gültig sein muss. Aus diesem Grund eignen sich nicht alle Programmiersprachen gleichermaßen als Wirts­ sprache. Voraussetzung ist eine möglichst flexible und kompakte Syntax. Externe DSL basieren im Gegensatz dazu nicht auf einer Wirtssprache, sondern sind komplett neu ent­ worfene Sprachen. Es findet eine klare Trennung zwischen der DSL und der Sprache, in der die Anwen­ dung letztendlich implementiert ist, statt. Bei externen DSL entfällt somit die Abhängigkeit zur Wirtsspra­ che. Die Syntax und Semantik der Sprache kann da­ her selbst definiert werden. Dies macht die Sprache wesentlich direkter und verständlicher. Allerdings entfällt auch die durch die Wirtssprache zur Verfügung gestellte Infrastruktur. Diese muss selbst entwickelt werden. Die Infrastruktur beinhaltet die lexikalische Analyse, das Parsen, das Interpretieren, das Kompilieren und das Generieren von Code. In der Vergangenheit galt die Entwicklung externer DSL da­ her als kompliziert und aufwendig. Heutzutage bieten Frameworks dem Entwickler eine zunehmend bessere Unterstützung. Sie erzeugen z.B. automatisch anhand einer DSL-Definition einen Parser und bieten eine Einbettung in die Entwicklungsumgebung. Dies führte dazu, dass externe Sprachen in den letzten Jahren auch in Kundenprojekten immer interessanter wurden. Von der Problem- zur Lösungsdomäne Wie einleitend erwähnt, ist eine DSL auf eine be­ stimmte Domäne ausgerichtet. Die Problemdomäne stellt hierbei die fachliche Seite dar. Um sie zu be­ schreiben, muss eine Analyse der fachlichen Aspekte stattfinden. Dies wird als Domänenanalyse oder Domänenmodellierung bezeichnet. Dabei werden die Komponenten der Domäne sowie ihre Interaktionen identifiziert. In der Lösungsdomäne geht es um die technische Umsetzung der fachlichen Anforderungen. Sie bietet Methoden und Werkzeuge, um das Modell das wäh­ rend der Domänenmodellierung entstanden ist, zu im­ plementieren. Die Hauptaufgabe dieser Modellierung besteht darin, die in der Problemdomäne identi­ fizierten Komponenten sowie deren Abhängigkeiten und das Zusammenspiel korrekt auf die Lösungs­ domäne abzubilden. Für ein gutes Zusammenspiel zwischen Problem­ und Lösungsdomäne ist ein gemeinsames Vokabular not­ wendig. Dadurch wird die Kommunikation unterein­ ander vereinfacht und die beiden Domänen werden enger zusammengeführt. Außerdem können so im Gemeinsames Vokabular Abb 1: Abbildung der Problemdomäne auf die Lösungsdomäne [1]. gesamten Entwicklungsprozess der Anwendung die gleichen Bezeichnungen verwendet werden. Den Zusammenhang zwischen den beiden Domänen verdeutlicht die Abbildung 1. Die in der Problemdomäne identifizierten Komponenten (in diesem Beispiel Person, Stammbaum, Beziehung, usw.) werden auf entsprechende Komponenten in der Lösungsdomäne abgebildet. Wie dieser Vorgang abläuft, hängt von der Lösungsdomäne ab. Soll dort beispielsweise eine Java­Anwendung entstehen, dann könnten die Komponenten der Lösungsdomäne die Java­Klassen Person, Stammbaum, Beziehung usw. sein. Das richtige Abstraktionsniveau DSL bieten die Möglichkeit das Abstraktionsniveau gegenüber herkömmlichen Programmiersprachen zu erhöhen. Das wird möglich, indem das Problem mit den Konzepten der Problemdomäne gelöst wird. Die Syntax und Semantik einer DSL besitzen das gleiche Abstraktionsniveau wie die Problemdomäne. Dies bedeutet, dass beim Schreiben eines Programmes in einer DSL der Anwendungsentwickler nur die Aspekte der Problemdomäne kennen muss. Von der tech­ nischen Komplexität wird abstrahiert. Er muss sich also nicht um die darunter liegenden Implementie­ rungsdetails kümmern. Diese gehören zur Lösungs­ domäne und bleiben dem Sprachbenutzer verborgen. Das Framework Xtext macht es bequemer Zur Unterstützung bei der Entwicklung von externen Sprachen stehen eine Reihe unterschiedlicher Frame­ works zur Verfügung. Ein wesentlicher Vorteil liegt in der automatischen Generierung von Hilfswerkzeugen, welche die spätere Benutzung der DSL erleichtern. Xtext ist ein populäres Framework, welches auf der Eclipse­IDE basiert und sich gut in die Entwicklungs­ umgebung integriert. Es eignet sich daher sehr gut für Entwickler, die bereits Erfahrung mit Eclipse haben. ORDIX news 4/2012 7 Softwarearchitektur Person: 'person' name=STRING 'is a' gender=Gender & ('born in' birthplace=STRING)? & ('born on' birthdate=Date)? & ('hobbies are' hobbies=STRING)? & ('married with' spouse=[Person|STRING])? & ('has the children' children+=[Person|STRING]+)? & ('has the friends' friends+=[Person|STRING]+)? ; Abb. 2: Grammatikregel für die Beschreibung einer Person. Der Entwickler muss sich nicht selbst um die Erstel­ lung eines Parser oder einer Entwicklungsumgebung für die eigene Sprache kümmern. Was ist die Zielsetzung? Die Aufgabenstellung besteht darin, zu Demonstra­ tionszwecken eine eigene externe DSL mit dem Framework Xtext zu entwickeln. Sie soll die Mög­ lichkeit bieten, Personen mit Name, Vorname, Ge­ schlecht, Geburtsort, Geburtsdatum und Hobbies zu beschreiben. Weiterhin sollen Beziehungen zwischen verschiedenen Personen ausgedrückt werden kön­ nen. Im Anschluss an die Beschreibungen sollen per­ sonenbezogene Abfragen möglich sein, deren Ergeb­ nis in Textform ausgegeben wird. Die Grammatik Zunächst wird in Xtext ein neues Projekt erstellt. Da­ durch wird automatisch eine Projektstruktur angelegt. Den Ausgangspunkt beim Erstellen der DSL bildet die Definition der Grammatik. Sie stellt das Regelwerk der Sprache dar und bildet die Grundlage für alle weite­ ren Schritte. Xtext ist in der Lage, aus dieser Definition eine Reihe wichtiger Werkzeuge und Hilfen zu gene­ rieren. Die Grammatik wird in einer an die Extended Backus Naur Form (EBNF) angelehnten Notation er­ stellt und besteht aus einer Reihe von Regeln. Ein Auszug aus der Grammatik ist in Abbildung 2 dar­ gestellt. Hierbei handelt es sich um die Grammatik­ regel „Person‟, welche die Beschreibung von Per­ sonen definiert. Die Ausdrücke in Hochkommata sind Schlüsselwörter, welche später auch im Spracheditor hervorgehoben werden. Die Regel beginnt daher mit dem Schlüsselwort person. Anschließend erfolgt die Zuweisung des Attributs name über den =-Operator. Da der Name eine Zeichenkette ist, wird dieser über die von Xtext vordefinierte Regel STRING abgebildet. In der nächsten Zeile folgt auf das Schlüsselwort is a die Angabe des Geschlechts, welches in einer weiteren Regel „Gender‟ definiert wurde. Die nun folgenden Zeilen beschreiben den Geburtsort, Geburtstag, Hobbies, Ehepartner, Kinder und Freunde. Sie stehen jeweils in runden Klammern gefolgt von einem ? und 8 ORDIX news 4/2012 sind dadurch optional. Um eine Person zu beschrei­ ben reichen also der Name und das Geschlecht aus. Auch die Reihenfolge der optionalen Angaben spielt keine Rolle. Dies wird durch eine Trennung mit dem Zeichen & erreicht. Um Beziehungen zu anderen Personen beschreiben zu können, sind Cross-Referenzen nötig. Diese wer­ den mit Hilfe von eckigen Klammern angegeben. So stellt die Angabe eines Ehepartners einen Verweis auf eine andere Person dar. Die zweite Angabe inner­ halb der eckigen Klammern bezieht sich auf die Regel, über die der Verweis abgebildet wird. In diesem Fall sollen Personen über den Namen referenziert werden, welcher durch die Regel STRING abgebildet wird. Bei Kindern und Freunden ist es zudem möglich, mehrere Personen anzugeben. Diese Angabe erfolgt über ein + hinter den eckigen Klammern sowie der Verwendung von += für die Zuweisung zum Attribut. Eine Entwicklungsumgebung per Knopfdruck Nachdem die Grammatik erstellt wurde, kann bereits eine Entwicklungsumgebung (Eclipse-IDE) für die DSL erzeugt werden. Diese Aufgabe übernimmt der XtextGenerator, welcher einfach über Eclipse aufgerufen werden kann. Um die Arbeit mit der Entwicklungs­ umgebung zu erleichtern, bietet Xtext eine Reihe von Unterstützungsfunktionen. Diese werden, soweit es möglich ist, aus der Grammatik abgeleitet und können bei Bedarf angepasst und erweitert werden. Zu diesen Hilfen gehören unter anderem: • • • • • • Hervorheben von Schlüsselwörtern Autovervollständigung von Quellcode Outline View Validierung der Eingabe Quickfixes Einklappen von Quellcodeabschnitten Nachdem die IDE erzeugt wurde, kann sie über Eclipse gestartet werden. Die Abbildung 3 zeigt die Unterstütz­ ung, welche durch Xtext aus der Grammatikdefinition abgeleitet wurde. Die Schlüsselwörter werden auto­ matisch hervorgehoben. Durch Drücken von Strg + Leertaste wird die Autovervollständigung aktiviert. Die Abbildung 4 zeigt eine weitere Hilfe, die sich, im Gegensatz zu den zuvor beschriebenen, nicht direkt aus der Grammatik ableiten lässt. Als Ehepartner wurde hier versehentlich die Person selbst angegeben. Dies entspricht den syntaktischen Regeln der Sprache und würde daher nicht zu einem Fehler führen. Fach­ lich ist diese Angabe natürlich falsch. Zu diesem Zweck wurde ein Validator erstellt, der eine entsprechende Fehlermeldung erzeugt. Generieren von Java-Code Die bisher beschriebenen Schritte sind aber nur die halbe Miete auf dem Weg zur vollständigen DSL. In Softwarearchitektur der erzeugten Entwicklungsumgebung lassen sich nun gültige DSL­Skripte schreiben und abspeichern. Im nächsten Schritt sollen die erstellten Skripte ausge­ führt werden können. Eine Möglichkeit besteht darin, aus den DSL­Skripten den Quellcode einer General Purpose Language (GPL) zu erzeugen. Dieser kann anschließend kompiliert und ausgeführt werden. Es wurde bereits erwähnt, dass der Xtext­Generator automatisch aus der Grammatik einen Parser für die DSL ableitet. Dieser Parser wird von der IDE ver­ wendet und ist u.a. für die Prüfung der syntaktischen Korrektheit zuständig. Er liest ein DSL­Skript ein und überführt es in eine Baumstruktur, den Syntaxbaum. Dieser Syntaxbaum stellt den Ausgangspunkt für die Code­Generierung dar. Dazu wird dieser mit Hilfe eines Code­Generators durchlaufen. Zur Code­Generierung bietet Xtext die Template­ Sprache Xtend an, die diesen Vorgang stark verein­ facht. Diese Sprache ist ihrerseits selbst eine auf Xtext basierende DSL, deren Domäne auf die Erzeugung von Quellcode ausgerichtet ist. Sie ist stark an Java angelehnt, wobei einige Erweiterungen bzw. Verbes­ serungen zur Verfügung stehen. Prinzipiell ist es mög­ lich, mit dieser Sprache einen beliebigen Output zu er­ zeugen. Beim Speichern eines DSL­Skriptes wird der Code­Generator automatisch von Xtext angestoßen. In diesem Fall wird ein Generator erstellt, der entspre­ chenden Java­Code aus den DSL­Skripten erzeugt. Dazu gehören vor allem eine Klasse Person mit den zuvor genannten Attributen und ein Hauptprogramm. Im Hauptprogramm wird für jede Personenbeschrei­ bung ein Personenobjekt erzeugt. Außerdem werden Personen, die in Beziehung zueinander stehen, mitei­ nander verknüpft. In einem weiteren Schritt werden personenbezogene Abfragen ermöglicht. Dazu wurden in der Grammatik bereits entsprechende Regeln erstellt. Nun wird der fehlende Java­Code dazu generiert. Dies macht es beispielsweise möglich, die Eltern oder Geschwister einer Person in Textform auszugeben. Fazit Mit dem Framework Xtext lässt sich relativ schnell und komfortabel eine eigene Sprache erstellen. Eine ge­ wisse Einarbeitungsphase – abhängig vom Kenntnis­ stand und den Fähigkeiten des Entwicklers – muss allerdings einkalkuliert werden, um den Umgang mit dem Framework zu erlernen. Bereits durch die Grammatikdefinition einer Sprache lässt sich eine vollwertige Entwicklungsumgebung mit Standardwerk­ zeugen erstellen. Auf dieser Basis können dann nach und nach zusätzliche Fuktionen implementiert und die eigene Sprache erweitert werden. Ob der Einsatz einer DSL sinnvoll ist, muss projektspe­ zifisch entschieden werden. Eine DSL eignet sich ge- Abb. 3: Hervorheben und Autovervollständigung. Abb. 4: Validierung. Glossar DSL Domain Specific Language - Eine Programmiersprache für Computer, die eine limitierte Ausdrucksweise besitzt und auf eine bestimmte Problem­ domäne ausgerichtet ist. Xtext Ein Framework zur Erstellung von externen DSLs, welches Eclipse als Basis nutzt. Literaturnachweis [1] Abbildung 1 in Anlehnung an Abbildung aus dem Buch: Debasish Ghosh, "DSLs in Action", Dezember 2010, ISBN: 9781935182450 Bild: © freepsdfiles.net | World flags © freepsdfiles.net | Product Box PSD Template wöhnlich nicht zur Erstellung einer gesamten Anwen­ dung. Sinnvoll ist aber der Einsatz zur Entwicklung kleinerer Anwendungsteile mit speziellen Eigenschaf­ ten und die häufig kleine Änderungen erfahren. Häufig werden daher innerhalb einer Anwendung auch meh­ rere Sprachen für unterschiedliche Zwecke eingesetzt. Michael Auer ([email protected]) ORDIX news 4/2012 9 Datenbanken Enterprise Manager Oracle Cloud Control 12c (Teil III) Das Gitternetz wird zur Wolke Nach der Vorstellung der neuen Funktionen [1] und der Installation [2] beschäftigt sich der dritte Artikel dieser Reihe mit dem Upgrade-Prozess von Oracle Grid Control (10/11) auf Oracle Cloud Control 12c. Dabei wird einerseits der Upgrade-Prozess vorgestellt und andererseits die verschiedenen Installationsvarianten betrachtet. Vorbereitungen für den Upgrade-Prozess Für das Upgrade auf Oracle Cloud Control 12c muss ein Grid Control in der Version 10.2.0.5 mit PSU3 oder 11.1.0.1 mit PSU1 vorhanden sein. Um das Upgrade durchzuführen, wird der Patch #10044087 aus dem MOS [3] von Oracle benötigt. Für die Installation des Patch wird eine kleine Downtime des Enterprise Managers benötigt. Dieser Patch installiert eine Pre-Upgrade Console (siehe Abbildung 1), die einen ordnungsgemäßen Upgrade-Vorgang koordiniert. Der Upgrade-Prozess lässt sich in Pre-Upgrade Tasks, die eigentlichen Upgrade Tasks und Tracking & Troubleshooting Tasks unterteilen. Diese Vorarbeiten müssen vorab erledigt werden, um ein einwandfreies Upgrade zu gewährleisten. Die verschiedenen Installationsvarianten Die Installation muss in Abhängigkeit von dem be­ stehenden System und dem zur Verfügung stehenden Wartungsfenster ausgeführt werden. Es stehen dafür drei Varianten zur Auswahl: Anschließend kann das eigentliche Upgrade des Grid Control auf Cloud Control durchgeführt werden. Sobald alle Agenten ordnungsgemäß installiert sind, beginnt die weitere Überwachung mit dem Start der neuen Version von Cloud Control. Nachdem die neue Version des Enterprise Managers installiert wurde, müssen nur noch die Post-Upgrade Tasks abgewartet werden. Der Vorteil dieses 1-System-Ansatzes ist, dass keine zusätzliche Hardware benötigt wird und auch keine sonstigen Änderungen an Ports oder Firewall durchgeführt werden müssen. Das System kann nach einem Upgrade einfach mit der neuen Version weiter betrieben werden. Im Weiteren werden die einzelnen Varianten be­trachtet und die Vor- und Nachteile herausgestellt. Ein Nachteil des 1-System-Ansatzes ist, dass zur Zeit der Downtime kein Monitoring der Datenbanken stattfindet. Auch Jobs, die über das Grid Control konfi­ guriert wurden (Backups, Archivelog-Sicherung, usw.) werden nicht mehr automatisch ausgeführt und müssen manuell bedient werden. Der 1-System-Ansatz ist somit eine gute Alternative für Umgebungen, in denen für die Installation des neuen Systems ein großes Wartungsfenster ermöglicht werden kann. 1-System-Methode 1-System-Methode auf einer neuen Maschine Bei der 1-System-Methode wird ein Upgrade auf dem bestehenden Host ausgeführt (siehe Abbildung 2). Dieses hat zur Folge, dass eine Downtime für das Grid Control benötigt wird. In dieser Zeit kann weder ein Dieser Ansatz entspricht in der Vorgehensweise einer Neuinstallation wie bei der 1-System-Methode. Jedoch wird die Software für den Cloud Control Server auf einer zusätzlich bereitgestellten Hardware installiert. • 1 - System-Methode • 1 - System-Methode auf einer neuen Maschine • 2 - System-Methode 10 Monitoring, noch eine Administration der Umgebung erfolgen. Im Vorfeld müssen daher sämtliche Agenten des Grid Control auf die neue Version umgestellt werden. Diese Vorarbeiten sind je nach Umgebung nicht unerheblich und benötigen ausreichend Zeit. ORDIX news 4/2012 Datenbanken Bei der Installation wird die bereits vorhandene Daten­ bank genutzt und auf den aktuellsten Stand gebracht. Auch bei diesem Ansatz wird eine entsprechende Downtime benötigt. Damit decken sich die Vor- und Nachteile mit denen der ersten Variante. 2-System-Methode Mit Hilfe des 2-System-Ansatzes wird bei einem Upgrade die Verfügbarkeit des Grid Control gewährleistet. Dazu wird mit einem zweiten System ge­ arbeitet, um parallel zu dem Grid Control das Upgrade auf Cloud Control zu installieren. Die Downtime für ein späteres Umschalten des alten Grid Control tendiert nahezu gegen Null. Abb. 1: Pre-Upgrade Console. Zu diesem Zweck wird vorab ein Backup des alten Repository erstellt und auf die neue Maschine übertragen. Auf Basis dieser Version des Repository wird auf der neuen Maschine das Oracle Cloud Control installiert. Dadurch wird das Repository auf einen neuen Stand gebracht. Um eine Downtime oder auch Datenlücken zu vermeiden, wird das neue Repository mit dem alten via DB-Link verbunden. Nachdem die Installation des Cloud Control beendet ist, können sämtliche Management Agenten nach­ gezogen werden. Dafür müssen die entsprechenden Software Binaries dem alten Grid Control zur Ver­ fügung gestellt werden und auf die dafür vorgesehenen Hosts ausgerollt werden. Nach erfolgreicher Instal­lation können die alten Management Agenten gestoppt und die neuen gestartet werden. Somit erfolgt praktisch ein fließender Übergang von Grid zu Cloud Control. Ein entscheidender Vorteil dieser Variante ist, dass praktisch keine Downtime benötigt wird und sämtliche Systeme permanent überwacht und administriert werden können. Der Nachteil besteht jedoch in dem erheblich größeren Aufwand und dem Einsatz zusätzlicher Hardware. Wenn jedoch nicht auf die historischen Daten verzichtet und kein Ausfall des Grid Control akzeptiert werden kann, ist dieser Ansatz die richtige Wahl. Lediglich mit dieser Methode kann die benötigte Verfügbarkeit gewährleistet werden. Post-Upgrade Console Im Anschluss an die Installation ist eine Überwachung der Data Migration Jobs erforderlich. Diese Jobs übertragen die bereits bestehenden und weiterhin ange- Abb. 2: Upgrade mit der 1-System-Methode. fallenen Daten in das neue Format des Oracle Cloud Control innerhalb des Repository. Auch separate Reports über Unterschiede in der Konfi­guration sind möglich. Dadurch behält der trator die Übersicht über wichtige Änder­ Adminis­ ungen innerhalb des Enterprise Managers. Alle Ziele, die noch nicht aktiv sind und auf ihre Aktivierung warten, werden in einer zusätzlichen Liste ausgegeben und sind anschließend zu bearbeiten. Fazit Welche Upgrade-Variante der Anwender wählt, ist stark abhängig von der Größe und der Wichtigkeit des vorhandenen Grid Control. Bei einer starken Beanspruchung sollte auf die 2-System-Variante zu- ORDIX news 4/2012 11 Datenbanken Glossar MOS My Oracle Support - Wissen- und Supportdatenbank für Oracle Produkte rückgegriffen werden. Wenn die Verfügbarkeit keine Priorität besitzt, kann auch der 1-System-Ansatz verwendet werden. Repository Benötigte Oracle-Datenbank, in die das Cloud Control seine Daten ablegt. PSU Eine von Oracle bereitgestellte Patch Set Unit. SYSMAN Der Benutzer SYSMAN ist der Hauptadministrator des Cloud Control. Carsten Hummel ([email protected]) Links ► [1] ORDIX news Artikel 02/12 „Enterprise Manager Oracle Cloud Control 12c (Teil I) Über den Wolken...“: http://www.ordix.de/images/ordix/onews_archiv/2_2012/oracle_cloud_control.html ► [2] ORDIX news Artikel 03/12 „Enterprise Manager Oracle Cloud Control 12c (Teil II) Die Wolke beginnt zu schweben“: http://www.ordix.de/images/ordix/onews_archiv/3_2012/pages/page0044.html ► [3] Download-Seite für die Pre-Upgrade Console: http://www.oracle.com/technetwork/oem/grid-control/downloads/oem-upgradeconsole-502238.html ► [4] Download-Seite des Oracle Technetwork: http://www.oracle.com/technetwork/oem/enterprise-manager/downloads/index.html Seminarempfehlung: Oracle Cloud Control ► Informationen/Online-Anmeldung:https://training.ordix.de In diesem sehr übungsintensiven Workshop lernen Sie, mit Oracle Cloud Control zu arbeiten und umzugehen. Sie erhalten einen Überblick über die Oberfläche und die Installation der Agenten. Nach dem Seminar sind Sie in der Lage, Oracle Datenbanken über die GUI­Oberfläche zu administrieren und zu überwachen. Seminarinhalte • • • • • • • 12 Architektur: •Überblick über die Oberfläche •Installation Cloud Control •Upgrade vom Grid Control •Installation der Agenten •Administration •Alerts Konzept des Monitorings (Metriken, UDM, Überwachungsvorlagen) Jobs Termine 04.03. 17.04. 21.05. 29.07. 26.08. 14.10. - 06.03.2013 in Wiesbaden 19.04.2013 in Bielefeld 23.05.2013 in Wiesbaden 31.07.2013 in Wiesbaden 28.08.2013 in Bielefeld 16.10.2013 in Wiesbaden Seminar-ID: DB-ORA-35 Dauer: 3 Tage PreisproTeilnehmer: 1.290,00 € (zzgl. MwSt.) Frühbucherpreis: 1.161,00 € (zzgl. MwSt.) Advisor Framework Gruppen, Systeme und Services PlugIns Vertiefung der Theorie durch praktische Übungen und Beispiele ORDIX news 4/2012 Buchen Sie gleich hier! Rätsel Aktuell ? Larry und die Zeit Larry geht mit seinem Chef zur Jagd. Beide haben vereinbart, dass sie an diesem Wochenende alle technischen Geräte zu Hause lassen. Verabredet sind sie für 8 Uhr morgens am Waldrand. Larry reist bereits am Vortag an. Leider muss er feststellen, dass die Wanduhr in seiner Jagdhütte stehen geblieben ist. Da sein Chef Pünktlichkeit über alles schätzt möchte er nun die Uhr neu stellen. Dummerweise hat er keine Uhr (und kein Handy/Computer oder dergleichen) bei sich und muss daher in das nächstgelegene Dorf wandern um die Uhrzeit zu erfahren. Die Wanduhr ist sehr schwer, so dass er diese auch nicht mitnehmen möchte. Wie schafft er es nach seiner Rückkehr, die korrekte Uhrzeit zu stellen, ohne selbst eine Uhr zu haben? Können Sie Larry helfen? Larry freut sich auf Ihren Lösungsvorschlag. Senden Sie bis zum 20. Dezember 2012 Ihre Antwort an [email protected]. Larry's Wettbewerb war ein richtiger Erfolg Larry bedankt sich bei den vielen Einsendern für die richtige Lösung aus der letzten Ausgabe. Den entsprechenden Lösungsweg für Larry´s Aufgabe finden sie unten. Larry belohnte die schnellsten Einsender: Jochen Pinder, Markus Schmied, Roland Funk, Jens Bäuerle Lösung Larry Rätsel 3/2012: Larry muss den Kuchen bezahlen, weil der vordere Kollege Recht hat. Sein Zettel ist weiß. So kommt man zur Lösung: Da sich nach 5 Minuten keiner der beiden hinteren Kollegen gemeldet hat, kann der vordere Kollege davon ausgehen, dass sich die Beiden nicht sicher sein können. Der hintere Kollege sieht die beiden vorderen. Er könnte sich mit seinem eigenen Zettel nur sicher sein, wenn die beiden vor ihm jeweils einen roten Zettel hätten. Da er sich nicht gemeldet hat, ist das wohl nicht der Fall. Das weiß auch der mittlere Kollege. Er weiß nun, dass er und der Vordermann nicht beide einen roten Zettel haben können. Hat der Vordermann jetzt einen roten Zettel, dann wüsste er, dass er selbst einen weißen Zettel hat und könnte sich seinen Kuchen abgreifen. Da er es aber nicht getan hat, ist davon auszugehen, dass der Vordermann einen weißen Zettel hat. Und genau diese Gedankengänge hat auch unser lieber Vordermann. Da sich keiner seiner hinteren Kollegen gemeldet hat, ist aufgrund der obigen Schlussfolgerungen davon auszugehen, dass er einen weißen Zettel hat. ORDIX news 4/2012 13 Java/JEE Neuigkeiten aus der Welt von Java Enterprise Themen und Trends 2012 Rückblickend auf die JAX 2012 - Europas größter Java-Konferenz - sind Cloud Computing, Big Data/NoSQL, Rich Web Applications, Java EE 6, agile Softwareentwicklung und GIT die Hype-Themen, die die Java-Enterprise-Welt aktuell beschäftigen. Der vorliegende Artikel gibt einen Überblick über diese Themen und beleuchtet die Hintergründe. Cloud Computing Die Cloud ist überall - auch im Java-Umfeld. Cloud Computing steht für die Abstraktion von IT-Infrastrukturen, in der benötigte IT-Dienste über ein Netzwerk zur Verfügung gestellt werden. Diese können nach individuellem Bedarf genutzt werden. Aus Nutzerbzw. Unternehmenssicht bedeutet dies, dass ein Rechenzentrum und/oder Applikationen nicht selbst betrieben werden müssen. Stattdessen werden sie über einen Anbieter als Dienstleistung („durch eine Wolke“) zur Verfügung gestellt . Die Nutzung und Konfiguration erfolgt dabei über technische Schnittstellen und richtet sich nach dem Bedarf des Nutzers („you pay as you go“). Entstanden ist das Cloud Computing durch die Notwendigkeit, Systeme großer Internetfirmen zu Lastspitzenzeiten stets skalierbar zu halten (z.B. das Weihnachtsge- 14 ORDIX news 4/2012 schäft bei einem Online Shop) und die im Tagesgeschäft frei zur Verfügung stehenden Rechenkapazitäten als Produkt am Markt anzubieten. Für Java-EnterpriseAnwendungen gibt es derzeit einige namhafte Anbieter, die Cloud Services bereitstellen. Dazu zählen insbesondere die Google App Engine, JBoss OpenShift, CloudBees oder Amazon Java Cloud Services. Für Cloud-Nutzer, insbesondere mittelständische Unternehmen, ergeben sich durch die Nutzung von Cloud Services erhebliche Kostenersparnisse. Dies gilt für Angebote aus dem Bereichen Infrastructure-asa-Service (IaaS), Platform-as-a-Service (PaaS) und Software-as-a-Service (SaaS). Lastspitzen sind stets schwankend und häufig nur kurzfristig. Somit ist eine dynamische Leistungsanpassung durch IaaS-Angebote oft wirtschaftlicher, als die durch zusätzliche Hardware anfallenden Einrichtungs-, Wartungs- und Betriebskosten. PaaS und SaaS begünstigen ebenso eine Java/JEE Kostenreduktion, da Systemverfügbarkeit und -aktualität durch den Betreiber sichergestellt und Personalressourcen und Lizenzkosten eingespart werden können. Neben Kosteneinsparungen ermöglichen Cloud Services ebenso neue Geschäftsmodelle, deren Erfolg immer mehr von kürzeren Time-To-Market-Zeiten abhängt. Dazu muss die IT in der Lage sein, schnell und flexibel Software zu liefern, was durch die Elastizität und Automatisierung von Cloud Services gewährleistet wird. Mit der nächsten Java-Enterprise-Version soll die für das kommende Jahr geplante Java-EE-7-Plattform cloud-fähig werden. Dies bedeutet einen Betrieb als PaaS in der Cloud. Um dies zu gewährleisten, sind spezifische Erweiterungen der Java-EE-Plattform nötig. Dazu zählen insbesondere die Mandantenfähigkeit, erweiterte Konfigurationsmöglichkeiten für die Cloud (Ressourcen-Management, Abhängigkeiten zwischen Anwendungen) und die Unterstützung Cloud-spezifischer Rollen (z.B. PaaS-Administrator). Big Data und NoSQL Ein weiteres wichtiges Thema welches die JavaExperten beschäftigt ist die Bewältigung großer Datenmengen. Die Menge global erzeugter Daten hat in den letzten Jahren exorbitant zugenommen. Aktuell werden alle zwei Tage fünf Exabyte Daten erzeugt – genauso viele Daten, wie seit dem Zeitalter der Informationstechnologie bis 2003 insgesamt erzeugt wurden. Dabei sind 90 % der anfallenden Daten unstrukturiert. Mittlerweile kommt kein Java-Experte um das Thema der Big-Data-Technologien herum. Dabei werden die Daten semantisch verarbeitet und in Kombinationen mit NoSQL-Datenbanken verwaltet. Experten erwarten hier zukünftig eine stärkere Marktkonsolidierung im NoSQL-Bereich. Javascript Web-Apps und HTML5 Aufgrund mangelnder API- und Werkzeugunterstützung wurde Javascript lange Zeit bei vielen Java-Webentwicklern äußerst ungern eingesetzt. Daraus resultierte häufig „quick & dirty“ geschriebener Code mit wenig Modularität und Wartbarkeit. Hier hat sich das Blatt aber mittlerweile deutlich gewendet. Dank einfacher und zugleich mächtiger Frameworks wie jQuery [1] oder PrototypJS [2] erfreut sich die Browser-Sprache einer immer größeren Beliebtheit. Heute stellt Javascript eine sinnvolle Ergänzung serverseitger Java Web-Frameworks (z.B. Java ServerFaces) dar und macht Webanwendungen dank reduzierter Serverinteraktionen deutlich flüssiger und bedienbarer. Neben reinen Werkzeugen zur DOM-Manipulation und AJAX-Interaktion (jQuery und andere) existieren mittlerweile Frameworks, mit denen sich die gesamte Präsentationslogik einer Webapplikation nach dem (meist im Java-Umfeld zum Einsatz kommenden) MVC-Pattern abbilden lässt. AngularJS [3] ist ein Javascript Framework, was genau dies leistet. Es unterstützt den Entwickler, Controller und Viewer, Logik per HTML und Javascript direkt in die jeweilige HTML-Seite zu codieren. Nachdem die Geschäftslogik aufgerufen und die erforderlichen Daten geladen sind (idealerweise per JSON über REST-Services), übernimmt AngularJS das Rendering der HTMLAnsicht. Der neue Standard von HTML 5 zeigt der Java-Welt ebenfalls den Weg auf, dass viele Funktionalitäten einer Webanwendung per HTML und JavascriptAPI realisierbar sind und nicht zwingend serverseitig (durch Java) umgesetzt werden müssen. Dazu zählen HTML-5-Formulare mit eingebauter Validierung, Canvas zum Zeichnen von Inhalten, Local Storage, Multimedia ohne Plug-Ins und Web-Workers (Hintergrundprozesse für die Ausführung von JavascriptCode). Java EE 6 Auch wenn die Spezifikation von Java EE 6 schon einige Tage alt ist, standen die aktuellen Funktionen im Mittelpunkt der JAX 2012. Dazu zählt insbesondere CDI - der Standard für lose gekoppelte, mehrschichtige Java (Enterprise) Applikationen. Dank enthaltener Funktionen wie Dependency Injection, Scope Management und asynchrone bzw. eventorientierte Kommunikation, lassen sich verschiedene Schichten einer Java-Applikation (u.a. JSF, EJB, JPA, EL, REST) wesentlich einfacher zusammenbringen als bisher. Das Zusammenspiel von JSF und CDI wird häufig als das „Dreamteam‟ zur Entwicklung leichtgewichtiger Webanwendungen bezeichnet. CDI bildet die technische Grundlage vieler weiterer Funktionen oder Frameworks, die im Rahmen von Java-EE-Applikationen eingesetzt werden können. Insbesondere Seam 3 und das CDI-Projekt MyFaces Extensions (CODI) nutzen die CDI-API, um Erweiterungen im Umfeld von Java EE zur Verfügung zu stellen, die durch den entsprechenden Standard nicht abgedeckt sind (z.B. wünschenswerte Web-Scopes, die nicht im JSF-Standard enthalten sind). ORDIX news 4/2012 15 Java/JEE Glossar AJAX Asynchronous JavaScript and XML - Ein Konzept, das den asynchronen Austausch von XML-Nachrichten zwischen Client und Server erlaubt, ohne dass eine Webseite komplett neu geladen werden muss. CDI Context and Dependency Injection - Java-Standard, welcher die Konfiguration von Modulen abhängig von verschiedenen Zusammenhängen durch Injektion von Abhängigkeiten erlaubt. Continuous Delivery (kontinuierliche Auslieferung) - Beschreibt den Prozess der kontinuierlichen Auslieferung einer Anwendung. Continuous Integration (kontinuierliche Integration) - Beschreibt den Prozess der permanenten Integration einer Anwendung. CODI Eine CDI-Erweiterung von Apache MyFaces, welche starken Wert auf Typsicherheit legt. DOM-Manipulation Veränderungen/Manipulationen an dem Document Object Model (DOM). GIT Dezentrales Versionsverwaltungssystem. Es unterscheidet sich damit von den traditionellen Programmen wie CVS oder SVN. Kanban Ein Vorgehen, welches die Parallelität in Softwareprojekten zwecks schnellerer Durchlaufzeiten reduziert. JSON JavaScript Object Notation - Ein kompaktes sprachenunabhängiges Datenaustauschformat. MVC-Pattern Model View Controller ist ein Programmierpattern unterteilt in die drei Einheiten Datenmodell, Präsentation und Programmsteuerung. REST Representational State Transfer - Alternative zu Webservices mit SOAP. SCRUM Iteratives Vorgehensmodell des agilen Projektmanagements zur Steuerung von Projekten. XP Extreme Programming - Eine Methode die das Lösen einer Programmier­ aufgabe in den Vordergrund stellt und die Formalitäten zur Umsetzung in den Hintergrund drängt. Mit dem JAX-RS-Standard enthält Java EE 6 Unterstützung für RESTful Services. Aufgrund der fachlichen Adressierbarkeit von Services durch URIs, HTTP als alleiniges Kommunikationsprotokoll und Client-spezifischer Rückgabeformate per Content Negotation, gewinnen RESTful Services zunehmend an Bedeutung in Java-Applikationen und gelten schon als Quasi-Nachfolger von Webservices. Nach den REST-Prinzipien lassen sich hervorragend Web-APIs implementieren. Dank des weit verbreiteten HTTP-Protokolls können sie von den unterschiedlichen Clients wesentlich einfacher angesprochen werden (z.B. im Browser per AJAX/Javascript im JSON-Rückgabeformat oder in Java per HTTP-API im XML-Rückgabeformat für eine mobile App) als dies bei Web­services der Fall ist. Der JAX-RS-Standard bietet 16 ORDIX news 4/2012 eine gute Unterstützung bei der Entwicklung serverseitiger RESTful Services. Per Annotations können einfache Serviceklassen RESTful gemacht werden, ohne dass sich der Entwickler mit HTTP-Code oder gängigen Serialisierungsformaten auseinandersetzen muss. Agile Softwareentwicklung In der Softwareentwicklung haben sich mittlerweile agile Vorgehensweisen in den meisten Unternehmen etabliert. In vielen Projekten setzt man auf Methoden oder Techniken wie Scrum, XP, Kanban oder auch selbstentwickelte Vorgehensweisen, um das Hauptziel der agilen Softwareentwicklung zu verfolgen: Höhere Kundenzufriedenheit bzgl. Qualität und Entwicklungszeit (und damit Time to Market) der zu entwickelnden Software. Die Agilität begünstigt eine schnellere Rückkopplung zu den iterativ entwickelten Funktionen und damit eine schnellere Validierung der Software durch den Kunden. Continous Integration, testgetriebene Entwicklung und Continous Delivery helfen dabei, diese Ziele zu erreichen. Im Java-Umfeld existieren hierzu zahlreiche leistungsfähige Werkzeuge. Bei der Continous Integration hat sich Jenkins in Kombination mit Maven etabliert. Testgetriebene Entwicklung und Testautomatisierung lassen sich am besten mit JUnit und den entsprechenden Maven Plug-Ins erreichen. GIT im Unternehmenseinsatz Ein weiterer Fokus der JAX 2012 war ebenfalls die Source-Code-Versionierung mit GIT, die immer wieder Thema in zahlreichen Sessions und Vorträgen war. Viele OpenSource-Projekte haben den Schritt von der Subversion zu GIT bereits vorgemacht und nutzen GIT Repositories zur Verwaltung ihres Source Code. GIT ist auch über die Cloud zugänglich, d.h. Repositories können bereits durch einige öffentliche Anbieter (z.B. Github [4]) genutzt werden, was insbesondere für kleinere Projekte ohne eigene IT-Infra­struktur interessant ist. Neben OpenSource-Projekten denken auch kommerzielle Softwareunternehmen darüber nach, GIT als internes Source Code Management (SCM) Werkzeug einzusetzen und die Vorteile eines dezentralen Instrumentes auszunutzen. Denn für das Softwareentwicklungsteam bedeutet GIT mehr Freiheit und Flexibilität: Das Repository ist auf jedem Entwicklungsrechner verteilt, wodurch das Team lokal und falls erforderlich offline arbeiten (d.h. offline ein- und auschecken) kann. Weiterhin bietet GIT gegenüber bisherigen SCMWerkzeugen ein deutlich besseres Branch Handling, Java/JEE d.h. divergente Entwicklungen können nachträglich wesentlich einfacher zusammengeführt werden. Dies bietet einen größeren Spielraum im Softwareentwicklungsprozess, beispielsweise die Bildung von Feature Branches. Jede Funktion wird dabei in einem eigenen Zweig entwickelt. Dies gibt dem Entwickler die Freiheit, isoliert vom Team zu arbeiten und durch Änderungen am Repository nicht die Arbeit eines Kollegen zu beeinflussen. Bei einem Software-Release ermöglichen Feature Branches ein so genanntes Cherry Picking. Vor dem Release können einzelne Funktionen ausgewählt und in einem Release Branch zusammengeführt werden, die tatsächlich veröffentlicht werden sollen. Auch verschiedene Versionsstände (Staging Pipelines), die bis zum finalen Release Branch durchlaufen werden müssen, lassen sich durch das Branch Handling von GIT wesentlich einfacher realisieren. Hieraus lässt sich erkennen, dass eine Umstellung auf GIT nicht nur eine Migration des alten Repositories bedeutet, sondern dass auch umfangreichere Workflows erarbeitet und im Team abgestimmt werden müssen. So z.B. die Fragen: Wie ist die Branching-Strategie? Was ist das Release-Vorgehen? Links ► ► ► ► [1] JQuery Library/Framework: http://jquery.com/ [2] Prototype Framework: http://prototypejs.org/ [3] Angular HTML5-Internetseite: http://www.angularjs.org/ [4] Gifthub Netzwerk: https://github.com/ Bild: © sxc.hu |-Digital Globe II- | spekulator einen guten Überblick über die Themen und Trends 2012 gegeben. Wie sich diese Themen weiterentwickeln, werden wir weiter verfolgen und darüber in den ORDIX news berichten. Björn Konrad ([email protected]) Fazit Es ist viel in Bewegung in der Welt von Java Enterprise. Inzwischen ist die JAX 2012 Geschichte und die Welt dreht sich weiter. Mit diesem Artikel haben wir Ihnen Lars Brenker ([email protected]) Seminarempfehlung: Java Enterprise Technologie für Manager ► Informationen/Online-Anmeldung: http://training.ordix.de Dieses Seminar gibt einen fundierten Überblick über die Java Enterprise Edition (Java EE). Es werden grundlegende Konzepte erläutert, Vor- und Nachteile abgewogen. Gründe für den Einsatz dieser Technologie werden aufgezeigt. Darüber hinaus lernen Sie Java EE aus Perspektive der fachlichen Anforderungen kennen. Das Seminar wird durch Berichte aus der Praxis abgerundet. Seminarinhalte • • • • • • • • Java EE Überblick: Einführung und Zielsetzung, Architekturen Enterprise Java Beans: Session Beans, Message Driven Beans, zeitgesteuerter Aufruf von Beans Java EE Web-Komponenten: Servlet-Technologie, Web-Interfaces mit JSF erstellen Java EE Transaktionsmanagement: Bedeutung und Konfigurationsmöglichkeiten Java EE Sicherheitskonzepte WebServices Weitere Themen: Interoperabilität mit XML, Skalierbarkeit und Hochverfügbarkeit Kriterien zur Auswahl eines Java EE-Servers, Marktübersicht, Open Source-Implementierungen Termine 14.01. 15.04. 12.08. 25.11. - 14.01.2013 in Wiesbaden 15.04.2013 in Wiesbaden 12.08.2013 in Wiesbaden 25.11.2013 in Wiesbaden Seminar-ID: P-JEE-01 Dauer: 1 Tag Preis pro Teilnehmer: 590,00 € (zzgl. MwSt.) Frühbucherpreis: 531,00 € (zzgl. MwSt.) Buchen Sie gleich hier! ORDIX news 4/2012 17 Datenbanken Space, the final frontier - die physikalische Speicherverwaltung in Oracle (Teil III) Klein aber fein! Der erste Teil dieser Reihe [1] untersuchte das Speichermanagement auf der Ebene von Tablespaces, Datafiles und Segmenten. Im zweiten Teil [2] ging es um Speicherstrukturen innerhalb von Segmenten sowie die Auswahl geeigneter Datentypen unter Speicher­aspekten. Der letzte Teil dieser Reihe stellt nun vor, wie und wann mit Hilfe der Reorganisation freier Speicherplatz erzeugt werden kann. Anschließend wird unter­sucht, mit welchen Formen der Komprimierung Speicherplatz effizient genutzt werden kann. Die Bereiche Reorganisation und Komprimierung sind sehr vielschichtig und wurden bereits in verschiedenen Artikeln der ORDIX news beleuchtet [3-6]. Der vorliegende Artikel konzentriert sich auf die Frage, wann welche Technologie zur Optimierung des Speicher­ platzes eingesetzt wird. Auch wenn die Kosten für Speicherplatz in den letzten Jahren deutlich gesunken sind, so ist ein sparsamer Umgang mit dieser Ressource grundsätzlich zu empfehlen. Je mehr Informationen sich in einem OracleBlock befinden, desto besser ist auch die Auslastung des Hauptspeichers und desto performanter verhält sich die gesamte Datenbank. Gegebenenfalls führt dies soweit, dass die CPU-Leistung reduziert wird und damit unter Umständen weniger Lizenzkosten anfallen. Reorganisation Unter Reorganisation versteht man das physikalische Verschieben von einzelnen Zeilen oder ganzen Segmenten. Segmente sind dann zu reorganisieren, wenn ihr physikalischer Aufbau durch die Reorganisation opti­miert werden kann. Entweder soll der Blockfüllgrad optimiert (meist erhöht) oder eine physikalische Sortierung der Daten hergestellt werden. Reorganisationen sind nur dann sinnvoll, wenn die Speicher­ struktur nachhaltig optimiert werden kann. Werden alle freien Bereiche eines Segments durch das Einfügen von Daten gefüllt, so ist es meist unnütz eine Verdichtung durch eine Reorganisation anzustreben. Wird in einem Segment ein großer Teil der Daten gelöscht und dieser Bereich in absehbarer Zeit nicht benötigt, so kann eine Reorganisation hilfreich sein. Die Reorganisation erhöht den Blockfüllgrad und je nach Methode wird der entstandene Platz freigegeben. In 18 ORDIX news 4/2012 speziellen Fällen kann sich die physikalische Reihenfolge der Datensätze positiv auf die Performance auswirken. In diesem Fall muss die Tabelle immer dann reorganisiert werden, wenn durch Änderungen die physikalische Reihenfolge durcheinander gerät. Eine indexorganisierte Tabelle könnte hier Abhilfe schaffen. Ein weiterer Grund für eine Reorganisation können Migrated Rows sein. Die reine Anzahl sollte aber nicht die Basis hierfür sein. Vielmehr ist die Zeit für das vermehrte Lesen von Blöcken das ausschlaggebende Kriterium. Die Reorganisation sollte in solchen Fällen auch zur Optimierung des Speicherparameters PCTFREE genutzt werden. Methoden für Tabellen Bei der Reorganisation von Tabellen sind verschiedene Kriterien relevant. Eine Reorganisation kann durch Verschieben des Segments erfolgen, dann wird neben dem ursprünglichen Platz noch zusätzlicher in oder außer­ halb der Datenbank benötigt. Eine Reorganisation inner­halb des Segments hat diesen Nachteil nicht. Ein weiteres wesentliches Kriterium ist, ob die Reorga­ nisation Online oder Offline durchgeführt wird. OfflineOperationen verhindern grundsätzlich den konkurrierenden Zugriff auf das Objekt. Online-Reorganisa­ tionen sind unbedingt in lastschwachen Zeiten durchzuführen, da der Einfluss auf die Performance signifikant sein kann. Im Wesentlichen bieten sich folgende Methoden an: • Export/Import: Die Tabelle wird aus der Datenbank ausgelagert und anschließend physikalisch einge­ lesen. Dieses Vorgehen ist ausschließlich zu empfehlen, wenn in der Datenbank kein Platz für die Reorganisation zur Verfügung steht. Die Methode ist im Vergleich zu den anderen aufwändig. Datenbanken • Move: Einfache Methode, bei der anschließend Indizes und Statistiken neu angelegt werden müssen. Einige Storage-Optionen und der Tablespace können geändert werden. • DBMS_REDEFINITION: Mächtigstes Werkzeug zur Online-Reorganisation von Tabellen mit der Möglichkeit, die Struktur der Tabelle zu verändern und die physikalische Sortierung vorzugeben. Die Implementierung ist im Vergleich zu den Methoden Move und Shrink aufwändig. • Shrink: Einfache Methode zur Online-Reorganisation innerhalb des Segments, also ohne weiteren Speicherplatzbedarf. Physikalische Optionen oder die Sortierung können nicht beeinflusst werden. Methoden für Indizes Komprimierung von Tabellen Die Komprimierung von Tabellen basiert darauf, dass große, sich wiederholende Werte nur einmal in einer s.g. Symboltabelle im Blockheader abgespeichert werden. Jedes Auftreten eines Wertes wird dann lediglich referenziert. So ändert sicher der Komprimierungsgrad von der physikalischen Sortierung. • Basic Compression: Nur s.g. Direct-Path-Opera­ tionen führen zu komprimierten Blöcken. Insbesondere bei der Massendatenverarbeitung, z.B. typisch im Data Warehouse, ist dieses Verfahren weit verbreitet. • Compression for OLTP: Datenbanken aus dem OLTP-Sektor profitieren von dieser Form der Komprimierung. Alle DML-Befehle werden dabei unterstützt. Sobald ein Block einen gewissen Füllgrad erreicht, wird die Komprimierung auf diesem Block durchgeführt. Der Reorganisation von Indizes widmen sich zahlreiche Veröffentlichungen. Die Anzahl der Mythen, die sich um das Thema ranken, ist leider genauso hoch wie die Anzahl der seriösen Abhandlungen. Eine der aktuell besten Ausarbeitungen zu diesem Thema stammt von Richard Foote [7]. • Hybrid Columnar Compression: Dieses Verfahren Im Zuge dieses Artikels wollen wir lediglich festhalten, dass die Fälle in denen eine Reorganisation sinnvoll ist, selten und die zum Sparen von Speicherplatz noch rarer sind. Nichtsdestotrotz wurden bereits Datenbanken optimiert, bei denen die Reorganisation von Indizes erheblichen freien Speicherplatz geschaffen hat und die Performance deutlich verbessert wurde. Zur Reorganisation gibt es im Wesentlichen die beiden folgenden Methoden: Lediglich für die Methode Basic Compression ist keine zusätzliche Option zu lizenzieren. Ist eine Komprimierung besonders effizient ist das zum einem natürlich sehr erfreulich. Zum anderen ist dies aber häufig ein Zeichen für ein schlechtes Datenmodell. Attribute mit langen Texten, die gleichzeitig eine niedrige Selektivität (häufig Wiederholungen) haben, sind hierbei die Klassiker. Während bei kleinen Tabellen die Lesbarkeit im Vordergrund steht, ist bei den Top 10 der größten Segmente unbedingt der Speicherverbrauch zu optimieren. • Rebuild: Online- oder Offline-Methode, bei der das Indexsegment neu aufgebaut wird. • Coalesce: Verfahren bei dem, ähnlich zum Shrink, der Speicherplatz im Segment neu optimiert wird. Komprimierung Während die Reorganisation ein vorhandenes Segment neu strukturiert, ist die Komprimierung eine Segmenteigenschaft, die bereits beim Einfügen der Daten schon Wirkung zeigt. Mit beiden Verfahren wird vereinfacht gesagt der Füllgrad von Blöcken optimiert. Bei der Komprimierung von Datenbankobjekten unterscheidet man die Komprimierung von Tabellen, Indizes und von LOBs (Secure Files). Mit der Option Advanced Data Compression bietet Oracle zudem die Möglichkeit, Backups und archivierte Redolog-Dateien zu komprimieren. Dieser Artikel konzentriert sich jedoch auf die Komprimierung von Datenbankobjekten. steht nur auf Oracle Exadata zur Verfügung. Es gibt hier zwei unterschiedliche Varianten. Komprimierung von Indizes Nichteindeutige Indizes mit sich wiederholenden Attri­ buten oder Attributgruppen lassen sich mit Hilfe der Indexkomprimierung verdichten. Je häufiger sich die Attribute wiederholen, desto höher ist die Komprimierung. Oracle bietet ein einfaches Verfahren an um die optimale Komprimierung eines Index zu ermitteln (siehe Abbildung 1). Der Befehl ANALYZE sperrt den SQL> ANALYZE INDEX address_i1 VALIDATE STRUCTURE; SQL> SELECT opt_cmpr_count, opt_cmpr_pctsave FROM index_ stats; opt_cmpr_count opt_cmpr_pctsave -------------- ---------------2 51 SQL> ALTER INDEX address_i1 REBUILD ONLINE COMPRESS 2; Abb. 1: Beispiel für einen Index, bei dem eine Komprimierung von zwei Spalten eine Platzersparnis von ca. 51 % bringt. ORDIX news 4/2012 19 Datenbanken Index exklusiv, so dass die Ermittlung nicht im produktiven Betrieb durchgeführt werden kann. Glossar BLOB Binary Large Objects nehmen beliebige Binärdaten auf. CLOB Character Large Objects dienen zur Aufnahme von Text im Zeichensatz der Datenbank. Exadata Oracle Hardware bei der Speicher, Netzwerk und Software eng aufeinander abgestimmt sind. LOB Large Objects sind Datentypen, die sehr große Inhalte aufnehmen können. MigratedRows Wenn aufgrund eines Updates eine Zeile größer wird und in dem Block nicht mehr genügend freie Bytes vorhanden sind, so migriert diese Zeile in einen anderen Block in den sie vollständig passt. OLTP Online Transaction Processing bezeichnet ein Benutzungsparadigma, bei dem die Verarbeitung von Transaktionen direkt und prompt, also ohne nennenswerte Zeitverzögerung, stattfindet. Komprimierung von LOBs Bei der Speicherung von CLOB-, NCLOB- oder BLOB-Daten außerhalb der Datenbank verwendet Oracle so gennante Bfiles. Beim Einsatz der Option Advanced Compression werden die LOBs auch Oracle Secure Files genannt (wobei der Name in die Irre führt). Die Datenbankoption ermöglicht für Secure Files zwei Formen der Komprimierung: • Deduplication: Beim Speichern von Daten prüft Oracle, ob dieselben Daten bereits in einem Secure File gespeichert wurden. Ist dies der Fall, wird lediglich eine Referenz auf den vorhandenen Satz gespeichert. • Compression:Mit dieser Option wird das Secure File mit Standard Kompressionsalgorithmen verdichtet. Abhängig vom Inhalt lassen sich damit unter Umständen sehr hohe Verdichtungen erreichen. Links ► [1] ORDIX news Artikel 02/2012 „Space, the final frontier die physikalische Speicherverwaltung in Oracle (Teil I) Tablespaces und schwarze Löcher“: http://www.ordix.de/images/ordix/onews_archiv/2_2012/tablespaces_oracle.html ► [2] ORDIX news Artikel 03/2012 „Space, the final frontier die physikalische Speicherverwaltung in Oracle (Teil II) Mehr Raum für die Datenbank“: http://www.ordix.de/images/ordix/onews_archiv/3_2012/pages/page0029.html ► [3] ORDIX news Artikel 02/2009 „Oracle Database 11g Release 1 (Teil VI) - Compression, weniger ist mehr“: http://www.ordix.de/images/ordix/onews_archiv/2_2009/oracle_11g_teil_vi.html ► [4] ORDIX news Artikel 01/2007 „Komprimierung von Index Organized Tables“: http://www.ordix.de/images/ordix/onews_archiv/pdf/news0701.pdf ► [5] ORDIX news Artikel 03/2006 „Datenkompression unter Oracle“: http://www.ordix.de/images/ordix/onews_archiv/3_2006/oracle_datenkompression.html ► [6] ORDIX news Artikel 04/2004 „Oracle 10g (Teil III) - Tanz den REORG“: http://www.ordix.de/ordixnews/ordix-news-archiv/42004.html ► [7] Literaturempfehlung: Richard Foote, Rebuilding the Truth http://richardfoote.files.wordpress.com/2007/12/index-internals-rebuilding-thetruth-ii.pdf Fazit Nachdem Sie im ersten Teil dieser Reihe die Grundlagen der Oracle Tablespaces, Datafiles und Segmente kennengelernt haben, wurde im zweiten Teil der Aufbau der Segmente am Beispiel von Tabellen erläutert. Insbesondere wurde dort gezeigt, dass bereits während des physikalischen Datenbankdesigns die zukünftige Datenbankgröße bestimmt wird. In diesem abschließenden Teil haben wir nun zwei Themen aufgegriffen, mit denen sich große Objekte in Oracle-Datenbanken nachträglich verkleinern lassen. Natürlich ist es besser, schon beim Datenbankdesign sorgfältig auf Speicheraspekte zu achten. Ist dies nicht gelungen, so lässt sich ggf. mit Hilfe der Reorganisation oder der Komprimierung noch etwas retten. Wie viele Aspekte von der Anwendungsentwicklung bis zum Datenbankbetrieb bei der Untersuchung scheinbar einfacher Fragen zu berücksichtigen sind, wurde in dieser Artikelreihe aufgezeigt. Insbesondere die Anzahl technischer Varianten ist in den neuen OracleDatenbankversionen enorm. Martin Hoermann ([email protected]) 20 ORDIX news 4/2012 OpenSource Neues Dateisystem unter Linux btrfs für alle? Schon seit Jahren ist im Linux-Umfeld vom Dateisystem der nächsten Generation die Rede: btrfs. Das B-Tree Filesystem, welches bereits seit 2007 entwickelt und ab der Linux-Version 2.6.29 im Kernel enthalten ist, soll die Beschränkungen bisher eingesetzter Dateisysteme aufheben. Mittlerweile ist es von SuSE Linux Enterprise Server 11 SP2 und Oracle Linux 2 für den Produktionseinsatz freigegeben. In dem vorliegenden Artikel möchten wird das neue Dateisystem und dessen Verwaltung einmal genauer unter die Lupe nehmen. Dateisystemverwaltung in der Vergangenheit Die bisherige Dateisystemverwaltung bestand im Normal­fall aus mehreren Schritten. Werden in einem Rechenzentrum die Datenplatten auf den Servern gespiegelt, wird häufig ein Software-RAID mit dem Befehl mdadm erstellt. Auf diesem befindet sich meist ein Linux Logical Volume Manager mit seinen Dateisystemen. Soll nun das Dateisystem vergrößert werden, sind drei Schritte notwendig: Software-RAID vergrößern, Logical Volume vergrößern und Dateisystem vergrößern. Bei btrfs ist dies deutlich einfacher, da es Volumenmanager und Dateisystem in einem ist. Mit einem einzigen Befehl findet die Vergrößerung des Dateisystems inklusive Volumemanagement statt. Auch die Nutzung von Kommandozeilenbefehlen verringert sich deutlich. Sind bei der klassischen Variante mehrere verschiedene Befehle notwendig, reicht bei btrfs ein einziger aus. Ein weiterer Vorteil der Zusammenfassung von Volumenmanagement und Dateisystem zeigt sich beim Ausfall einer Festplatte. Wird bei der bisherigen Konstellation eine ausgefallene Festplatte ausgetauscht, muss anschließend jeder Datenblock wieder gespiegelt werden. btrfs hat hingegen Kenntnis über die genutzten Datenblöcke, was dazu führt, dass auch nur diese gespiegelt werden. Die Funktionalitäten btrfs ähnelt stark dem ZFS-Dateisystem von Solaris, so dass sich viele ZFS-Funktionalitäten wiederfinden lassen. Das Dateisystem zeichnet sich zudem durch folgende Kernfunktionalitäten aus: • erweiterter Speicherbereich (264 Byte) • effizientes Speichern von kleinen Dateien und Ordnern • Vergrößern und Verkleinern im • • • • • • • • • • laufenden Betrieb (Online) dynamische Inodes Schnappschüsse (Snapshots) mehrere Wurzelverzeichnisse (Subvolumes) integriertes RAID Prüfsumme jeder einzelnen Datei Datenkompression Dateisystemüberprüfung und -defragmentierung während des Betriebs effizientes internes inkrementelles Backup Konvertierung bestehender ext3/ext4-Dateisysteme Optimierung für SSD-Geräte Administration von btrfs Die Verwaltungswerkzeuge für das btrfs-Dateisystem, wie z.B. mkfs.btrfs, btrfs, fsck.btrfs etc. befinden sich Paket btrfsprogs, welches gegebenenfalls nachinstalliert werden muss. Soll ein neues Datei­ system angelegt werden, kann dies, wie bei anderen Dateisystemen in gewohnter Weise durchgeführt werden. Mit dem Befehl mkfs.btrfs /dev/sda1 wird ein Dateisystem auf einer Partition erstellt. Das anschließende Einbinden erfolgt wie gewohnt mit dem Befehl mount, z.B. mount /dev/sda1 /btrfs. Stellt sich zu einem späteren Zeitpunkt heraus, dass das Datei­system zu groß oder klein angelegt wurde, kann ORDIX news 4/2012 21 OpenSource Usage: btrfs device scan [--all-devices|<device> [<device>...] If one or more devices are passed, these are scanned for a btrfs filesystem. If no devices are passed, btrfs scans all the block devices listed in the /proc/partitions file. Finally, if --all-devices is passed, all the devices under /dev are scanned. btrfs device add <dev> [<dev>..] <path> Add device(s) to the filesystem identified by <path>. btrfs device delete <dev> [<dev>..] <path> Remove device(s) from a filesystem identified by <path>. Btrfs v0.19.1+ Abb. 1: Ausgabe des Kommandos btrfs device -–help. Data, RAID1: total=4.00GiB, used=2.72GiB System, RAID1: total=32.00MiB, used=4.00KiB System: total=4.00MiB, used=0.00 Metadata, RAID1: total=768.00MiB, used=88.76MiB Abb. 2: Ausgabe des Befehls btrfs filesystem df /btrfs. # btrfs-convert /dev/sdc1 creating btrfs metadata. creating ext2fs image file. cleaning up system chunk. conversion complete. Abb. 3: Umwandeln eines bestehenden ext3-Dateisystems nach btrfs. es online vergrößert bzw. verkleinert werden. Belegt das Dateisystem nicht die gesamte Partitionsgröße, kann es mit dem Befehl btrfs filesystem resize max /btrfs auf die maximale Größe erweitert werden. Der Befehl btrfs filesystem resize 200g /btrfs verändert die Größe auf 200 GB, wobei dies je nach Verwendungszweck eine Vergrößerung oder Verkleinerung darstellen kann. Ein + oder - vor der Größenangabe führt zudem eine relative Änderung des Dateisystems durch. Das Kommando btrfs Das wichtigste Kommando für die Verwaltung des btrfs-Dateisystems stellt das Kommando btrfs dar. Durch Aufruf dieses Kommandos mit einem Schlüssel­ wort als Parameter können folgende Funktionalitäten durchgeführt werden: • • • 22 btrfs subvolume - Verwaltung von Moment­aufnahmen des btrfs-Dateisystems btrfs filesystem - Verwaltung und Veränderung des Dateisystems btrfs device - Verwaltung des Volume­ managers von btrfs, z.B. Hinzufügen oder Entfernen von Festplatten ORDIX news 4/2012 • btrfs scrub - Überprüfen der Prüfsummen aller Dateien Der Befehl btrfs bringt zudem eine eingebaute Hilfe mit. So kann zu jedem Kommando die jeweilige Hilfe angezeigt werden, indem das Schlüsselwort mit --help aufgerufen wird. In Abbildung 1 ist die Ausgabe des Befehls btrfs device --help dargestellt. Verwaltung des RAID von btrfs btrfs enthält, wie einleitend bereits dargestellt, ein eingebautes Volumenmanagement, mit dem Dateisys­ teme auf mehrere Festplatten verteilt werden können. Aktuell werden hierbei die RAID-Level 0, 1 und 10 unterstützt. In Zukunft soll auch die Nutzung von RAID-5 und RAID-6 möglich sein. Im einfachsten Fall ist ein vorhandenes btrfs-Dateisystem zu klein geworden. Der Befehl btrfs device add /dev/sdb1 /btrfs vergrößert das Dateisystem um eine weitere Fest­platte. Die Festplatten sind hierbei einfach aneinandergehängt, so dass zunächst die erste und dann die zweite mit Daten befüllt werden. Sollen die beiden Festplatten nicht nach und nach befüllt, sondern die Dateien gleichmäßig darüber verteilt werden, kann das Dateisystem nachträglich ausbalanciert werden. Dies erfolgt durch den Befehl btrfs filesystem balance start /btrfs. Das Ausbalancieren hat zur Folge, dass die Systemund Metadaten gespiegelt werden, die eigentlichen Daten werden aber weiterhin über die Festplattengeräte verteilt. Soll nun auch für die Daten ein RAID-1 erstellt werden, geschieht dies mittels btrfs filesystem balance start -dconvert=raid1 /btrfs. Wie die einzelnen Daten des Dateisystems verteilt sind, zeigt der Befehl btrfs filesystem df /btrfs in Abbildung 2. OpenSource Füllstand der btrfs-Dateisysteme Die Ansicht des Belegungsgrades eines btrfs-Datei­ systems stellt den Administrator vor neue Heraus­ forderungen. War man es bisher gewohnt, dass ein df -h immer den genauen Füllstand des Dateisystems widerspiegelt, wird bei einem btrfs-Dateisystem immer die gesamte Größe unabhängig vom eingesetzten RAID-Level angezeigt. Wird nun auf einem gespiegelten Dateisystem eine Datei mit 1 GB Größe angelegt, zeigt df -h den Füllstand mit 2 GB an. Das für diesen Artikel genutzte Dateisystem zeigt eine benutzte Größe von 5,7 GB an. Aus den in Abbildung 2 ersichtlichen Werten und dem eingesetzten RAID-1 ergibt sich folgende Rechnung: Summe aus Daten (2,71 GB), System (4,0 KB), Metadaten (88,76 MB) * 2 (RAID-1) = 5,7 GB. Umwandlung von ext3/ext4 nach btrfs Als besonderes Schmankerl bietet btrfs die Möglichkeit, bestehende ext3-/ext4-Dateisysteme in ein btrfs umzuwandeln. Die Daten werden hierbei komplett übernommen. btrfs besitzt nur sehr wenige Metadaten, die an festen Orten abgelegt sind, so dass die Implementierung der Umwandlung von anderen Datei­ systemen sehr leicht zu bewerkstelligen ist. Der eingebaute Algo­rithmus Copy on write (COW) erlaubt es sogar, eine unveränderte Kopie des Original­ datei­ sys­ tems aufzubewahren, so dass wieder zum ursprünglichen Dateisystem zurückgekehrt werden kann. Die Konvertierung eines ext3-/ext4-Datei­systems erfolgt in 3 Schritten: • Duplizierung des 1 MB der Partition, auf dem sich das ext3-/ext4-Dateisystem befindet. • Duplizieren der Verzeichnisse und Inodes. • Referenzieren auf die ext3-/ext4-Datenblöcke aus den btrfs-Dateien. Das Umwandeln eines bestehenden Dateisystems kann dann mit dem Befehl btrfs-convert /dev/sdc1 durchgeführt werden. Abbildung 3 zeigt die Ausgabe der Umwandlung. Bei der Konvertierung wird in btrfs ein Subvolume erzeugt. Solange dieses exis­tiert, kann die Umwandlung immer wieder rückgängig gemacht werden. Der Schritt zurück erfolgt über das Kommando btrfs-convert -r /dev/sdc1. Subvolumes Bei der klassischen Dateisystemadministration befindet sich auf einem Logical Volume oder einer Partition immer genau ein Dateisystem. btrfs ermöglicht es, innerhalb eines btrfs-Dateisystems, weitere Datei­ # btrfs subvolume list /btrfs ID 279 top level 5 path snapshot1 ID 280 top level 5 path snapshot2 ID 281 top level 5 path snapshot3 ID 282 top level 5 path snapshot4 ID 283 top level 5 path snapshot5 Abb. 4: Anzeige der Snapshots, die einem Dateisystem zugeordnet sind. SUBVOLUME="/btrfs" FSTYPE="btrfs" NUMBER_CLEANUP="yes" NUMBER_MIN_AGE="1800" NUMBER_LIMIT="100" TIMELINE_CREATE="yes" TIMELINE_CLEANUP="yes" TIMELINE_MIN_AGE="1800" TIMELINE_LIMIT_HOURLY="10" TIMELINE_LIMIT_DAILY="10" TIMELINE_LIMIT_MONTHLY="10" TIMELINE_LIMIT_YEARLY="10" EMPTY_PRE_POST_CLEANUP="yes" EMPTY_PRE_POST_MIN_AGE="1800" Abb. 5: Konfigurationsdatei von snapper für das /btrfs-Dateisystem. systeme anzulegen: die sogenannten Subvolumes. Ein Subvolume kann dann wie ein eigenständiges Dateisystem eingebunden werden. Das Einbinden der Subvolumes wird unter Benutzung einer speziellen Mount-Option und Angabe der Partition, auf der sich das eigentliche btrfs befindet, eingehängt. Die Größe des Subvolume entspricht der Größe des eigentlichen btrfs-Dateisystems. Das Erstellen eines Subvolume wird mit dem Befehl btrfs subvolume create /btrfs/subvolume1 durchgeführt. Das Einbinden des Subvolume erfolgt mittels mount -o subvol=subvolume1 /dev/sda1 /subvolume1. Auf die Daten des Dateisys­tems kann jetzt entweder über den Mountpoint /subvolume1 oder über das automatisch erstellte Verzeichnis unter /btrfs/subvolume1 zugegriffen werden. Das unter /btrfs eingehängte Datei­system kann aber trotzdem jederzeit abgehängt werden. Snapshots Mit Hilfe von Snapshots ist es möglich, eine Momentaufnahme des btrfs-Dateisystems zu erstellen. Diese Momentaufnahme kann für das Erstellen von Backups verwendet werden, ohne dass sich Dateien währenddessen ändern. Eine weitere Nutzung ergibt sich vor ORDIX news 4/2012 23 OpenSource Glossar COW Copy on write - Geänderte Blöcke werden bei Dateisystemen nicht überschrieben sondern zunächst an einem freien Platz vollständig erfasst. Danach werden die Verweise auf die Blöcke in den Metadaten aktualisiert. Copy on Write ermöglicht transaktionsbasierten Dateisystemen, unter anderem ohne Verzögerung Speicherabbilder (oder Schnappschüsse derselben) anlegen zu können. Alte Metadaten und Blöcke werden dabei nicht gelöscht sondern dem jeweiligen Speicherabbild zugeordnet. Cronjob Jobsteuerung von Unix bzw. Linux, der wiederkehrende Aufgaben (cronjobs) zu einer bestimmten Zeit ausführen kann. RAID Redundant Array of Independent Disks - Ein RAID-System dient zur Organisation mehrerer physischer Festplatten eines Computers zu einem logischen Laufwerk, das eine höhere Datenverfügbarkeit bei Ausfall einzelner Festplatten und/oder einen größeren Datendurchsatz erlaubt als ein einzelnes physisches Laufwerk. dem Einspielen von Patches, um im Fehlerfall wieder zum alten Stand zurückkehren zu können. Nach der Erstellung eines Snapshot enthält dieser zunächst genau dieselben Daten, wie das ursprüngliche Dateisystem. Genaugenommen ist ein Snapshot ebenfalls ein Subvolume, mit dem Unterschied, dass der Snapshot den Inhalt eines anderen Dateisystems enthält. btrfs arbeitet hierbei wieder nach dem Verfahren Copy on write. Solange keine Änderungen an den Snapshots durchgeführt werden, ist es ein sehr speicherarmes Verfahren. Werden aber viele Snapshots erstellt und diese auch verändert, sollte man hin und wieder einen Blick auf den Füllstand des Dateisystems werfen. Erstellt wird ein Snaphot mit btrfs subvolume snapshot /btrfs /btrfs/snapshot1. Auf diesen kann mittels des automatisch angelegten Verzeichnisses zugegriffen werden. Ebenso kann er mit der Mount-Option subvol eingehängt werden. Die Ausgabe von btrfs subvolume list /btrfs, mit dem sich der Administrator die verfügbaren Snapshots anzeigen lassen kann, zeigt die Abbildung 4. Subvolumes und Snapshots lassen sich später wieder mit btrfssubvolumedelete/btrfs/ snapshot1 löschen. Snapper In aktuellen Versionen des openSUSE und SUSE Linux Enterprise Server wird ein praktisches Verwaltungswerkzeug namens snapper für btrfs mitgeliefert. Mit dem Befehl snapper lassen sich auf einfache Weise btrfs Snapshots erstellen, löschen, Unterschiede vergleichen und zwischen verschiedenen Versionen hin und her springen. 24 ORDIX news 4/2012 Das Werkzeug ist teilweise stark in das System integriert, so dass vor Änderungen mit dem zentralen Systemadministrationswerkzeug YAST automatisch Snapshots mit dem Befehl snapper angelegt werden. Wird bei SUSE btrfs für das /-Dateisystem genutzt, wird im Verzeichnis /etc/snapper/configs automatisch eine Konfigurationsdatei namens root angelegt. Möchte man snapper für andere Dateisysteme verwenden, muss die Konfigurationsdatei manuell angelegt werden. Abbildung 5 zeigt die Konfigurationsdatei /etc/snapper/configs/btrfs für das in /btrfs gemountete Dateisystem. Die wichtigsten Angaben stellen hier SUBVOLUME und FSTYPE dar. Mittels des snapper-Pakets kommen automatische Cronjobs mit, die regelmäßige Snapshots der btrfs-Dateisysteme durchführen. Das Verhalten hierzu kann über die mit TIMELINE beginnenden Parameter kontrolliert werden. Das Erstellen einer Konfigurationsdatei kann ebenfalls vereinfacht werden. Für ein bestehendes Dateisystem wird diese Datei durch den Befehl snappercreateconfig/btrfs erstellt. Einen manuellen Snapshot erzeugt man mit dem Befehl snapper--config btrfs create --description "InitialSnapshot". Mit dem in Abbildung 5 dargestelltenBefehl snapper --config btrfs list werden die vorhandenen Snapshots angezeigt. Mit der Option undochange können die einzelnen Snapshots aktiviert werden. Fazit Mittlerweile macht das btrfs-Dateisystem einen sehr stabilen Eindruck und wird zu Recht in vielen Distributionen als alternatives Dateisystem angeboten. Die integrierte Volume- und Dateisystemverwaltung erleichtert die Administration und minimiert die notwendigen Befehle. Die weiteren Funktionen, wie die Umwandlung von Dateisystemen und die Snapshot-Verwaltung stellen einen weiteren Pluspunkt dar. Der Umstand, dass bei gespiegelten Dateisystemen der Bruttofestplattenplatz angezeigt wird, ist nur eine Sache der Gewohnheit, wird aber sicherlich am Anfang zu Falschaussagen bei . Das Frontend snapper der Administration führen und die Integration in SUSE-Betriebssysteme stellen einen weiteren positiven Aspekt dar. Fazit aus meiner Sicht: Daumen hoch! Christian Fertsch ([email protected]) Frohe Weihnachten und einen schwungvollen Start ins neue Jahr Wir wünschen allen Lesern und Kunden ruhige und besinnliche Festtage verbunden mit den besten Wünschen für 2013. Haben Sie sich schon über Ihre persönliche Weiterbildung für 2013 Gedanken gemacht? Unser neues Seminarprogramm steht für Sie bereit. Fordern Sie es an oder schauen Sie sich die Broschüre im Internet an: http://www.ordix.de/kontakt/downloads.html Seminare Datenbanken DB-DB-02 Datenbank-Hochverfügbarkeitslösungen für Entscheider Januar - Juni 2013 1 Tag 550,00 € 08.03.2013 | 08.03.2013 DB-DB-03 Datawarehouse Grundlagen 3 Tage 1.290,00 € 25.03.2013 | 27.05.2013 DB-DB-01 Datenbank-Modellierung 2 Tage 890,00 € 07.03.2013 | 16.05.2013 DB-ORA-01 Oracle SQL 5 Tage 1.890,00 € DB-ORA-01A Oracle SQL für Experten 3 Tage 1.290,00 € 25.02.2013 | 22.04.2013 | 03.06.2013 04.03.2013 | 27.05.2013 DB-ORA-02 Oracle Datenbankprogrammierung mit PL/SQL Grundlagen 5 Tage 1.890,00 € 25.02.2013 | 11.03.2013 | 03.06.2013 DB-ORA-34 Oracle Datenbankprogrammierung mit PL/SQL Aufbau 5 Tage 1.890,00 € 28.01.2013 | 25.03.2013 | 22.05.2013 | 10.06.2013 DB-ORA-42 Oracle PL/SQL Tuning 3 Tage 1.890,00 € 18.03.2013 | 02.04.2013 | 17.06.2013 DB-ORA-44 Entwicklung von Web-Anwendungen mit Oracle PL/SQL 2 Tage 1.090,00 € 31.01.2013 | 03.04.2013 | 15.04.2013 | 13.06.2013 DB-ORA-43 Oracle APEX Programmierung 3 Tage 1.890,00 € 21.05.2013 | 03.06.2013 DB-ORA-38 Objektorientierung in Oracle 5 Tage 1.990,00 € 25.02. | 08.04. | 10.04. | 13.05. | 17.06.2013 DB-ORA-03 Oracle Datenbankadministration Grundlagen 5 Tage 1.990,00 € 04.02. | 25.02. | 18.03. | 03.05. | 10.06.2013 DB-ORA-04 Oracle Datenbankadministration Aufbau 5 Tage 1.990,00 € 28.01.2013 | 04.03.2013 | 08.04.2013 | 10.06.2013 DB-ORA-06 Manuelles Oracle Backup und Recovery & weitere Konzepte 5 Tage 1.990,00 € auf Anfrage DB-ORA-32 Oracle Backup und Recovery mit RMAN 5 Tage 1.990,00 € 18.02.2013 | 11.03.2013 | 03.06.2013 DB-ORA-07 Oracle Tuning und Monitoring 5 Tage 1.990,00 € 11.02.2013 | 24.06.2013 DB-ORA-41 Oracle AWR und ASH Analyse und Interpretation 3 Tage 1.290,00 € 04.03.2013 | 27.05.2013 DB-ORA-11 Oracle Troubleshooting Workshop 5 Tage 1.990,00 € 18.02.2013 | 18.03.2013 | 17.06.2013 21.01.2013 | 25.02.2013 | 22.04.2013 | 17.06.2013 DB-ORA-08 Oracle 11gR2 RAC und Grid Infrastructure 5 Tage 2.050,00 € DB-ORA-15 Oracle 11g Neuheiten 5 Tage 1.990,00 € 04.02.2013 | 15.04.2013 | 13.05.2013 DB-ORA-33A Oracle Security 4 Tage 1.590,00 € 11.02.2013 | 21.05.2013 DB-ORA-31 Oracle Data Guard 4 Tage 1.590,00 € 18.02.2013 | 13.05.2013 DB-ORA-35 Oracle Grid Control 3 Tage 1.290,00 € 04.03.2013 | 17.04.2013 | 21.05.2013 DB-ORA-36 Oracle Replikation 3 Tage 1.290,00 € auf Anfrage DB-ORA-39 Oracle Migration und Patching 3 Tage 1.290,00 € 07.01.2013 | 08.04.2013 DB-ORA-40 Oracle Capacity Planning 3 Tage 1.290,00 € 11.03.2013 | 27.05.2013 21.01.2013 | 11.03.2013 | 15.04.2013 DB-ORA-48 Oracle Golden Gate 3 Tage 1.290,00 € DB-INF-01 IBM Informix SQL 5 Tage 1.790,00 € 14.01.2013 | 08.04.2013 DB-INF-02 IBM Informix Administration 5 Tage 1.990,00 € 04.02.2013 | 22.04.2013 DB-INF-04 IBM Informix Backup und Recovery 3 Tage 1.290,00 € 25.03.2013 DB-INF-03 IBM Informix Tuning und Monitoring 5 Tage 1.990,00 € 18.03.2013 | 24.06.2013 DB-INF-07 IBM Informix Hochverfügbarkeits-Technologien unter Unix 4 Tage 1.590,00 € auf Anfrage DB-DB2-01 IBM DB2 für Linux/Unix/Windows SQL Grundlagen 5 Tage 1.890,00 € 21.01.2013 | 15.04.2013 DB-DB2-02 IBM DB2 für Linux/Unix/Windows Administration 5 Tage 1.990,00 € 04.02.2013 | 10.06.2013 DB-DB2-05 IBM DB2 für Linux/Unix/Windows Monitoring und Tuning 3 Tage 1.290,00 € 18.02.2013 | 11.03.2013 | 17.06.2013 DB-MY-01 MySQL Administration 3 Tage 1.190,00 € 14.01.2013 | 15.04.2013 DB-MSSQL-1 Microsoft SQL Server Administration 5 Tage 1.790,00 € auf Anfrage PHP Programmierung Grundlagen 5 Tage 1.690,00 € 04.02.2013 | 13.05.2013 25.02.2013 | 21.05.2013 Januar - Juni 2013 Entwicklung P-PHP-01 P-PHP-02 PHP Programmierung Aufbau 3 Tage 1.190,00 € P-PERL-01 Perl Programmierung Grundlagen 5 Tage 1.690,00 € 07.01.2013 | 08.04.2013 P-PERL-02 Perl Programmierung Aufbau 5 Tage 1.690,00 € 21.01.2013 | 22.04.2013 P-UNIX-01 Shell, Awk und Sed 5 Tage 1.690,00 € 18.02.2013 | 03.06.2013 P-UNIX-01A Awk Intensiv-Workshop 3 Tage 1.190,00 € 03.04.2013 | 05.04.2013 P-XML-01 Einführung in XML 3 Tage 1.190,00 € P-XML-02 XML Programmierung mit Java 2 Tage 890,00 € auf Anfrage P-XML-03 Oracle und XML 3 Tage 1.190,00 € auf Anfrage Web- und Applikations-Server 11.02.2013 | 06.05.2013 Januar - Juni 2013 INT-04 Apache Web-Server Installation und Administration 3 Tage 1.190,00 € 28.01.2013 | 10.04.2013 | 27.05.2013 INT-07 Tomcat Konfiguration und Administration 3 Tage 1.190,00 € 18.03.2013 | 27.05.2013 | 24.06.2013 INT-08 WebSphere Application Server Installation und Administration 3 Tage 1.390,00 € 11.03.2013 | 10.06.2013 INT-11 Administration und Konfiguration für JBoss 5 3 Tage 1.190,00 € 18.02.2013 | 06.05.2013 INT-11_7 Administration und Konfiguration für JBoss 7 3 Tage 1.190,00 € 25.02.2013 | 22.05.2013 Informationen und Anmeldung Für Informationen und Fragen zu individuell zugeschnittenen Seminaren, Ausbildungsreihen oder Inhouse-Schulungen stehen wir Ihnen gerne zur Verfügung. Auf Wunsch senden wir Ihnen auch unser komplettes Seminarprogramm zu. 26 ORDIX news 4/2012 Online-Anmeldung, aktuelle Seminarinhalte und Termine unter: http://training.ordix.de Seminare Betriebssysteme und Monitoring BS-01 Unix/Linux Grundlagen für Einsteiger Januar - Juni 2013 5 Tage 1.690,00 € 21.01.2013 | 11.02.2013 | 08.04.2013 | 24.06.2013 BS-25 Unix Aufbauseminar für Datenbank- und Applikationsbetreuer 5 Tage 1.790,00 € 11.03.2013 | 22.04.2013 | 17.06.2013 BS-02 Linux Systemadministration 5 Tage 1.690,00 € 18.02.2013 | 11.03.2013 | 15.04.2013 BS-09 Linux Hochverfügbarkeits-Cluster 3 Tage 1.290,00 € 07.01.2013 | 22.04.2013 BS-19 Linux Cluster mit Pacemaker 3 Tage 1.190,00 € 21.01.2013 | 06.05.2013 | 10.06.2013 BS-16 OpenLDAP - Praxiseinsatz im Netzwerk 4 Tage 1.490,00 € 07.01.2013 | 02.04.2013 BS-03 Solaris 10 Systemadministration Teil I 5 Tage 1.990,00 € 25.02.2013 | 03.06.2013 BS-04 Solaris 10 Systemadministration Teil II 5 Tage 1.990,00 € 04.03.2013 | 24.06.2013 BS-06 Solaris 10 für erfahrene Unix/Linux-Umsteiger 5 Tage 1.990,00 € 18.03.2013 BS-24 Solaris 11 Administration Neuheiten 5 Tage 1.990,00 € 25.03.2013 | 13.05.2013 BS-18 Solaris Virtualisierung mit ZFS und Container (Zonen) 5 Tage 1.990,00 € 11.02.2013 | 15.04.2013 BS-23 Solaris Virtualisierung mit LDOM 3 Tage 1.290,00 € 14.01.2013 | 22.04.2013 AIX-01 IBM AIX Systemadministration Grundlagen 5 Tage 1.990,00 € 14.01.2013 | 22.04.2013 AIX-02 IBM AIX Installation, Backup und Recovery mit NIM 3 Tage 1.290,00 € 25.03.2013 | 24.06.2013 AIX-03 Analyse v. komplexen AIX Performance Problemen 5 Tage 2.300,00 € 18.02.2013 | 10.06.2013 SM-NAG-01 Systemüberwachung mit Nagios Grundlagen 3 Tage 1.190,00 € 07.01.2013 | 08.04.2013 SM-NAG-02 Systemüberwachung mit Nagios Aufbau 2 Tage 890,00 € 10.01.2013 | 11.04.2013 Projekt-/IT-Management Januar - Juni 2013 PM-01 IT-Projektmanagement - Methoden und Techniken 5 Tage 1.990,00 € PM-06 System. Projektmanagement - Projektteams souverän führen 4 Tage 1.850,00 € 11.02.2013 | 22.04.2013 04.03.2013 | 03.06.2013 PM-08 Agiles Projektmanagement mit SCRUM 2 Tage 1.100,00 € 11.03.2013 | 10.06.2013 PM-08-Z SCRUM Praxis und Zertifizierung 1 Tag 250,00 € 13.03.2013| 12.06.2013 PM-09 Capability Maturity Model Integration (CMMI) 2 Tage 1.100,00 € auf Anfrage PM-10 Kennzahlen der IT 2 Tage 1.100,00 € 27.02.2013| 12.06.2013 PM-07 Krisenmanagement in Projekten 2 Tage 1.100,00 € 27.05.2013| 28.05.2013 PM-05 IT-Projektcontrolling 3 Tage 1.290,00 € 14.01.2013| 03.04.2013 PM-11 Konfliktmanagement 2 Tage 1.100,00 € 25.03.2013| 24.06.2013 MGM-02 IT-Architekturen 3 Tage 1.650,00 € 28.01.2013| 06.05.2013 MGM-01 E-Business 2 Tage 1.100,00 € auf Anfrage MGM-07 IT-Strategien effizient entwickeln 2 Tage 1.100,00 € 03.04.2013| 26.06.2013 MGM-03 IT-Management 5 Tage 1.990,00 € 18.02.2013| 13.05.2013 MGM-05 IT-Risikomanagement 3 Tage 1.650,00 € 18.02.2013| 06.05.2013 MGM-04 IT-Prozessmanagement 3 Tage 1.650,00 € 21.01.2013| 15.04.2013 Java-JEE Januar - Juni 2013 E-UML-01 Anforderungsanalyse mit UML 3 Tage 1.190,00 € 07.01.2013| 03.04.2013 E-SWA-01 Softwarearchitekturen 5 Tage 1.890,00 € 04.03.2013| 10.06.2013 OO-01 Einführung in die Objektorientierte Programmierung 3 Tage 1.190,00 € 11.03.2013| 24.06.2013 P-JAVA-01 Java Programmierung Grundlagen 5 Tage 1.690,00 € 28.01.2013| 15.04.2013 P-JAVA-03 Java Programmierung Aufbau 5 Tage 1.690,00 € 11.02.2013| 15.02.2013 P-JAVA-02 Java GUI Entwicklung mit Swing 5 Tage 1.690,00 € 04.03.2013| 17.06.2013 P-JEE-01 JEE für Entscheider 1 Tag 590,00 € 14.01.2013| 15.04.2013 P-JEE-02 Einführung in JEE 3 Tage 1.290,00 € 15.01.2013| 16.04.2013 P-JEE-03A JSP und Servlet Programmierung 5 Tage 1.590,00 € 25.03.2013| 03.06.2013 P-JEE-04 EJB Programmierung 5 Tage 1.590,00 € 07.01.2013| 08.04.2013 P-JEE-05 Web-Anwendungen mit JavaServer Faces (JSF) 5 Tage 1.590,00 € 18.03.2013| 22.03.2013 P-JEE-06 Entwickeln mit dem Spring-Framework 3 Tage 1.190,00 € 21.01.2013| 03.04.2013 INT-05 Java Web Services 3 Tage 1.190,00 € 04.02.2013| 06.05.2013 J-HIB-01 Hibernate und die Java Persistence API 5 Tage 1.690,00 € 14.01.2013| 22.04.2013 P-JEE-08 Java Performance Tuning 3 Tage 1.290,00 € 18.02.2013| 13.05.2013 Zentrale: ORDIX AG Westernmauer 12 - 16 33098 Paderborn Tel.: 05251 1063-0 Seminarzentrum: ORDIX AG Kreuzberger Ring 13 65205 Wiesbaden Tel.: 0611 77840-00 Unsere Seminarstandorte sind: Wiesbaden, Bielefeld und Hannover. Die Preise gelten pro Seminar pro Teilnehmer in Euro zzgl. ges. MwSt., Inhouse-Preise auf Anfrage. ORDIX news 4/2012 27 Betriebssysteme Neue Reihe: Kerberos (Teil I) Mit dem Höllenhund im Urlaub Kerberos, der dreiköpfige Höllenhund – das ist oft der erste Gedanke, wenn man sich mit diesem Thema beschäftigt. Wenn man sich dann dem Ganzen etwas angenähert und mit dem Höllenhund angefreundet hat, kommt er einem eher wie ein zahmer Hund vor. Dieser hat allerdings seinen eigenen Kopf und weiß ziemlich genau was er will. Im ersten Teil dieser Artikelreihe möchten wir Ihnen die Hilfe des Höllenhundes anhand eines Winterurlaubs näher erläutern. In den folgenden Ausgaben der ORDIX news werden wir dann eine beispielhafte Kerberos-Umgebung aufbauen. Die Geschichte Aber fangen wir vorne an: Wo kommt Kerberos eigentlich her? Entwickelt wurde das Produkt am Massachusetts Institute of Technology (MIT). Dort war es Bestandteil des Athena Projekts (1983-1991). In diesem Projekt sollte erstmals eine flexible und verteilte Rechnerumgebung geschaffen werden. Für diese Umgebung wurde neben einem flexiblen Desktop (hier stammt das X Window System her [2]) natürlich auch ein Mechanismus für die Absicherung von Verbin- 28 ORDIX news 4/2012 dungen benötigt. Dieser Mechanismus ist unter dem Teilprojektnamen Kerberos bekannt geworden. Die Aufgabe Stellt sich nun die Frage, was die eigentliche Aufgabe des Kerberos-Protokolls ist und wofür es nicht gedacht ist? Wie eingangs beschrieben, ist die Absicherung von Verbindungen die Hauptaufgabe von Kerberos. Dazu gehört auch die Authentifizieung der beteiligten Anwender, Dienste und Systeme. Je nach verwendetem Dienst kann zudem der komplette Da- Betriebssysteme tenverkehr verschlüsselt werden. Diesen Aspekt werden wir in einem der nächsten Artikel dieser Reihe anhand von NFS demonstrieren. Mittels Kerberos kann sichergestellt werden, dass der Anwender auch wirklich der ist, der er zu sein vorgibt. Für den Anwender hat es den Vorteil, dass er sich nur einmal gegenüber Kerberos authentifizieren muss und danach alle angeschlossenen Dienste direkt verwenden kann. „Reisebüro“ Authentification Service „Reiseleiter“ Ticket Granting Service „Reiseveranstalter“ Key Distribution Center Dem Kerberos-Server ist es dabei egal, wer genau hinter einer Anfrage steht, solange die Kennwörter stimmen. Für ihn sind Anwender, Dienste und Sys­teme nur Objekte. Dies führt zu dem, was nicht seine Aufgabe ist: Kerberos übernimmt keine Auto­risierung. Ob ein mit Kerberos authentifizierter Anwender den Service auch verwenden darf, ist eine Frage, welche Kerberos nicht beantworten kann. Die Autorisierung muss innerhalb der Dienste bzw. Betriebssysteme selbst vorgenommen werden. Kerberos stellt lediglich X news 4/2012 sicher, dass der Anwender auch derjenige ist, für den er sich ausgibt. „Kunde“ Client „Hotel“ System/Service Abb. 1: Konfiguration Kerberos Realm. Versionen von Kerberos Die erste, für die Öffentlichkeit vorgesehene Version, ist 1988 mit der Version 4 erschienen. Aktuell wird mit Kerberos 5 gearbeitet. Die fünfte Version des Protokolls ist sehr stabil und ausgereift und findet dementsprechend viele Abnehmer. Es gibt für diverse Betriebssysteme und Applikationen, Implementierungen und Schnittstellen. Unsere Kunden setzen Kerberos auf Solaris, Linux, AIX und natürlich implizit mit Windows Active Directory ein. Bemerkenswert ist hierbei, dass Windows AD auf einer von Microsoft abgewandelten Art des KerberosProtokolls aufbaut. Es ist also sehr weit verbreitet und wahrscheinlich haben auch Sie es schon verwendet. In den folgenden Teilen dieser Artikelreihe werden wir uns auf die Betriebssysteme SuSE Linux Enterprise Server 11 SP2 [3] bzw. später auch auf ein Microsoft Windows 2008 R2 [4] beziehen. „Reisebüro“ Authentification Service „Voucher“ Ticket Granting Ticket „Reiseveranstalter“ Key Distribution Center „Voucher“ Ticket Granting Ticket „Kunde“ Client Abb. 2: Ticket Granting Ticket. Das Urlaubsprinzip 1. Der Reiseveranstalter Als anschauliche Analogie für den Authentifizierungsablauf nehmen wir eine Reise in den Winterurlaub. Anhand der verschiedenen Stationen lassen sich der Ablauf und die Bedeutung der verschiedenen KerberosBegriffe gut nachvollziehen. Damit wir die Reise im Reisebüro buchen können, müssen dem Reiseveranstalter zunächst alle notwendigen Daten vorliegen. Dies beinhaltet nicht nur die Daten der Reiseteilnehmer, sondern auch die Daten vom Wunschhotel. Dazu muss er Verträge mit allen Beteiligten abschließen. Im Bezug auf Kerberos brauchen bzw. konfigurieren wir also eine Umgebung einen Kerberos Realm (siehe Abbildung 1). Wir möchten also eine schneereiche Winterreise buchen. Was muss dafür getan werden? 29 Betriebssysteme 2. Der Voucher „Voucher“ Ticket Granting Ticket „Reiseleiter“ Ticket Granting Service Gutschein (Session Key) „Kunde“ Client Bei unserem Besuch im Reisebüro buchen wir nun die Reise und erhalten im Gegenzug ein Flugticket und einen persönlichen Voucher mit dem wir im Urlaub den Zugang zu den diversen Dienstleistungen haben. Natürlich müssen wir uns gegenüber dem Reisebüro ausweisen, also ein Pass-Dokument vorlegen bzw. bei Kerberos das Passwort kennen. Das Buchen der Reise ist übertragen auf das Kerberos-Umfeld die Authentifizierung des Anwenders. Der Voucher kann hier mit einem Ticket Granting Ticket gleich gesetzt werden, da er mir später den Zugriff auf die einzelnen, gebuchten Dienstleistungen von Dritten ermöglicht. Diesen Zusammenhang verdeutlicht Abbildung 2. Abb. 3: Session Key. Gutschein (Session Key) 3. Endlich im Urlaub, und jetzt? Abb. 4: Der Service. Die Anreise ist vollbracht und nun stehen wir vor dem gebuchten Hotel und möchten gerne einchecken. Da unsere Unterkunft uns persönlich nicht kennt, be­ nötigen wir einen personalisierten Gutschein für das Hotel. Als Verbindungsstelle kann hier der Reiseleiter Hr. TGS dienen, er prüft unseren Voucher und gibt uns dann einen Gutschein für das Hotel. Dieser personifizierte Gutschein entspricht einem Session Key (siehe Abbildung 3). Glossar 4. Die Rezeption des Traumhotels AS Authentification Service - Dieser Service ist für die erste Authentifizierung zuständig. An der Rezeption erwartet der freundliche Mitarbeiter natürlich, dass man sich ausweisen kann. Da wir den, vom Reiseleiter erstellten Gutschein, haben ist dies aber kein Problem. Wir können sofort einchecken und den Urlaub genießen (siehe Abbildung 4). „Kunde“ Client „Hotel“ System/Service KDC Key Distribution Center - Oberbegriff für den Kerberos-Server, es besteht aus dem AS und dem TGS. Kerberos-Objekte Sowohl die Dienste und Systeme als auch die Anwender (Clients), welche in einem Kerberos Realm bekannt sind. Kerberos Realm Entspricht einer Domäne, sprich einem abgegrenzten Herrschaftsbereich im Netzwerk. Nur die, dem KDC des Realm, bekannten Objekte können authentifiziert werden. Ticket Ein Ticket besteht aus verschlüsselten Session Keys, welche für die Authentifizierung benötigt werden. Die Tickets werden zum einen individuell für die verschiedenen Dienste und zum anderen personifiziert für jeden Anwender generiert. Tickets haben eine begrenzte Gültigkeit. TGS Ticket Granting Service - Dieser Service stellt gültige Tickets aus. TGT Ticket Granting Ticket - Ticket mit einer besonderen Position. Es wird vom AS ausgestellt und erlaubt dem Client sich ein Ticket, für einen bestimmten Dienst, vom TGS zu holen. 30 ORDIX news 4/2012 Wenn wir weitere Dienstleistungen, wie zum Beispiel eine Ski-Vermietung, nutzen möchten, benötigen wir wieder einen personifizierten Gutschein von unserem Reiseleiter speziell für diesen Dienst. Dieses Vor­gehen ermöglicht uns einen sorgenfreien Urlaub ohne Bargeld. Alles wird über den Voucher und die Gutscheine sicher geregelt. Falls wir den Voucher verlieren sollten, können wir uns jederzeit einen neuen holen. Dazu müssen wir uns nur erneut ausweisen. Mit den Gutscheinen verhält es sich genauso, wir be­ nötigen hier lediglich einen gültigen Voucher. Fazit Die gewählte Analogie gibt natürlich noch nicht alle Eigenschaften und Optionen von Kerberos wieder, Betriebssysteme ermöglicht aber schon einen guten Einblick in den Ablauf und die Begriffe des Protokolls (und verbreitet eine winterliche Stimmung). Der Höllenhund ist also beim näheren Betrachten gar nicht so schlimm und sein Verhalten ist nachvollziehbar. Links ► [1] Kerberos Homepage: http://www.kerberos.org ► [2] X Window System: http://www.x.org/wiki/ ► [3] SuSE Linux 11 SP2 Distribution: Ausblick In den nächsten Ausgaben der ORDIX news werden wir das Urlaubsprinzip umsetzen und einen Kerberos Realm aufbauen. Wie ein bestimmter Dienst (im Beispiel ssh und nfs) Kerberos verwendet und wie dies möglichst transparent für den Endanwender implementiert werden kann, steht im Mittelpunkt des dritten Teils. Im Fokus des vierten und letzten Teils dieser Reihe steht dann die Anbindung unserer bisher verwendeten LinuxUmgebung an eine Windows-Domäne. http://www.suse.com/de-de/ ► [4] Microsoft Windows 2008 R2: http://www.microsoft.com/de-de/ Bild © flickr.com | Standing Neo |CowCopTim © sxc.hu | Ready to go |emsago © sxc.hu | Winterspaziergang | Kristkindl Veit Jäger ([email protected]) Dieser Platz ist frei! Für Sie? - Anzeige - Werden Sie Teil unseres TEAMS: • • • • • • Oracle Consultant (m/w) Oracle Senior Consultant (m/w) Java Senior Softwarearchitekt (m/w) Java Consultant (m/w) MS SQL Consultant (m/w) WebSphere Consultant (m/w) Dies erwartet Sie: • 100 Kollegen an fünf ORDIX Standorten • flache Hierachien • breites Aufgabenfeld • kontinuierliche Weiterbildung • attraktive Vergütung und Firmen-PKW Besuchen Sie unser Bewerberportal: www.ich-will-ins-ordix-team.de ORDIX news 4/2012 31 Datenbanken NoSQL vs. SQL - Hype oder echte Alternative? (Teil II) Oracle NoSQL Getreu dem Motto Gegensätze ziehen sich an, hat Oracle sein Portfolio um eine eigene Key/Value-Datenbank erweitert. Damit ist Oracle der einzige Datenbank­ hersteller, der die gesamte DB-Produktpalette bedienen kann. Dieser Artikel beschreibt, inwieweit Oracle dem Key/Value-Datenbankenansatz gerecht wird und welche Anwendungsbereiche bedient werden können. Was ist überhaupt eine Key/Value-Datenbank? Key/Value-Datenbanken sind vermeintlich die simpelste Form einer Datenbank. Sie speichern ihre Daten in Form eines Tupels mit einem Schlüssel und einem dazugehörigen Wert ab. Hierbei ist der Schlüssel (Key) ein String und der Wert (Value) ein Binary Large Object (BLOB). Warum Key/Value-Datenbanken? Um die Notwendigkeit und den Nutzen von Key/ValueDatenbanken zu erkennen, bedienen wir uns zweier Beispiele. Nehmen wir an, dass Daten aus sozialen Netzwerken, Blogs oder mobilen Geräten verarbeitet und analysiert werden sollen. Da drängen sich zu Beginn einige Fragen auf: • • • • • Wie groß wird das Datenvolumen sein? In welcher Form treten die Daten auf? Wie können diese Daten abgespeichert werden? Wie kann auf die Daten zugegriffen werden? Welche Arten von Zugriffen werden erwartet? Allein bei der Betrachtung der ersten Fragen wird klar, dass das Ziel, Daten aus sozialen Netzwerken, Blogs oder mobilen Geräten zu verarbeiten und zu analysieren, mit relationalen Datenbanken (RDB) nur schwer zu erfüllen sein wird. Die Datenmengen werden zu groß und zu unstrukturiert sein, als dass sie mit vertretbarem Aufwand in einer relationalen Struktur abgebildet werden können. Eine Key/Value-Datenbank kümmert sich hingegen nicht um Datenstrukturen. Zudem muss sie sich bei einem verteilten Dateisystem als Grundlage, z.B. das 32 ORDIX news 4/2012 Hadoop Distributed File System (HFS) bei Oracle NoSQL, auch keine Gedanken über die Grenzen der Speicherung von sehr großen Datenmengen machen. Weiterhin werden Key/Value-Datenbanken in Umge­ bungen eingesetzt, wo eine RDB zu aufwändig und zu schwerfällig wäre. Die eingekaufte BerkleyDB von Oracle ist ein bekanntes Beispiel für eine schlanke Key/Value-Datenbank. Sie wird, anders als in unseren vorherigen Überlegungen, oft als eingebettete Datenbank verwendet. Dabei verarbeitet sie kleine Mengen von Daten, z.B. Routing-Tabellen in Routern. Hier muss man nicht lange überlegen um festzustellen, dass eine RDB für Routing-Tabellen ähnlich dem Schießen mit Kanonen auf Spatzen gleichkommt. Was zeichnet die Oracle NoSQL aus? Die Oracle NoSQL-Datenbank zeichnet sich, wie die meisten NoSQL-Datenbanken, durch ihre Schema­ freiheit aus und basiert auf dem oben genannten Datei­system HFS. Das Schlüsselkonzept weicht von den Konzepten anderer Key/Value-Datenbanken in­ sofern ab, als dass hier eine Unterscheidung des Keys vorgenommen wird. Bei Oracle NoSQL repräsentiert ein Schlüssel den Pfad zu einem Wert in einem hier­ archischen System und heißt Full Key Path. Dieser Full Key Path teilt sich dabei in die Subklassen Major Key Path und Minor Key Path auf. Der Major Key Path muss dabei, anders als der Minor Key Path, immer aus einer Komponente bestehen und dient der Identifizierung des Datensatzes auf einem Knoten. Der Full Key Path identifiziert das Key Value Pair (KVP) auf dem Knoten und der Minor Key Path hält zu dem Major Key Path die Attribute des Datensatzes vor (siehe Abbildung 1). Physisch werden alle Datenbanken KVP mit dem gleichen Major Key Path zusammengefasst und bieten Geschwindigkeitsvorteile bei aggregierten Abfragen. Diese Zusammenschlüsse ermöglichen der Methode multiGet Abfragen zu erstellen, die effizienter sind als einfache Abfragen mit der Methode Get. ACID dank ausgeklügeltem Konsistenzmodell oder …. ? Die Unterteilung innerhalb des Schlüssels lässt sich auf die verschiedenen Konsistenzmodelle zurückführen. Oracle NoSQL unterstützt vier verschiedene (siehe Abbildung 2): userid Major key: Strings Minor key: subscriptions Value: subscriptions ByteArray address phone# E-Mail# Abb.1:Major-undMinorKeyPath(Quelle:[2]). • absolute: Garantiert lesenden Operationen, dass sie den zuletzt geschriebenen Datensatz bei einer Abfrage erhalten. • version-based-consistency: Gibt einer Anwen- Garantien Daten eines Ggf. veraltete Daten Datenoperationen bei bestimmten Zeitpunktes bekannten Versionen Datenoperationen auf der neuesten Version dung die Datensätze zurück, die mindestens eine bestimmte Version haben oder neuer sind. • time-based-consistency: Ermöglicht der Anwendung zu bestimmen, um wie viel die Ergebnisse einer Abfrage älter sein dürfen, als die Daten auf dem Master-Knoten. Konsistenz Weak Time-Based Version-Based Absolute Abb.2:Konsistenzspektrum(Quelle:[2]). • weak-consistency: Erlaubt der Datenbank einen Datensatz möglichst schnell zurückzuliefern, auch wenn dieser evtl. inkonsistent und damit womöglich veraltet ist. Um die Unterschiede zwischen den Konsistenzmodellen zu verdeutlichen, betrachten wir die beiden Extrempunkte. Sollte eine strikte Konsistenz in der Datenhaltung gefordert sein, muss die Konsistenzstufe „absolute‟ gewählt werden. Hierbei garantiert Oracle, dass Datenbankoperationen auf der neuesten Version des Datensatzes stattfinden. Dieses wird durch blockierendes Schreiben erreicht. Dies bedeutet, dass ein Datensatz erst dann als erfolgreich in der Key/Value-Struktur aufgenommen worden ist, wenn alle betreffenden Knoten den Datensatz haben schreiben können. Dieses Vorgehen nimmt viel Zeit in Anspruch und hat somit negative Auswirkungen auf konkurrierende Prozesse (also auf die Verfügbarkeit der Daten). Der entgegengesetzte Extrempunkt ist die Konsistenzstufe „weak-consistency‟. Hier kommt der Schreibprozess zurück, sobald der Datensatz auf einem Knoten gespeichert werden konnte. Dies hat den Vorteil, dass Schreiboperationen sehr schnell erfolgen und konkurrierende Prozesse den Datensatz weiter lesen und verarbeiten können. Allerdings wird im Replikations-Gruppe 0 Replikationsfaktor = 3 Rep-Node Master Rep-Node Rep-Node Replica n Rep-Node Replica … Replica 1 … Replikations-Gruppe n Rep-Node Master Rep-Node Rep-Node Replica n Rep-Node Replica … Replica 1 Speicherknoten Daten Zentrum 1 Daten Zentrum n Abb.3:Single-Master-Architektur(Quelle:[2]). ORDIX news 4/2012 33 Datenbanken Create, Read, Update und Delete KVPerstellen Key mykey = Key.createKey(‘Musterid‘); String ValString=’Musterwert’; Store.putIfAbsent(key,Value.createValue(valString.getBytes())) KVP aktualisieren String newvalString = ‘Dies ist der neue Wert‘; Value newval = Value.createValue(newvalString.getBytes()); Store.putifVersion(key, newval,retValue.getVersion()); KVPlesen ValueVersion vv = kvstore.get(myKey); Value value = vv.getValue(); Version version = vv.getVersion(); KVPlöschen store.delete(key); Abb.4:KeyValuePairsbearbeiten. 24NodeCluster 48NodeCluster 96NodeCluster Nachdem bereits die Unterschiede zwischen Majorund Minor Key verdeutlicht wurden, können wir uns der Frage widmen: Wie bekomme ich Daten in die Datenbank und wie bekomme ich sie wieder heraus? Die Oracle API unterstützt den Datenbankzugang über die CRUD-Operationen put und get. Verschiedene put-Methoden dienen dem Erzeugen und Aktualisieren von Daten. Mit der Methode putIfAbsent werden Daten erzeugt, wohingegen mit der Methode putIfPresent Datensätze aktualisiert werden. Mit der Methode put kann beides erreicht werden. So werden Datensätze aktualisiert, sollten sie bereits in der Datenbank vorhanden sein und neu angelegt, wenn sie noch nicht existieren. Beim Aktualisieren eines Datensatzes wird nicht der bestehende Datensatz geändert, vielmehr wird eine neue Version des Datensatzes geschrieben. Die API beinhaltet mit der Methode putIfVersion eine weitere put-Methode, die Anwendungen die Implementierung von konsistenten Lese- und Schreiboperationen ermöglicht (siehe Abbildung 4). Um Daten aus der Datenbank abzufragen, wird die Methode get verwendet. Central Eastern Western Abb.5:Skalierung(Quelle:[3]). schlimmsten Fall ein alter Datenbestand von einem Nicht-Master-Knoten gelesen, während auf dem Master-Knoten bereits ein neuer Stand zur Verfügung steht. Werden die alten Daten geändert und zurückgeschrieben, sind vorherige Änderungen ungesehen überschrieben worden. Replikation in einer Single-Master-Architektur Damit die Daten auch während eines Fehlers verfügbar bleiben, verwendet die Oracle NoSQL-Datenbank Replikationsmechanismen in einer Single-Master-Architektur (siehe Abbildung 3). Der Master nimmt die Schreibanfragen entgegen und repliziert sie auf die einzelnen Knoten. Sollte nun ein Fehler den Master-Knoten betreffen, ist gewährleistet, dass sämtliche Daten noch zur Verfügung stehen. Mit Hilfe des Paxos-Protokolls wird ein Knoten zum neuen Master-Knoten umgewandelt und steht somit für Schreibanfragen und nicht mehr für Leseanfragen zur Verfügung. 34 ORDIX news 4/2012 Neben den verschiedenen Schreibmethoden, unterstützt die Oracle API auch verschiedene Methoden für das Löschen von Daten. Zum bedingten Löschen, analog zum bedingten Schreiben eines Datensatzes, wird die Methode deleteIfversion verwendet und für das unbedingte Löschen die Methode delete. Stärken und Schwächen Die Stärken der Oracle NoSQL-Datenbank liegen in der Verarbeitung von semi-strukturierten Daten und der Gewährleistung von ACID-Transaktionen. Darüber hinaus skaliert sie linear bei konstanter Antwortzeit (siehe Abbildung 5). Weiter weist sie durch die SingleMaster-Architektur und den Paxos-Algorithmus keinen Single Point of Failure auf. Als Schwäche kann angesehen werden, dass keine Adhoc-Queries möglich sind und alle Abfragen in der Anwendung programmiert werden müssen. Ebenso gibt es keine standardisierte Abfragesprache wie bspw. SQL. Die API bietet lediglich die CRUDOperationen an. Weiterhin gibt es die Oracle NoSQL zurzeit nur für Linux und Solaris 10. Der Anwender ist also in der Portierbarkeit stark eingeschränkt. Datenbanken Fazit Die Oracle NoSQL-Datenbank ist für die Verarbeitung und Analyse von sehr großen Mengen an semistrukturierten Daten entwickelt worden. Dazu zählen insbesondere Daten aus sozialen Netzwerken, Blogs, und mobilen Geräten. Diese Daten konnte Oracle mit seinen bestehenden Datenbanklösungen bisher nicht optimal verarbeiten und versucht mit der Key/ValueDatenbank diese Lücke zu schließen. Angeboten wird die Datenbank zum einen als OpenSource-Variante und zum anderen als kommerzielle Version mit der passenden Hardware (Exadata Database Machine und Exalytics Business Intelligence Machine). Oracle NoSQL ist eine hochverfügbare, verteilte Datenbank, die für Schreiboperationen optimiert worden ist. Im Gegensatz zu anderen NoSQL-Datenbanken kann sie alle ACID-Eigenschaften garantieren, was allerdings zulasten der Schreibgeschwindigkeit und der Verfügbarkeit geht. Glossar API Application Programming Interface - Sammlung von Klassen, welche eine Schnittstelle zu einer Hardware oder Anwendung definieren. BLOB Binary Large Object - große binäre und für Datenbanken nicht weiter strukturierte Objekte bzw. Felddaten CRUD-Operationen Abkürzung für Create-, Read-, Update- und Delete-Operationen. HDFS Hadoop File System ist ein verteiltes, hochverfügbares und leistungsfähiges Dateisystem, welches Anwendungen mit hohem Datendurchsatz den Zugang zu Daten ermöglicht. Dabei speichert es sehr große Datenmengen auf mehrere Knoten (Rechner). KVP Key Value Pair ist ein zusammengehöriges Datenpaar, das über den Schlüssel identifiziert werden. Der Schlüssel ist dabei ein „unique identifier“ für die Daten, die sich im Wertebereich befinden. Nicht-byzantinischerFehler Fehlerklasse zur Berechnung der Zuverlässigkeit, z.B. read(). Hier liefert ein „nicht-byzantinischer Fehler‟ entweder den richtigen Inhalt oder gar keinen zurück. Ein byzantinischer Fehler würde zudem ein falsches Erbebnis liefern. NoSQL NoSQL (Not only SQL) werden Datenbanksysteme genannt, die keine relationalen Datenbanksysteme sind. Dominic Oberländer ([email protected]) Paxos-Protokoll Das Herzstück des Paxos-Algorithmus ist ein Einigungsprotokoll, das eine beliebige Anzahl von nicht-byzantinischen Fehlern tolerieren kann. Die Konsistenz der Daten bleibt dabei immer gewährleistet. SEQUEL Structured English Query Language - Vorläufer von SQL, wurde für das Projekt System R von IBM entwickelt (ca. 1975). SQL Die Structured Query Language ist die Standardabfragesprache in relationalen Datenbanken. Links ► [1] Oracle NoSQL Download: http://www.oracle.com/technetwork/products/nosqldb/downloads/index.html ► [2] Literaturnachweis (Abbildungen in Anlehnung an): Seltzer, Margo: Oracle: NoSQL Database. http://www.oracle.com/technetwork/database/nosqldb/learnmore/nosqlwp-1436762.pdf Version: 2011 ► [3] Webcast - Watch the Big Data Keynote at Openworld 2011: http://www.oracle.com/us/products/database/nosql/overview/index.html ORDIX news 4/2012 35 IT-Management IT-Management 3.0 Raus aus der Rechtfertigungsfalle Sie arbeiten im IT-Umfeld, als Abteilungsleiter, Entwickler, Organisator, Supporter, Projektleiter oder Projektmitarbeiter und müssen häufig die erbrachte Leistung rechtfertigen? Kennen Sie den Umstand, die angeforderte Leistung erbracht zu haben und am Ende hagelt es dennoch Kritik? Steht bei Ihnen die Schuldfrage eher im Mittelpunkt, als die gemeinsame Suche nach einer Lösung? Dann stecken Sie vermutlich in der Rechtfertigungsfalle. Immer häufiger lässt sich beobachten, dass die ITAbteilung im Unternehmen als ein notwendiges Übel betrachtet, das nur Kosten verursacht und unverständlich kommuniziert. Das löst auf zwei Seiten Unzufriedenheit aus: zum einen auf Seiten der betreuten Fachbereiche und zum anderen bei den Mitarbeitern im IT-Umfeld. Beide fühlen sich nicht verstanden bzw. angemessen behandelt. Was sind mögliche Ursachen? Bei der Suche nach den Ursachen fällt auf, dass die wachsende Komplexität sicherlich ein zentraler Aspekt ist. Die Themenvielfalt, die Zahl der Anforderungen, die Abhängigkeiten und die Ausnahmen von den Regeln, haben in den vergangenen Jahren immer mehr zuge- 36 ORDIX news 4/2012 nommen (siehe Abbildung 1). Entsprechend wachsen die potentiellen Fehlerquellen für die IT. Und wer arbeitet macht Fehler. Hinzu kommt, dass die 100%-Qualität im Vorfeld mitunter nicht überprüfbar ist, da eine entsprechende technische Umgebung fehlt und natürlich ab einem gewissen Punkt auch gar nicht mehr bezahlbar ist. Eine weitere Ursache kann die unterschiedliche Wahrnehmung des Nutzens der Systeme sein. Die Umsetzungen, die durch die IT-Abteilungen durchgeführt werden, dienen den allgemeinen Geschäftsprozessen. Sie werden nicht zum Selbstzweck vorgenommen. Von optimierten Prozessen profitieren vorrangig die einzelnen Fachabteilungen. Im Widerspruch dazu verbleiben die steigenden Kosten durch jede neue Anwendung in der IT (siehe Abbildung 2). IT-Management Organisatorische Veränderungen können ebenfalls eine Ursache darstellen. Ein Beispiel hierfür ist, dass der zunehmende Kostendruck häufig zu Sparmaßnahmen führt. So werden z.B. durch die Einführung von User-Help-Desks die Kosten gesenkt. Meist gehen diese Sparmaßnahmen gleichzeitig zu Lasten der Kundenbeziehung und dem Verlust des direkten Kontaktes zu den Usern oder bewirken andere Probleme. In vielen Unternehmen ist die Beziehung zwischen Anwendern und IT-Experten sehr unpersönlich geworden. Dies führt dann zu immer weniger gegenseitigem Verständnis. Immer öfter muss sich die IT für die verschiedenen Fehler, aufkommenden Probleme, fehlende Zeit für die Betreuung, zu hohe Kosten, etc. rechtfertigen. Wie kommt man raus aus diesem Dilemma? Kundenanforderungen Qualitätsanforderungen Innovationszyklen Zeit (Time to Market) IT-Abteilung Komplexität Preis- / Leistungsverhältnis Menge der Anwendungen und Systeme Anforderungen an die Flexibilität Konsequenz: Der Rechtfertigungsdruck nimmt zu Abb. 1: Wachsende Anforderungen an die IT. Die folgenden Überlegungen stellen einen Versuch dar, verschiedene Punkte der Problematik aufzugreifen, deren Relevanz zu verdeutlichen und mögliche Lösungsansätze aufzuzeigen. Betrachtet man das Unternehmen von oben, gibt es im Zusammenhang mit diesem Dilemma häufig zwei näher zu beleuchtende Bereiche: die Personen in der IT-Abteilung und die Personen der übrigen Fachbereiche bzw. die Unternehmensführung. Die Zielsetzung ist, die Mitarbeiter wieder zusammen zu führen, d.h. ein gemeinsames Verständnis für die Unternehmensaufgabe zu entwickeln. Die Einzelaufgaben sind vielfach so granular gegliedert, dass das gemeinsame Gesamtziel aus dem Fokus gerät. Der Weg der Veränderung selbst muss individuell gestaltet werden, denn jedes Unternehmen ist anders. Sinnvollerweise holt man sich hierzu externe Unterstützung. So kann der Ist-Zustand von einer neutralen Stelle aufgenommen werden. Mögliche Blockaden lassen sich reduzieren und es wird das notwendige Know-how von außen eingebracht. • • Gewinn gering Prozesskosten bleiben gleich oder steigen • Gewinnerhöhung trotz Steigerung der IT-Kosten durch sinkende Prozesskosten Abb. 2: Ausrichtung auf die Kosten des gesamten Geschäftsprozesses. Wandel des Selbstverständnis und Image der IT Die IT sollte als ein Berater im Unternehmen fungieren. Sie ist genauso in die Unternehmensstrategie einzubinden wie die umsatzgenerierenden Bereiche. Die IT ist dabei nicht nur als ein Kostenfaktor zu sehen. Sie bringt auch einen erheblichen Nutzen - sie schafft Lösungen. Wie viel Mehraufwand an Personal wäre erforderlich, würde die IT-Leistung reduziert oder gäbe es sie gar nicht? Sicherlich ist dieser Gedanke eher philoso- phischer Natur. Dennoch ist er lohnenswert zu betrachten, um den Stellenwert der IT zu bemessen. Der Veränderungsprozess betrifft auch die Einstellung der Mitarbeiter in den IT-Abteilungen zu ihrer eigenen, täglichen Arbeit. Es geht um mehr, als nur darum die reine Technik zu beherrschen. Diese ist selbstverständlich ausgesprochen wichtig. Zusätzlich ist ebenso der Umgang mit den Menschen und deren Problemen ein zunehmend wichtiger Erfolgsfaktor. Die ORDIX news 4/2012 37 IT-Management Anwender müssen von ihrer Position abgeholt werden. Häufig sind sie bei Problemen verunsichert, genervt und die Erwartungshaltung ist, dass die IT einfach funktionieren muss. Wenn dieses aus irgendwelchen Gründen mal nicht so ist, möchte der Anwender keine noch so korrekte Rückmeldung haben, warum die Problematik aus technischer Sicht aktuell besteht. Vielmehr möchte er mit seinem Anliegen ernst genommen werden. Er erwartet Verständnis für seine Situation und eine anwenderverständliche Rückkoppelung. Diese Herausforderung gilt es anzunehmen und ein entsprechendes Selbstverständnis zu entwickeln (siehe Abbildung 3). Wie kann die IT einen Imagewandel herbeiführen? „IT ist ein Kostenfaktor“ „IT ist zu optimieren“ Kosten der IT senken Effizienz der IT steigern „IT ist ein Business Partner“ „IT ist Geschäftsprozessoptimierer“ Effektivität der IT steigern Effektivität durch IT steigern Operativ Die IT ist häufig auch Kummerkasten für die Anwender, die ihre Unzufriedenheit zum Ausdruck bringen möchten – dabei muss es sich nicht zwangsläufig nur um ITThemen handeln. Dies bedeutet, dass die Mitarbeiter im IT-Bereich neben der Technik auch Know-how im Bereich der Social Skills, insbesondere die Kommunikationsfähigkeit, geschult werden muss. „IT ist ein Enabler“ Neue Geschäftsmodelle mitgestalten/ entwickeln strategisch Abb. 3: Entwicklung der Sicht auf die IT und des Stellenwertes der IT für das Unternehmen. IT-Strategien • • • • • • 2 Vision / Selbstverständnis / Werte - Eigene Vision zur IT - Service-, Kunden- Geschäftsprozessorientierung - IT-Mitarbeiter als Problemlöser / Berater / Businessoptimierer Strategie - Sicht auf die IT als Geschäftsprozessoptimierer und Business Enabler - Einbindung der IT in strategische Entscheidungen - IT als strategische Ressource Organisation - Orientierung an anderen Kriterien u.a. mehr Agilität - Ausrichtung an den Geschäftsprozessen - Erfolgscontrolling statt Kostenfokussierung Zusammenarbeit mit der Fachabteilung - Gemeinsame Teams - Mehr Zeit für die Kunden - Komplexitätsreduzierung, 80-20-Regel Marketing - Nutzen und Leistungen der IT besser darstellen (z.B. „Success stories“) - Sprache und Begriffe der Kunden übernehmen - IT-Strategie darstellen Weiterentwicklung - MA-Ausbildung: ergänzen um soziale und beratende Skills - Lessons-Learned-Prozesse - Optimierung der eigenen Prozesse / Methoden / Tools Abb. 4: Darstellung der wesentlichen Handlungsbereiche für den Wandel der IT. 38 ORDIX news 4/2012 Wie gehe ich mit einer Anfrage oder Beschwerde um? Dieser Servicegedanke muss wesentlich stärker ausgeprägt werden. Die IT-Abteilung sollte sich als ein Dienstleister im Unternehmen positionieren. Entsprechend muss auch seitens der IT-Abteilung ein Marketing in eigener Sache betrieben werden. Die Kommunikations- und Informationspolitik muss zudem offensiver werden, damit die IT-Abteilung (positiver) wahrgenommen und ihr Stellenwert deutlich wird. Die IT muss agieren und nicht immer nur reagieren. Ein weiterer Punkt ist die direkte Kommunikation mit den (internen) Kunden. Leider findet diese fast ausschließlich über Tickets statt. Darüber geht der menschliche Aspekt nahezu vollständig verloren. Ein Ticketsystem darf die direkte Kommunikation nicht ersetzen. Hier muss eine gesunde Mischung gefunden werden. Wichtig ist ebenfalls, die Komplexität der Programme zu reduzieren. Nicht alles was entwickelbar ist, ist auch sinnvoll. Mitunter ist eine organisatorische Lösung viel wirtschaftlicher, sorgt für eine transparentere IT-Architektur und führt nebenbei auch zu einer besseren Performance, als die zu 100 % automatisierte Lösung. Dieser Ansatz bedarf allerdings der Unterstützung aller Bereiche. Wie kann die Unternehmensführung den Prozess unterstützen? Um diesen Prozess zu unterstützen muss das Management den Stellenwert der IT im Unternehmen deutlich aufwerten. Das beginnt bereits bei der Formulierung der Unternehmensstrategie. Hier sollte die IT mit eingebunden werden. I.d.R. ist die IT nicht der USP des Unternehmens, dennoch stellt sie einen wichtigen Erfolgsfaktor dar. Der organisatorische Aufbau der IT-Abteilung ist ebenfalls zu be- IT-Management rücksichtigen. Es kann sinnvoll sein, die Organisation stärker am Kundenprozess auszurichten und/oder agile Aspekte mit einzubringen, um flexibler auf Veränderungen reagieren zu können. Eine mögliche Aufbauorganisation bei der Orientierung am Kundenprozess kann eine Bündelung der Ressourcen sein. Hierbei werden alle Ressourcen vom Organisator bis hin zum Entwickler zu einem Team zusammengefasst. Dieses Team ist dann in der Lage sehr zeitnah Kundenanfragen zu bearbeiten, da das komplette Kundenprozess-Know-how und die Lösungskompetenz in einer Organisationseinheit vereint sind. Ergänzt werden kann diese Ausrichtung durch den Aspekt der Agilität, d.h. es werden nicht verplante Zeiten vorgehalten, um möglichst schnell auf ungeplante Ereignisse reagieren zu können. Letztendlich muss der IT ein entsprechendes Budget zur Verfügung stehen, um über ausreichende Kapazitäten zu verfügen, die Mitarbeiter entsprechend ausbilden zu können und um geeignete Werkzeuge an die Hand zu bekommen, mit denen die Anforderungen bearbeitet werden können. Die IT sollte eine strategische Ressource sein. Richtig positioniert trägt sie maßgeblich zum Erfolg eines Unternehmens bei. Glossar USP Unique Selling Proposition - Einzigartiges Verkaufsversprechen. Positives Alleinstellungsmerkmal eines Produktes, einer Dienstleistung und/oder eines Unternehmens im Markt, der als ein wichtiger Vorteil aus Sicht des Kunden gegenüber der Konkurrenz wahrgenommen werden kann. Link ► [1] Webseite der coniatos AG: http://www.coniatos.de ► [2] Webseite Martin Gudacker: www.sbgp.de Bild: © sxc.hu | gearscape | deafstar © sxc.hu | coins | drniels © istockphoto.com | Be ermetic | alphaspirit Gehen Sie in die Offensive (siehe Abbildung 4)! Starten Sie mit den Veränderungen, bevor die IT noch weiter in der Rechtfertigungsfalle versinkt. Ruth Muckermann arvato media GmbH Martin Gudacker ([email protected]) Seminarempfehlung: IT-Management Einführung ► Informationen/Online-Anmeldung: https://training.ordix.de In den meisten Unternehmen gewinnt IT immer mehr an Bedeutung und entscheidet mittlerweile maßgeblich über den Erfolg wichtiger Unternehmenstätigkeiten. Dieses Seminar bietet Ihnen einen praxiserprobten Überblick über alle wichtigen Kernthemen des modernen IT-Managements. Nach einem fundierten Einblick in die jeweiligen Spezialgebiete nimmt die Vorstellung aktueller Management-Instrumente einen breiten Raum ein. Wir vermitteln Ihnen mit diesem Wissen die Fähigkeit zur Entwicklung von IT-Strategien, die zum Geschäftserfolg Ihres Unternehmens beitragen. Dieses Seminar wird durch unseren Partner coniatos durchgeführt. Seminarinhalte • • • • • • • • • • Grundlagen IT-Strategien IT-Architekturen IT-Servicemanagement IT-Projektmanagement Organisation der IT IT-Controlling IT-Qualitätsmanagement IT-Security-Management E-Business Termine 18.02. 13.05. 19.08. 09.12. - 20.02.2013 in Wiesbaden 15.05.2013 in Wiesbaden 21.08.2013 in Wiesbaden 11.12.2013 in Wiesbaden Seminar-ID: MGM-03 Dauer: 3 Tage Preis pro Teilnehmer: 1.650,00 € (zzgl. MwSt.) Frühbucherpreis: 1.485,00 € (zzgl. MwSt.) Buchen Sie gleich hier! ORDIX news 4/2012 39 Datenbanken Privilegien in Oracle einschränken Schützen Sie Ihre vertraulichen Daten vor den Augen des DBA Mit der Option Database Vault können Datenschutzmaßnahmen auf Basis umfangreicher DV-Security-Konzepte realisiert werden. Datenbankadministratoren und Benutzer, die sich über das Betriebssystem authentifizieren und als SYSDBA an der Datenbank anmelden, haben uneingeschränkten lesenden und schreibenden Zugriff auf die gesamte Datenbank. Die Kernfunktionalität von Database Vault besteht darin, privilegierten Benutzern - Datenbankadministratoren und anderen Benutzern mit ANY-Privilegien - den Zugriff auf vertrauliche Daten zu verwehren. Überblick Dieser Artikel beschäftigt sich mit den umfang­ reichen Möglichkeiten die Database Vault bietet, um sensible Daten vor dem Zugriff von privilegierten Benutzern zu schützen. Vorab sei schon einmal er­ wähnt, dass das Einschalten von Database Vault alleine nicht ausreicht. Das Erstellen eines Sicher­ heitskonzepts ist zwingend erforderlich. Ebenso wird dargestellt, wo Database Vault keine Schutzmöglich­ keiten bietet. Kurzer Rückblick Database Vault ist eine zusätzliche kostenpflichtige Option der Enterprise Edition, welche mit Oracle 10g Release 2 eingeführt wurde. Auf einer eingeschränk­ ten Anzahl von Betriebssystemen ist auch eine Rück­ portierung für die Version 9.2.0.8 verfügbar. Diesem Artikel liegt die Version 11.2.0.3 zugrunde. Komponenten für die Zugriffskontrolle Database Vault stellt verschiedene Komponenten für die Zugriffkontrolle zur Verfügung: Realms stellen eine einfache Möglichkeit dar, Benutzer mit DBA-Privilegien am Zugriff auf sensible Daten zu hindern. Sie sind eine funktionelle Gruppierung von Datenbankbenutzern und Objekten, die geschützt werden soll. 40 ORDIX news 4/2012 Factors erweitern die Zugriffskontrolle von Rollen und Benutzern. Es handelt sich hierbei um Variablen oder Attribute, wie z.B. der Session User, die IP-Adresse. Rules kontrollieren den Datenbankzugriff basierend auf den Factors. So kann beispielsweise die Anmel­ dung eines Benutzers nur von einem bestimmten Applikationsserver zugelassen werden. Dies wird auch das Einrichten eines Trusted Path genannt. Kernfunktionalität Die Kernfunktionalität eines aktivierten Database Vault besteht darin, privilegierten Benutzern den Zugriff auf vertrauliche Daten zu verwehren (siehe Abbildung 1). Zu den privilegierten Benutzern zählen Benutzer mit der DBA-Rolle, Benutzer mit ANY-Privilegien und Benutzer, die sich über das Betriebssystem authentifi­ zieren und als SYSDBA an der Datenbank anmelden können. Database Vault unterstützt dabei die Funktionstren­ nung und Aufgabenverteilung. Mächtige Privilegien für die Datenbank werden nach diesen beiden Prinzipien auf unterschiedliche Personen verteilt. Rollen und Aufgaben Bei der Installation werden zusätzliche Benutzer in der Datenbank angelegt und neue Rollen vergeben, um die oben genannte Aufgabenverteilung und Funktions­ trennung zu erzielen: Datenbanken • DV_OWNER/DV_ADMIN Verwalter der Sicherheitsregeln & Realms • DV_SECANALYST Sicherheitsbeauftragter • DV_ACCTMGR select * from Ora00.mitarbeiter DBA Personal Verwalter der Datenbank­Accounts Verwaltung Die Rolle SYSDBA wird damit zum Verwalter der DBAs und zum technischen Systemadministrator. Keine Schutzmöglichkeiten außerhalb der Datenbank Database Vault bietet viele Schutzmöglichkeiten inner­ halb der Datenbank, aber keine gegen Betriebs­ systemzugriffe des Softwareeigentümers (meistens Oracle) oder gegen Benutzer mit root­Rechten. Der root User kann unverschlüsselte Dateien lesen, Da­ tenbankdateien entfernen und Programme starten und stoppen. Ebenso kann sich ein Benutzer mit root­ Rechten als Oracle­Benutzer anmelden. Der Eigen­ tümer der Oracle­Software und Datenbank kann sei­ nerseits Database Vault deaktivieren, unverschlüsselte Dateien lesen, Datenbankdateien entfernen und Pro­ gramme starten und stoppen. Zur Verbesserung der Schutzmechanismen wird Database Vault sehr häufig im Zusammenspiel mit anderen Oracle­Produkten verwendet. Dabei wird vielfach Transparent Data Encryption (TDE) zur Ver­ schlüsselung der Daten in den Datenbankdateien und Backups eingesetzt. Installation Um die Auswirkungen auf die Installation und die Ent­ wicklung einer Datenbankanwendung zu minimieren, sollte Database Vault nachträglich auf ein bestehen­ des System aufgesetzt werden. Hier liegt ein großer Vorteil von Database Vault. Es kann nachträglich mit dem dbca der Datenbank hinzugefügt werden. Zur Registrierung gehören folgende Schritte: ORA00 Realm Owner ORA00 select * from Ora00.mitarbeiter Abb. 1: Kernfunktionalität eines aktivierten Database Vault. Abb. 2: Database Vault Administrator (DVA). Vault entzieht zusätzlich Rechte von verschiedenen Rollen, z.B. DBA. Auch nach dem Deaktivieren des Programms bleiben diese Rechte entzogen und nur eine vollständige Deinstallation setzt sie wieder ein. Ebenso werden Initialisierungsparameter während der Installation geändert. Das Auditing in SYS.AUD$ wird deutlich erweitert und ein Database Vault eige­ nes Auditing in DVSYS.AUDIT_TRAIL$ im SYSAUX Tablespace aktiviert. • Aktivierung von spfile, falls noch nicht vorhanden • Aktivierung von Database Vault und Label Security in den Oracle Binaries • Optionen von Database Vault und Label­Security­ Optionen mit dbca hinzufügen Während der Installation werden die neuen DV­ Benutzer und Rollen angelegt, um die Aufgabenver­ teilung und Funktionstrennung zu erzielen. In die­ sem Schritt müssen Passwörter für die neuen Benut­ zer vergeben werden. Die Installation von Database Konfiguration Database Vault kann grafisch über den Database Vault Administrator (DVA) oder das Package DVSYS. DBMS_MACADM konfiguriert werden. Die Database Vault Administrator GUI (siehe Abbildung 2) benötigt einen Standalone OC4J­Container oder kann in die Database Console eingebunden werden. Wir emp­ fehlen die Erzeugung von Database Vault Regeln/ Rechten mit einem PL/SQL­Skript. Ein Undo­Skript kann während der Entwicklung sehr hilfreich sein. ORDIX news 4/2012 41 Datenbanken connect DV_OWNER/******** BEGIN DVSYS.DBMS_MACADM.CREATE_REALM( realm_name => 'ORA00_Realm', description => 'ORA00 sichern', enabled => DBMS_MACUTL.G_YES, audit_options => DBMS_MACUTL.G_REALM_AUDIT_FAIL + DBMS_MACUTL.G_REALM_AUDIT_SUCCESS); END; / Abb. 3: Realm anlegen. BEGIN DVSYS.DBMS_MACADM.ADD_OBJECT_TO_REALM( realm_name => 'ORA00_Realm', object_owner => 'ORA00', object_name => 'MITARBEITER', object_type => 'TABLE'); END; / Abb. 4: Tabelle einem Realm zuordnen. Die Rechteverwaltung ist sofort aktiv, wenn die Rechte angelegt werden. Besondere Vorsicht ist geboten bei Regeln, die den Zugang von bestimmten Rechnern festlegen. Die Aktivierung eines Database Vault hat normaler­ weise nur minimalen Einfluss auf bestehende Anwen­ dungen. Eine Rechteprüfung muss dennoch immer durchgeführt werden. Explizit vergebene Rechte wer­ den nicht durch den Database Vault verhindert. Alle DBA-Benutzer sollten auf explizit vergebene Rechte geprüft werden. Ebenso muss die Anwendung auf die Benutzung von ANY-Rechten geprüft werden. Schema schützen Die Abbildung 3 zeigt, wie ein Realm angelegt wird (ORA00_Realm). Vorerst sind noch keine Objekte ge­ schützt. Diese müssen dem Realm erst zugeordnet werden. In Abbildung 4 wird die Tabelle „Mitarbeiter‟ dem Realm zugeordnet. Wildcards sind ebenfalls möglich. Wir empfehlen alle Tabellen eines Schemas zu schützen. Hierzu muss der Parameter object_name => '%' gesetzt werden. Im nächsten Schritt müssen Autorisierungen vergeben werden. Diese sind notwendig, um DDL-Operationen auszuführen und Rechte mit dem Befehl grant zu vergeben. Die PARTICIPANT-Autorisierung erlaubt es, DDL-Operationen auszuführen wenn man die ent­ sprechenden Privilegien explizit erhalten hat. Die OWNER-Autorisierung erlaubt es, Privilegien mit grant zu vergeben, wenn man diese mit der WITH GRANT-Option erhalten hat. Die Kennzeichnung OWNER beinhaltet automatisch PARTICIPANT. Der Verwalter der Sicherheitsregeln (Rolle DV_OWNER) kann diese Zuordnungen treffen. Die Abbildung 5 zeigt den DVA-Dialog „Realm bearbei­ ten“. Hier können Objekte zugeordnet (gesichert) und Autorisierungen vergeben werden. Abb. 5: Realm bearbeiten im DVA. BEGIN DVSYS.DBMS_MACADM.CREATE_RULE( rule_name => 'ORA00_Check_application_user_connections', rule_expr => 'SYS_CONTEXT(''USERENV'',''SESSION_USER'') = ''ORA00'' and SYS_CONTEXT(''USERENV'',''IP_ADDRESS'') IN (''172.17.98.120'') '); END; / Abb. 6: Regel für einen Trusted Path anlegen. 42 ORDIX news 4/2012 Trusted Path Beim Einrichten eines Trusted Path, d.h. die Anmel­ dung eines bestimmten Benutzers nur von einem be­ stimmten Applikationsserver zuzulassen, werden die Factors SESSION_USER und IP_ADDRESS verwen­ det (siehe Abbildung 6). Data Pump und nun? Mit der Oracle-Version 11.2.0.2 wurde Data Pump bei Verwendung eines Database Vault desupported. Tests Datenbanken in Version 11.2.0.3 haben gezeigt, dass eine Export­ datei mit einem beliebigen DBA­Benutzer unter der Verwendung der Option remap_schema in das eigene Schema importiert werden kann. Data­Pump­Dateien sind damit eine Sicherheitslücke – ein beliebiger DBA kann den Inhalt in sein eigenes Schema importieren. Glossar Database Vault (DV) Eine kostenpflichtige Option der Enterprise Edition, mit der umfangreiche Datenschutzmaßnahmen nach dem Prinzip der Aufgabenverteilung und Funktionstrennung umgesetzt werden können. Gründe für die Deaktivierung Data Pump Oracle Import/Export­Werkzeug zum schnellen Laden und Entladen von Daten. Es kann vorkommen, dass Database Vault deaktiviert werden muss und in diesen Situationen das System ungeschützt ist. Dies ist u.a. der Fall: DBCA Database Configuration Assistant - Java-Anwendung zum Anlegen und Konfigurieren von Datenbanken. • wenn Database Vault Accounts irrtümlicherweise DVA Database Vault Administrator ­ Java­Anwendung zum Verwalten der Sicherheitsregeln. gesperrt werden. • wenn Regeln der Connect-Rolle falsch konfiguriert wurden und ein Login aller Datenbank­ Accounts nicht mehr möglich ist. • wenn eine Archivierung des Database Vault Audit Trail erfolgte. • wenn zusätzliche Datenbankoptionen mit dbca installiert wurden. • bei einem Oracle Patch Update, der Installation weiterer Oracle­Produkte oder der Installation von third­party­Produkten. Fazit Database Vault bietet einen umfassenden Schutz von innen. DBA­ oder ANY­Privilegien werden effektiv abgefangen und umgekehrt. Bei explizit vergebenen Rechten greift Database Vault hingegen nicht ein. Da­ her ist eine Prüfung auf individuelle Rechte immer zwingend notwendig. Die umfangreichen Schutzmög­ lichkeiten lassen sich im Zusammenspiel mit anderen Oracle­Produkten noch verbessern, z.B. dem Einsatz von Transparent Data Encryption zur Verschlüsselung von Datenbankdateien und Backups. Database Vault bietet ebenso keinen Schutz gegen Betriebssystemzugriffe des Oracle­ oder root­ Benutzers. Oracle Data Pump ist ab Version 11.2.0.2 desupported. Die Data­Pump­Dateien stellen somit eine Sicherheitslücke dar, da sie von einem DBA ­ vorbei an allen Sicherheitsvorkehrungen ­ in das eige­ ne Schema importiert werden können. Label Security Eine kostenpflichtige Option der Enterprise Edition zur Erweiterung der Oracle Private Database. Jedem Datensatz wird ein Label angehängt, über welches der Zugriff gesteuert wird. OC4J Oracle Containers For Java ­ Anwendungsserver für Java­Anwendungen. TDE Transparent Data Encryption ­ Transparente Verschlüsselung von Daten­ bankdateien, Data Pump Exports und RMAN Backups, verfügbar in der kostenpflichtigen Advanced Security Option der Enterprise Edition. Links ► [1] ORDIX Seminar „Oracle Security‟; ID: DB-ORA-33A https://training.ordix.de Gerne beraten und unterstützen wir Sie bei der Planung und Umsetzung eines Database Vault. Sprechen Sie uns an. Thilo Fleischhauer ([email protected]) Um die Auswirkungen auf die Installation einer Daten­ bankanwendung zu minimieren, sollte Database Vault nachträglich auf ein bestehendes System auf­ gesetzt werden. Der Einfluss auf bestehende Anwendungen ist in der Regel gering. Database Vault stellt ein Framework zur Aufgabenverteilung und Funktions­ trennung zur Verfügung, wobei ein Sicherheitskonzept zwingend notwendig ist. ORDIX news 4/2012 43 Datenbanken Solaris 11 - Neue Funktionen (Teil 1I) Image Packaging System (IPS) Für die Softwareverwaltung wurde bis einschließlich Solaris 10 das in der Betriebs­ systemfamilie Unix weit verbreitete Verfahren System V Release 4 Packaging (SVR4-PKG) verwendet, um Softwarepakete erstellen, installieren, löschen und pflegen zu können. Besonders die Pflege der Pakete – also das Aktualisieren der Software – mittels sogenannter Patches hat in der Vergangenheit vielen SolarisAdministratoren einigen Ärger bereitet. Mit dem Image Packaging System (IPS) soll nun alles besser werden. In diesem Artikel untersuchen wir, ob dies wirklich der Fall ist. Die Ziele Die Pakete beinhalten unter anderem: Die folgenden Ziele sollen mit IPS erreicht werden: • Dateien, Verzeichnisse und Links • Automatische Abhängigkeitsprüfung • Konsistente Softwareaktualisierung • Vermeidung von Pre- und PostInstallationsskripten • Weitestgehende Vermeidung von Ausfallzeiten bei der Softwareaktualisierung • Einfache Überprüfung und Reparatur von Paketen • Benutzer • vielfältige Informationen über Aktionen - wie beispielsweise: • ob ein Reboot durchgeführt werden soll • ob ein Dienst neu gestartet werden soll • ob Dateien überschrieben werden dürfen Das grundlegende Konzept Die Inhalte der Pakete sind in einem Manifest auf dem Repository festgehalten, welches auch kryptografische Hashs der Dateien enthält. Die Pakete werden über Softwaredepots (Repositories) zur Verfügung gestellt, die auf Servern im Netz erreichbar sind. Falls die bestehenden Solaris 11 Maschinen einen Internetzugriff zulassen, ist es möglich, direkt auf die Repositories von Oracle zuzugreifen. Auf einem Solaris 11 Server sind wiederum ein oder mehrere Repositories eingebunden. Dabei ist die Reihenfolge der Patches, die nur einen Teil eines oder mehrerer Pakete austauschen, nicht mehr relevant. Im Falle eines Update werden immer ganze Pakete ersetzt. Der Administrator kann dieses aber auch mit dem einfachen Kommando pkgrcv in das eigene Netz spiegeln. Dieses Verfahren empfiehlt sich, um den Datenverkehr aus dem Internet zu verringern und um einen schnelleren Zugriff auf die Depots zu erhalten. Ebenso ist diese Methode notwendig, falls die Solaris 11 Server keinen Zugriff auf das Internet haben sollen. Neben diesen beiden Varianten können auch eigene Repositories erstellt werden. Werden die Ziele erreicht? Jedes Repository hat einen sogenannten Herausgeber (publisher). Als Namen für ein eigenes Repository verwendet man gerne die eigene DNS-Domäne. 44 • Abhängigkeiten ORDIX news 4/2012 Im Folgenden soll untersucht werden, ob durch die Einführung des neuen Verfahrens die eingangs genannten Ziele tatsächlich erreicht werden. Automatische Abhängigkeitsprüfung Abhängigkeiten konnten bereits mit dem SVR4-PKG festgelegt werden. In Ermangelung eines Software­ depots konnte das Programm pkginstall aber nur feststellen, dass ein Paket A eine Vorausset- Betriebssysteme zung für das gerade zu installierende Paket B ist. Mit IPS wird das Paket A nun automatisch mit instal­ liert. Dies erleichtert dem Administrator seine Arbeit. Allerdings setzt dies voraus, dass die Paket­ ersteller die exakten Abhängigkeiten auch in ihre Manifeste schreiben. Aktuell scheint dies der Fall zu sein. Die Chancen, dass dies so bleibt, sind ebenfalls recht gut, da es bei den Werkzeugen zum Erstellen von IPS-Paketen ein Programm namens pkgdepend gibt, welches die Abhängigkeiten jeder Datei erkennt. Konsistente Softwareaktualisierung Da es keine Patches mehr gibt, die einzelne Dateien aus verschiedenen Softwarepaketen austauschen, bleiben die Systeme nach einem Update weiterhin konsistent. Dies ist allerdings nur solange der Fall, wie die Abhängigkeiten der Pakete korrekt und vollständig im Manifest der Pakete angegeben sind. Falls die Pakete im laufenden System installiert werden können, sollte dieses Vorgehen gewählt werden. Dadurch kann auch auf das Erstellen einer neuen Boot-Umgebung verzichtet werden. Ein herstellen des Zustandes vor dem Update Wieder­ ist hier allerdings nicht vorgesehen. Entweder der Admini­strator erstellt sich im Vorfeld selbst eine neue Boot-Umgebung als Backup, installiert dann die neuen Pakete aber in der aktuellen Umgebung und aktiviert die neue Umgebung nur, wenn das Update Probleme bereitet. Oder die neuen nicht zufriedenstellend arbeitenden Pakete werden gelöscht und mit der alten Version, die noch im Depot vorhanden ist, neu erstellt. Hier wünscht man sich als Administrator doch eine einfachere Möglichkeit, etwa in Form eines Kommandos wie pkg rollback. Mit Hilfe eines Liveupgrade war ein Update mit einer Downtime von der Dauer eines Reboot auch unter den älteren Solaris-Versionen möglich. Allerdings hat der Administrator mit IPS weniger Arbeit. Vermeidung von Pre- und PostInstallationsskripten Einfache Überprüfung und Reparatur von Paketen Pre- und Post-Installationsskripte sind in IPS nicht mehr vorgesehen. Dies erscheint zuerst als ein Mangel. Allerdings dienten diese nur dazu, Benutzer anzu­ legen, Dienste zu starten und solche Aktionen durchzuführen, die weitaus einfacher und weniger fehler­ anfällig mit den Aktionen, die IPS zur Verfügung stellt, umzusetzen sind. Dennoch lassen sich im Internet schon Anleitungen finden, wie man in einem Paket ein Skript als run-once-Service installiert und sogleich ausführt. Auch im SVR4-PKG-Management gab es schon eine Überprüfung der installierten Dateien mittels einer Prüfsumme. Diese lag aber in einem lokalen Verzeichnis und war kryptografisch unsicher. Eine Erkennung, ob illegalerweise Programme verändert wurden, konnte daher leicht umgangen werden. Ebenso war, wegen des Fehlens eines Softwaredepots, die Reparatur eines Pakets nicht möglich. Weitestgehende Vermeidung von Ausfallzeiten Updates sind nun wesentlich einfacher durchzuführen. Das kurze Kommando pkg list –u zeigt die Pakete an, welche im Depot neuer sind als auf dem Server. Der Befehl pkg update installiert dann diese Pakete. Dabei wird, falls notwendig, eine neue Boot-Umgebung erstellt. Die neuen Pakete werden in dieser installiert. Anschließend wird die Umgebung aktiviert. Dieses Verfahren wurde bereits in einer vorigen Ausgabe der ORDIX news beschrieben [1]. Das Update ist dann erst nach einem Reboot verfügbar. Durch Aktivieren der ursprünglichen Boot-Umgebung und einen weiteren Reboot kann die alte Boot-Umgebung wieder hergestellt werden. Mit IPS sind diese Möglichkeiten nun vorhanden. Die Prüfsummen sind kryptografisch sichere Hashs und liegen in den Manifesten auf dem Depotserver, welcher gut gesichert sein sollte. Dies ersetzt zwar kein Einbruchserkennungssystem, da IPS nicht erkennen kann, ob bösartiger Code außerhalb des Paket­ management auf das System gelangte, kann aber dennoch hilfreich sein. Zur Erkennung versehentlich gelöschter oder veränderter Dateien, ist sowohl IPS als auch SVR4-PKG in der Lage. Alles steht und fällt allerdings mit der Zuverlässigkeit der Prüfsummen in den Manifesten auf dem Depot­ server. Und genau hier scheint sich Pfusch einzuschleichen. Der Befehl pkg verify ꞌ*ꞌ bemängelt bei einem frisch aufgesetzten Solaris 11 System 15 Dateien. Nach dem Befehl pkg fix auf die bemängelten 4 Pakete ändert sich daran aber nichts, da diese sich in fehlerhaften Manifesten im Depot befinden. Dieser Sachverhalt ist im Vergleich zu Solaris 10 aber noch harmlos. Das Kommando pkgchk liefert dort ORDIX news 4/2012 45 Betriebssysteme Glossar Boot-Umgebung Eine vollständig boot-fähige Instanz eines Bertriebssystemabbildes. etwa 100 fehlerhafte Dateien. Ärgerlich ist es trotzdem, vor allem da diese Meldungen einfach abzustellen wären: Man könnte das Kommando pkgsend, mit dem Pakete in ein Repository eingestellt werden, die Hashs prüfen und bei Fehlern abbrechen lassen. Publisher Eine Person oder Organisation, die Pakte anbietet. Fazit Repository Depot für Softwarepakete. Im Vergleich mit SVR4-PKG hat Oracle mit IPS ein deutlich fortschrittlicheres System entwickelt, welches den Administratoren vieles erleichtert und auch für die Stabilität der Systeme vorteilhaft ist. Links ► [1] ORDIX news Artikel 02/12 „Solaris 11 - Neue Funktionen (Teil I): Boot-Umgebungen“: http://www.ordix.de/images/ordix/onews_archiv/2_2012/solaris_boot.html Aufwändige Patch-Aktionen gehören der Vergangenheit an. Damit stehen die Chancen gut, dass die Solaris-Systeme zukünftig nicht mehr mit veralteten, unsicheren Softwareständen laufen. Gerhard Weick ([email protected]) Seminarempfehlung: Solaris 11 Administration Neuheiten ► Informationen/Online-Anmeldung:http://training.ordix.de Nach vielen Jahren wurde Ende 2011 die neue Version von Solaris 11 veröffentlicht. In diesem Seminar zeigen wir die Neuerungen und Änderungen bei der Administration auf und vertiefen dies durch zahlreiche Übungen. Seminarinhalte • • • • • • • • • Termine Neuerung bei der Installation: AI Neue Befehle und Tools bei der Netzwerkadministration Crossbow: virtuelle Netzwerke Softwaremanagement jetzt anders: IPS Erstellung von alternativen Boot-Umgebungen Neuigkeiten bei ZFS und Zonen 25.03. - 27.03.2013 in Wiesbaden 13.05. - 15.05.2013 in Wiesbaden 26.08. - 28.08.2013 in Wiesbaden 28.10. - 30.10.2013 in Wiesbaden Seminar-ID: BS-24 Dauer: 3 Tage PreisproTeilnehmer: 1.290,00 € (zzgl. MwSt.) Frühbucherpreis: 1.161,00 € (zzgl. MwSt.) Comstar: Feature für den Einsatz als Filer Kooperation mit Windows Vertiefung der Theorie durch praktische Übungen und Beispiele 46 ORDIX news 4/2012 Buchen Sie gleich hier! Datenbanken Die neue Version 10.1 von IBM DB2 (Teil II) Multi-Temperature Storage Mit der neuen Funktion Multi-Temperature Storage (MTS) von IBM DB2 10.1 besteht nun die Möglichkeit, Daten intelligent zu verwalten und bedarfsgerecht auf die schnellsten oder günstigsten Speichermedien zu verschieben. MTS weist den Daten in der Datenbank dabei einen bestimmten Stellenwert zu. Anschließend werden sie auf verschiedenen Speichermedien entsprechend der Priorität abgelegt. Im vor­liegenden Artikel wollen wir die neue Funktionalität näher betrachten. Priorisierung Tabellenbereiche und Speicherverwaltung Sind bestimmte Daten oft im Zugriff, wird ihnen die Prio­rität HOT zugewiesen, während weniger oft benötigte Daten der Stufe WARM zugeordnet werden. Kaum benötigte Daten erhalten entsprechend die Priorität COLD. Bei den früheren DB2-Versionen kam zusätzlich zu den bekannten SMS (System Managed Space) und DMS (Database Managed Space) der Automatic Storage Tablespace hinzu. Dieser stellt eigentlich eine Erweiterung der beiden vorherigen Tabellenbereiche dar. Je nach „Temperaturstufe“ können diese Daten dann verschiedenen Speicherklassen zugeordnet werden. So werden aktuelle, oft benötigte Daten zum Beispiel einem schnellen Hochleistungsspeicher zugeteilt. Sollten die Daten später nicht mehr so häufig benötigt werden, können diese dynamisch in einen kostengünstigeren Speicher geschoben werden. Automatic Storage zeichnet sich durch einen geringeren Wartungsaufwand aus. Container werden entsprechend dem Bedarf erstellt und erweitert - es ist keine Container-Definition nötig. Nun wird bei den Automatic Storage Tablespaces mit den Storage Datenverteilung in Datenbanksystemen In Datenbanksystemen nehmen „heiße“ Daten in der Praxis einen deutlich kleineren Anteil ein. Die Mehrheit der gespeicherten Daten fallen in der Regel in die Kategorie „warm“ oder „kalt“ (siehe Abbildung 1). Für die Disposition eines Handelsunternehmens sind z.B. vorwiegend die aktuellen Warenbestände interessant. Der Bestand vor einem Monat oder einem Jahr ist eigentlich nur für statistische Auswertungen wichtig. Die Daten werden also mit zunehmender Lebensdauer „kälter“. Mit der neuen Funktion MTS hat der Datenbank­ ad­ministrator nun die Möglichkeit, wichtige und häufig benötigte Daten auf schnelleren Speichern abzu­ legen. Weniger oft im Zugriff befindliche Daten können kostenoptimiert auf andere Speichermedien ver­ schoben werden. HOT DATA = häufig benutzte Daten WARM DATA = weniger häufig benutzte Daten COLD DATA = selten benutzte Daten DORMANT DATA = archivierte Daten Abb. 1: Typische Verteilung der Daten entsprechend der Zugriffshäufigkeit. ORDIX news 4/2012 47 Datenbanken CREATE DATABASE ORDIX ON C:; Anlegen zusätzlicher Tabellenbereiche mit automatischem Speicher: CREATE TABLESPACE TBS1; CREATE TABLESPACE TBS2; CREATE TABLESPACE TBS3; Anlegen von Storage Groups: CREATE STOGROUP SG_HOT ON 'C:\STORAGE'; CREATE STOGROUP SG_WARM ON 'D:\STORAGE'; CREATE STOGROUP SG_COLD ON 'E:\STORAGE'; Nun können die Tabellenbereiche den Storage Groups zugewiesen werden: ALTER TABLESPACE TBS1 USING STOGROUP SG_HOT; ALTER TABLESPACE TBS2 USING STOGROUP SG_WARM; ALTER TABLESPACE TBS3 USING STOGROUP SG_COLD; Oder beim Erstellen des Tabellenbereichs erfolgt gleichzeitig die Zuweisung zu einer Storage Group: CREATE TABLESPACE TBS1 USING STOGROUP SG_HOT; Zu welcher Speichergruppe die Tabellenbereiche gehören, kann mit den folgenden beiden Abfragen ermittelt werden: SELECT TBSPACE, SGNAME FROM SYSCAT.TABLESPACES; SELECT * FROM SYSCAT.STOGROUPS; Abb. 2: Anlegen einer Datenbank mit zusätzlichen Tabellenbereichen und die Zuweisung zu den Speichergruppen. Groups eine neue Abstraktionsschicht zwischen die Logik der Tabellenbereiche und den physischen Speichern der Container gelegt. An einem Beispiel zeigen wir nun auf, wie eine Daten­ bank mit automatischer Verwaltung angelegt wird und die zusätzlichen Tabellenbereiche TBS1…TBS3 hinzugefügt werden (siehe Abbildung 2). Die Daten können dann entsprechend ihrer „Temperatur“ verschoben werden. Beim Erstellen dieser Datenbank werden die Default-Tabellenbereiche SYSCATSPACE, TEMPSPACE und USERSPACE1 in die DefaultSpeichergruppe IBMSTOGROUP gelegt. Die Abbildung 3 zeigt, wie eine partitionierte Tabelle auf verschiedene Storage Groups aufgeteilt werden kann. Die Anlage einer solchen partitionierten Tabelle ist in Abbildung 4 dargestellt. Zudem zeigen die Befehle, wie diese Tabelle auf verschiedene Bereiche mit den zugeteilten Speichergruppen verteilt wird. Dabei werden die Daten des aktuellen Quartals in den Speicherbereich HOT gelegt (TBS1 in SG_HOT). Die älteren Daten werden auf die langsameren Speichermedien verteilt (TBS2 in SG_WARM und TBS3 in SG_COLD). Sollte nun ein neues Quartal ange­ brochen sein, so kann einfach ein neuer Tabellenbereich erstellt und einer schnellen Speichergruppe zugewiesen werden - wie im Beispiel die Speichergruppe SG_HOT. Es wird nun in diesem Tabellenbereich eine neue Tabellenpartition erstellt. Somit stehen die aktuell benötigten Daten im schnellen Speicher. Die Daten des vergangenen Quartals werden nun aufgrund der geringeren Zugriffshäufigkeit vom Speicherbereich SG_HOT in den kostengünstigeren Speicher SG_WARM verschoben (siehe Abbildung 5). Dies wird durch den folgenden Befehl erreicht: ALTER TABLESPACE TBS1 USING STOGROUP SG_WARM; Abb. 3: Verteilung der Daten auf verschiedene Speichergruppen. CREATE TABLE TEST.ARTIKELUMSATZ (UMDATU DATE, ARTIKELNR INT, KUNDENNR INT, UMSATZ DEC(12,3)) PARTITION BY RANGE (UMDATU) ( PARTITION "2012Q2" STARTING ('2012-04-01') ENDING ('2012-06-30') in TBS1, PARTITION "2012Q1" STARTING ('2012-01-01') ENDING ('2012-03-31') in TBS2, PARTITION "2011Q4" STARTING ('2011-10-01') ENDING ('2011-12-31') in TBS2, PARTITION "2011Q3" STARTING ('2011-07-01') ENDING ('2011-09-30') in TBS2, PARTITION "2011Q2" STARTING ('2011-04-01') ENDING ('2011-06-30') in TBS3, PARTITION "2011Q1" STARTING ('2011-01-01') ENDING ('2011-03-31') in TBS3 ); Abb. 4: Anlegen einer partitionierten Tabelle, wobei die Partitionen verschiedenen Tabellenbereichen zugewiesen werden. 48 ORDIX news 4/2012 Zu beachten ist hierbei, dass durch das Verschieben der Storage Groups implizit ein Container-Neuausgleich, der s.g. Rebalance-Prozess, ausgelöst wird. Zusammenfassung Storage Groups können so konfiguriert werden, dass sie unterschiedliche Speicherklassen darstellen. Diese stehen anschließend dem Datenbanksystem zur Verfügung. Speichergruppen werden nur von Tabellenbereichen mit dynamischem Speicher verwendet. Hierbei kann ein Tabellenbereich nur einer Storage Group zugeordnet werden, aber eine solche Gruppe kann mehrere Tabellenbereichszuordnungen aufweisen. Datenbanken Ein von der Datenbank verwalteter Tabellenbereich (DMS-Tabellenbereich) kann mit dem Befehl ALTER TABLESPACE TBSNAME MANAGED BEI AUTOMATIC STORAGE in einen Tabellenbereich mit dynamischem Speicher konvertiert werden. Anschließend muss noch ein Neuausgleich der Container (Rebalance) durchgeführt werden. Die benutzerdefinierten Container werden durch den Befehl ALTER TABLESPACE mit der Option REBALANCE entfernt. Alle Tabellenbereichs-Container werden nun mit dynamischen Speicher verwaltet. Somit besteht auch die Möglichkeit, für ältere Datenbanken nach der Migration auf Version 10.1, die Vor­ teile der Funktion Multi-Temperature Storage zu nutzen. Monitoring Erweiterungen der neuen Version Zu den hier beschriebenen Funktionen sind mit der neuen Version 10.1 weitere Erweiterungen für das Monitoring verfügbar. Mit der Funktion ADMIN_GET_ STORAGE_PATHS erhält man folgende Informationen: die dynamischen Speicherpfade für jede Speichergruppe und Dateisysteminformationen zu jedem Speicherpfad. Weitere Tabellenfunktionen zur Unterstützung sind: CREATE TABLESPACE TBS4 USING STOGROUP SG_HOT; ALTER TABLE TEST.ARTIKELUMSATZ ADD PARTITION "2012Q3" STARTING ('2012­07­01') ENDING ('2012­09­30') IN TBS4; Abb. 5: Anlegen eines neuen Tabellenbereiches mit Speichergruppe und Zuweisung zu einer Tabellenpartition. Glossar DMS-Tabellenbereich Dieser Tabellenbereich benutzt vorallokierte, von der Datenbank verwaltete Container. Daten, Indizes und Large Objects für eine Tabelle können auf verschiedene Tabellenbereiche verteilt und je nach Bedarf den Containern hinzugefügt werden. SMS-Tabellenbereich Bereich zur Verwaltung des Speichers. Jeder Container stellt ein Verzeichnis im jeweiligen Betriebssystem dar. Der Speicherplatz wird nicht vorallokiert, sondern wächst über die Tabellen, die dem Tabellenbereich hinzugefügt werden. Alle Daten, Indizes und Large Objects liegen hier im gleichen Tabellenbereich. Links ► [1] DB2 V10.1 Information Center: http://pic.dhe.ibm.com/infocenter/db2luw/v10r1/index.jsp • MON_GET_REBALANCE_STATUS • MON_GET_TABLESPACE • MON_GET_CONTAINER Weiterhin wurde der Befehl db2pd um die neuen Parameter storagegroups (Detailinformationen zu Speichergruppen und -pfaden) und storagepaths (Konfigurationsdetails zu Speichergruppen) erweitert. Die Option db2pd –tablespaces enthält jetzt eine Speichergruppenkennung, der ein Tabellenbereich zugeordnet ist und Speicherstatistiken von Tabellenbereichen. Thomas Schwarz ([email protected]) Ausblick Der nächste Artikel dieser Reihe wird sich mit der ebenfalls neuen Funktion „Time Travel Query (TTQ)‟ beschäftigen. Damit wird die Möglichkeit eröffnet, Daten nicht nur zum gegenwärtigen Zeitpunkt anzusehen, sondern sie auch für einen bestimmten früheren Zeitraum zu betrachten. Dieser kann von der Anwendung bzw. dem Benutzer selbst festgelegt werden. ORDIX news 4/2012 49 Datenbanken 25 Jahre DOAG Konferenz und Ausstellung ORDIX beim Jubiläum „Wir sind die Oracle Community“ - unter diesem Motto kamen die Anwender mittlerweile zum 25. Mal zur Anwenderkonferenz zusammen. Die ORDIX AG präsentierte sich in diesem Jahr mit einem neuen Messestand und hielt vier Vorträge. Traditionsgemäß beteiligten wir uns auch mit einem gut besuchten Seminar an dem Schulungstag im Congress Centrum Nürnberg. Die Vorträge der ORDIX-Referenten Dabei entführte er seine Zuhörer in seiner unnachahmlichen Art in die Weiten der Galaxien. Den Auftakt bildete der Vortrag über das gemeinsame Projekt von Autoscout24 und ORDIX. Sabine Langer referierte gemeinsam mit ihrem Co-Referenten Michael Skowasch zu dem Thema „Active-DataGuard bei Autoscout24: eine Lesefarm im Praxiseinsatz“. Schulungstag 2012 Hands-On Oracle Application Express Am zweiten Konferenztag präsentierten sich dann gleich zwei ORDIX-Referenten der Oracle Community. Der Vortragsroutinee Klaus Reimers konnte mit seinem Vortrag „Memory – Ein Drilldown von der SGA über die PGA bis zum Database Buffer Advisor“ auf ganzer Linie überzeugen. Auf seine bekannte Weise brachte er den Zuhörern im überfüllten Saal die Memory-Strukturen von Oracle näher. Philipp Loer erläuterte mit seinem Vortrag „Tuning the Mobile Server“ verschiedene Tuning-Maßnahmen des Oracle Database Mobile Server 11g und konnte mit seiner Premiere auf der Konferenz offensichtlich sehr zufrieden sein. Martin Hoermann erläuterte am dritten Konferenztag unter dem Titel „Space - the final frontier: Speicher- und Performance-Aspekte in Oracle Tablespaces“ zahlreiche Gesichtspunkte des physikalischen Speichermanagements und deren Einfluss auf die Performance. 50 ORDIX News 4/2012 Zum Abschluss bot der Schulungstag all den Teilnehmern, die bisher überwiegend keine Gelegenheit hatten sich mit Oracle Application Express (APEX) auseinanderzusetzen, einen pragmatischen Einstieg in die Welt von APEX. Matthias Jung zeigte neben einem Überblick über die Architektur und Administration anhand eines Praxisbeispiels auch die Funktionsweise von Oracle Application Express. Aktuell Gut besucht! Die Vorträge von Martin Hoermann und Klaus Reimers waren die Highlights der diesjährigen Konferenz. Zusammen erfolgreich: Suny Kim und Sabine Lange (beide Autoscout24) mit Michael Skowasch (ORDIX AG) Fazit Sie haben Interesse an den ORDIX-Vorträgen? Die diesjährige Konferenz bot einen besonderen Schwerpunkt in den Bereichen Performance und APEX. Viele der Vorträge, Sessions und Gespräche auf der Konferenz beschäftigten sich mit diesen beiden Themen. In den Hintergrund gerieten in diesem Jahr Themen wie Java, Solaris und MySQL. Wir geben Ihnen gerne einen Einblick in die Vorträge unserer Referenten, besuchen Sie unsere Internetseite www.ordix.de oder fordern Sie einfach Ihren Download-Link an. Bei Fragen stehen wir Ihnen gerne zur Verfügung. Insofern lagen wir mit unserem Angebot an Vorträgen und mit unserem Seminar wieder goldrichtig und konnten uns über eine große Resonanz freuen. Hier finden Sie die ORDIX-Vorträge. Fordern Sie Ihren Download-Link an! Evelyn Ernst ([email protected]) ORDIX News 4/2012 51 Wir Führen Interessierte zusammen und geben antworten Jede Veranstaltung ist für Sie kostenlos und beginnt jeweils um 18.00 Uhr. Im Anschluss an den Vortrag runden ein Informationsaustausch und ein Imbiss die Veranstaltung ab. Mit ORDIX am Puls der Zeit! Auch in 2013 wird ORDIX quartalsweise Veranstaltungen zu aktuellen Themen der IT-Welt durchführen. Bei diesen Treffpunkten steht der Erfahrungsaustausch im Mittelpunkt. In der ersten Jahreshälfte bieten wir folgende Termine an: 19. März 2013 | IT-Strategie 11. Juni 2013 | MS SQL Server Weitere Termine im Jahr 2013: 24. September 2013 | 12. November 2013 Detaillierte Informationen zu den Themen und eine Möglichkeit zur Anmeldung finden Sie auf unserer Webseite. Informationen und Anmeldung unter www.RheinMainIT.de treff RheinMain IT