Mit dem Höllenhund im Urlaub

Werbung
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
Herunterladen