Oracle10g Data Pump S. 10 Let´s work together!

Werbung
ORDIX News
Das IT-Magazin der ORDIX AG
Oracle 10g Fachtreffs
Export und Import
mit Hochdruck:
Oracle 10g
Data Pump
Ausgabe 2/2004
€ 2,20
14. + 21. September 2004
S. 10
Control-M:
Optimierung
von Geschäftsprozessen
Chess Classic
Mainz 2004
S. 23
S. 21
1. ORDIX Benefiz
Golf Open
25./26. September 2004
S. 22
S. 14
Let´s work together!
Die Groupware-Funktionalitäten des
SuSE Linux Openexchange Servers S. 37
Editorial
Paderborn, Juli 2004
Alles und jeder
hat seinen Preis
... oder wie der Bayer zu sagen pflegt „ois hoat sain Praiß“ und damit meint er ausnahmsweise nicht, dass jeder Bayer
seinen Preußen haben sollte. Vielmehr steckt dahinter, dass jedes Produkt einen festgesetzten und mehr oder weniger
lange gültigen Preis hat. Inzwischen gilt das aber auch für imaginäre Produkte wie Gesinnung oder Einstellung.
Nehmen wir nur mal die früher erfolgreiche Firma SCO: Vormals engagierte Unix Company, jetzt unter anderem mit
einem 500 Millionen $ Sponsoring von einer nicht näher bezeichneten Firma aus Redmond auf dem Kreuzzug gegen
Linux und damit auch gegen den ursprünglichen Unix-Gedanken (sofern den überhaupt noch jemand kennt).
Und jetzt auch noch SUN: Respekt Herr McNealy! Sie ziehen mit unserem ehrwürdigen Ex-Kanzler gleich, der Gorbatschow im Oktober 1996 in einem Newsweek Interview mit dem NS-Propagandaminister Joseph Goebbels verglich, um ihn nur wenige Jahre später beim Plausch in seiner berühmten Strickjacke in Zeltgröße zum besten aller
Freunde zu erklären.
Was kümmert einen also sein Geschwätz von gestern. Für 1,3 Milliarden $ klopfte der SUN Boss McNealy dem
Microsoft Chef Steve Ballmer anerkennend auf die Schultern. O.K. Für eine solche Geldspritze wäre inzwischen
jeder bundesdeutsche Finanzminister bereit, noch mehr zu leisten ;-).
Nun, ich muss zugeben, dass ich bei 1,3 Milliarden $ vielleicht auch schwach werden würde. Wenn ich mir dann aber
vorstelle, mir ein Microsoft Baseballkäppchen aufzusetzen und - bei meinem dann täglichen Weg über die Golfplätze
dieser Welt - in den Gesprächen mit meinen Flight-Partnern Windows 2003 Server und Office zu preisen ... dann
wache ich auf, aus diesem Traum, und denke daran, dass Sie vielleicht frühere Editorials gelesen haben und mir
nicht mehr so recht glauben werden. Also werde ich mich weiterhin in der Woche Ihren Problemen widmen und, falls
möglich, am Wochenende etwas fürs Handicap tun. Womit ich aber schon bei einem wichtigen Thema dieser Ausgabe gelandet bin:
Das 1. ORDIX Golf Open am 25. und 26. September. Alles für einen guten Zweck. Und Sie können dabei sein. Hoffen
wir, dass wir in unsere beiden ausgewählten Kinder-Hilfsprojekte - „Die Kinder im Senegal“ und „Westfälisches
Kinderdorf e.V., IPWL Schlangen“ - analog der Oracle Data Pump (S. 10) ganz viel Unterstützung in Form eines
Schecks „pumpen“ können. Eine andere, erfolgreiche Veranstaltung, die wir unterstützen, findet dieses Jahr bereits
zum elften Mal statt: Das Chess Classic ORDIX Open.
Aber auch die anderen Themen dieser Ausgabe sind brandaktuell: Prozessmanagement mit Control-M, Oracle und
LDAP, diverse Open Source Themen, Websphere Produktvorstellung und vieles mehr für einen hoffentlich in jeder
Beziehung heißen Sommer.
Und, um darauf zurückzukommen, „ois hoat sain Praiß“: 0 • kostet Sie die Teilnahme an unseren Oracle 10g Fachtreffs am 14.09. in Wiesbaden und am 21.09. in Düsseldorf. Ein wenig mehr die Teilnahme an dem einen oder
anderen Seminar (herausnehmbare Übersicht im Mittelteil).
In diesem Sinne wünsche ich Ihnen einen schönen Sommer.
Wolfgang Kögler
PS: An Herrn Ballmer, falls Sie das lesen: Also, ab 3-4 Milliarden oder so könnte ich vielleicht doch noch ... Einen willigen
Caddy (Danke Guido), der Ihrer Firma gegenüber dann auch sehr aufgeschlossen sein würde, habe ich gegebenenfalls
ebenso in petto. Entschuldigung an alle anderen Leser: Aber Sie wissen ja, jeder hat seinen Preis ;-)
3
Inhaltsverzeichnis
Aus- & Weiterbildung
Standards
17 ...
24 ...
29 ...
33 ...
39 ...
03 ... Editorial
04 ... Inhalt
20 ... Impressum
Seminar: Patrol Central
Seminarübersicht: Preise, Termine ... bis Jahresende.
Seminar: J2EE für Entscheider
Seminar: Oracle Troubleshooting
Seminar: Java GUI Entwicklung mit Swing
Aktuell
Titel-
21 ... Chess Classic Mainz 2004 thema
Gewinnen Sie eine Simultan-Partie oder eine Platz in der
ORDIX Open während des Schachklassikers.
Titel-
22 ... 1. ORDIX Benefiz Golf Open thema
Golfen für den guten Zweck am 25./26.09.2004 in OWL.
27 ... Sponsoring Behindertensportreiten
Datenbanken
l-
Tite
23 ... Oracle 10g Fachtreffs,
thema
14. + 21. September 2004
Highlights, Praxiserfahrungen und Einstiegspaket
26 ... Larry Ratlos Kniffel
Wer hilft Larry beim Boot-Spiegel mit
DiskSuite weiter?
Unix/Linux/Open Source
05 ... Oracle Internet Directory (Teil I)
Übersicht über das Oracle Internet Directory und dessen
Einsatzmöglichkeiten.
Titel-
10 ... Oracle 10g (Teil I):
thema
Data Pump - Export und Import mit Hochdruck
Express laden und entladen von Daten mit einem neuen Tool.
34 ... RMAN-Integration in Backup-Tools (Teil I): RMANIntegration in NetWorker und Tivoli Storage Manager
Einbindung des Oracle Standardwerkzeugs RMAN in Storage Manager von Legato und Tivoli.
40 ... IBM IDS 9.40 (Teil IV):
Der „Schlüssel“ zu IBM Informix Dynamic Server
New Encryption und externe Authentifizierung halten Einzug in den IBM IDS.
44 ... Auf dass niemand des anderen Sprache verstehe ...
Wie Oracle das Arbeiten in verschiedenen Sprachen mit unterschiedlichen Zeichensystemen unterstützt.
08 ... phpLDAPadmin:
LDAP Administration Webfrontend
Webbasierte Administration von LDAP
Verzeichnissen mit dem Open Source
Projekt phpLDAPadmin.
18 ... E-Mail Filter gegen SPAM
Das Open Source Produkt SpamAssassin im Kampf gegen SPAM-E-Mailflut.
30 ... IBM TSM (Teil II): Im Fokus: Interne
Datenbank und Recovery Log
ORDIX nimmt Dimensionierung, Pflege
und Sicherung der internen Datenbank
und des Recovery Log unter die Lupe.
Titel-
37 ... Let‘s work together! thema
Vorstellung der Funktionalitäten des
SuSE Linux Openexchange Servers.
43 ... ORDIX Kurzreferenz: Der vi-Editor
System Management
Java/XML
Titel-
14 ... Control-M: Optimierung von Geschäftsprozessen thema
Wie Sie mit BMC´s Control-M ein modernes, praxiserprobtes
Job-Control-System einsetzen, um den Ablauf Ihrer Geschäftsprozesse zu optimieren.
4
28 ... Kurz betrachtet:
IBM Websphere Application Server
Hervorstechende Merkmale des IBM Websphere Application Server (WSAS) als Entscheidungshilfe für dessen Einsatz.
Datenbanken
Oracle Internet Directory (Teil I)
Oracle Internet Directory (OID) ist ein LDAP Server, der die Daten in einer Oracle Datenbank ablegt. OID ist
LDAPv3 compliant. Der erste Teil dieser mehrteiligen Serie gibt eine Übersicht über das Oracle Internet Directory
und dessen Einsatzmöglichkeiten. Es werden Architektur und Installation erklärt. In den weiteren Teilen zeigen wir den praktischen Einsatz des OID z. B. anhand der zentralen Namensauflösung.
Einführung
OID ist eine Implementierung eines LDAPv3
konformen Verzeichnisdienstes von Oracle
und ist seit der Version Oracle 8i ein fester
Bestandteil der Produktpalette.
usw. zu speichern. Dadurch profitiert das OID von Eigenschaften
wie Hochverfügbarkeit, Backup- und Recoveryfähigkeit und den
Sicherheitsfunktionen einer Datenbank. Die Datenbank, die das
Repository des OID bildet, kann auf einem entfernten Rechner
und sogar unter einem komplett anderen Betriebssystem laufen.
Architektur
OID kann unterschiedliche Informationen zentral im Netzwerk bereitstellen. In Zukunft wird
das OID z. B. die zentrale Stelle zur Auflösung
von Datenbank Service Namen sein und den
Oracle Names Server ablösen. Dieser ist seit
Oracle 9i abgekündigt und in der Version 10g
nicht weiter verfügbar.
Zudem können mit dem OID auch Benutzer
und Rollen verwaltet werden. Denn ein Problem, dem ein Datenbankadministrator (DBA)
in großen Unternehmen gegenübersteht, ist
die immense Anzahl an Benutzern, die auf unterschiedliche Datenbanken Zugriff erhalten
müssen.
Beim Einsatz des OID muss nicht jeder Benutzer einzeln auf allen vorhandenen Instanzen
eingerichtet werden, sondern dies erfolgt vereinfacht und zentral an einer Stelle, dem OID.
Einsatzgebiete des OID
•
•
•
•
Unterstützung eines Datenbankadministrators bei der Verwaltung von Benutzern
und Rollen für eine oder mehrere Oracle
Datenbanken.
Zur Auflösung von Net Service Namen an
einer zentral gepflegten Stelle und damit
ein zukünftiger Ersatz für den Oracle
Names Service und als Alternative für die
tnsnames.ora.
Verwaltung von Benutzerdaten, Anmeldeinformationen oder X.509 Zertifikaten für
das Oracle Portal und Schaffung einer Single Sign-On Möglichkeit für Oracle Datenbanken sowie beim Zugriff durch das Inter- oder Intranet.
Bereitstellung von E-Mailadressen und
Adressbüchern für Komponenten der Oracle Collaboration Suite.
Oracle Internet Directory benutzt eine Oracle
Datenbank, um Verzeichniselemente wie Einträge, Objekte, ACLs (Zugriffsberechtigungen)
Der Aufbau des OID entspricht dem eines Standard LDAPv3 Servers. Das OID ist in der Lage, die oben angesprochenen Elemente
eines Verzeichnisses, wie Objekte mit Attributen, Objektklassen usw.
zu verwalten, Anfragen entgegenzunehmen und zu bearbeiten.
Anders als bei der OpenLDAP Implementierung werden hier allerdings die Schemadateien nicht im Dateisystem abgelegt, sondern
liegen im Repository des OID und damit in einer möglichst dedizierten Oracle Datenbank.
Die technische Architektur ist in der Abbildung 1 zu erkennen. Der
LDAP Client verbindet sich über den OID-Listener mit einer OID
Server Instanz. Der Listener ist ein Prozess, der bei unverschlüsselten Verbindungen standardmäßig auf dem Port 389 und bei
SSL-verschlüsselten Verbindungen auf dem Port 636 horcht und
Anfragen von LDAP Clients entgegennimmt.
Für jede Anfrage eines Clients wird über Oracle Net eine Verbindung zur LDAP Instanz aufgebaut und die Anfrage verarbeitet.
Die LDAP Server Instanz stellt dabei eine Verbindung zur Repository Datenbank auf, ermittelt die benötigten Daten aus dem Verzeichnisbaum und liefert die Ergebnisse an den Client zurück.
Im Allgemeinen besteht eine OID Server Instanz aus einer frei
konfigurierbaren Anzahl von LDAP Serverprozessen. Es können
mehrere Prozesse gestartet werden, um bei einer hohen Anzahl
von Clients eine Verteilung der Anfragen auf mehrere Prozesse
vorzunehmen. Auf einem Server können wiederum mehrere OID
Server Instanzen gestartet werden, um z. B. Lastenteilung zu erreichen.
Abb. 1: OID Architektur.
5
Datenbanken
Für die unterschiedlichen Konfigurationen der Instanzen werden
sogenannte Configsets bereitgestellt, mit denen die LDAP Server
Instanz parametrisiert werden kann. Hier kann z. B. die Portnummer, auf der der OID-Listener horchen soll, die maximale Anzahl
von Datenbankverbindungen pro OID Instanz oder auch die Verwendung von SSL konfiguriert werden. Diese Einstellungen werden über den GUI Oracle Directory Manager vorgenommen, der
später erläutert wird.
und einem auf der Ebene eindeutigen Namen,
dem „Relative Distinguished Name“ (RDN).
Der Verzeichnisbaum
Jedes Objekt im Verzeichnis besteht aus mehreren Attributen von unterschiedlichen Datentypen. Die „Schablone“ für dieses Objekt ist
im OID Repository gespeichert und wird, analog zu Programmiersprachen wie Java oder
C++, als Klasse bezeichnet.
Bevor nun auf die Installation und Konfiguration des OID eingegangen wird, noch eine kurze Erläuterung von bestimmten Begriffsdefinitionen des OID.
Die Speicherung von Daten in einem LDAPv3 konformen Verzeichnis ist in einer Baumstruktur aufgebaut (siehe Abbildung 2). Die
Baumstruktur wird auch als Directory Information Tree (DIT) bezeichnet. Von der Wurzel ausgehend, teilt sich der Baum in mehrere Zweige auf. Jeder Knotenpunkt ist ein Verzeichniseintrag mit
einer eindeutigen Adressierung, dem „Distinguished Name“ (DN),
Jeder Knotenpunkt kann dabei 1 bis n Nachfolger haben. Die eindeutige Adressierung eines gesuchten Objekts setzt sich somit immer
aus dem DN des Vorgängerknotens und dem
RDN des Objekts zusammen.
Im OID gibt es dabei eine hohe Anzahl an
vorgefertigten Klassen. Hierunter fallen alle
Standard LDAPv3 Klassen, wie auch die von
Oracle erstellten und spezialisierten Klassen,
die z. B. zur Namensauflösung unter Oracle
Net benötigt werden (siehe Abbildung 3a/b
und „Erstellen bzw. Exportieren von Oracle Net
Service Namen“ im Teil 2 dieser Serie).
Installation und Vorbereitungen
Für das Aufsetzen eines OID müssen folgende Schritte durchgeführt werden:
•
•
•
Abb. 2: Verzeichnisbaum mit der Beispieldomäne ordix.de den Net
Service Namen ora1 und ora2.
•
Installation der OID Software
Einrichtung einer neuen oder bestehenden
Datenbank für das OID
Einrichtung eines speziellen Oracle Schemas für das Verzeichnis
Starten der OID Instanz
Für die zentrale Namensauflösung über
das OID müssen zusätzlich noch folgende Schritte durchgeführt werden:
•
•
•
Erstellen einer Domänenstruktur im
OID
Erstellen bzw. Exportieren von Oracle
Net Service Namen
Erstellen der ldap.ora und Clientseitige
Modifikationen an der sqlnet.ora
Installation der Software und Erstellen
des OID Schema
Abb. 3a/b: Anlegen der Domänen Struktur mit Hilfe des oidadmin.
Abb. 4a/b: Installation der Software mit dem Oracle Installer.
6
Die Installation der OID Software wird mit
dem Oracle Universal Installer durchgeführt. Das OID ist, wie Abbildung 4a/b zeigt,
unter „Oracle9i Management and Integration“ zu finden.
Mit dieser Softwareinstallation werden alle
Programme installiert, um eine OID Server Instanz zu konfigurieren, zu starten und
zu betreiben. Neben den Programmen
oidmon und oidctl gehören die grafischen
Datenbanken
[email protected]:~> oidmon connect=oiddb server=oidldapd instance=1 configset=1 start
Starting the Monitor process.
Abb. 5: Aufruf für den Monitorprozess.
Oracle Internet Directory
Parameter
mögliche Werte
Beschreibung
Connect
ein gültiger Net Service Name
Gibt den Servicenamen der Datenbank an, in der das OID konfiguriert wurde.
Server
oidldapd, oidrepld, oidisrv
Hiermit kann die Art der zu startenden Instanz bestimmt werden. LDAP Server, Replication Server oder
Integration Server.
Instance
Wert zwischen 1 und 1000
Nummer der zu startenden Instanz.
Configset
Wert zwischen 1 und 1000
Zu verwendende Konfigurationsgruppe.
Abb. 6: Einzelne Parameter des Kommandos oidctl.
[email protected]:~> oidctl connect=oiddb server=oidldapd instance=1 start
Abb. 7: Start einer OID Server Instanz.
Benutzeroberflächen des Oracle Directory
Manager und des OID Configuration Assistant
dazu.
Der Oracle Net Manager aus der „Basisinstallation“ wird mit der OID Installation erweitert.
Wenn die Softwareinstallation abgeschlossen
ist, kann damit begonnen werden, eine Instanz
für den Einsatz des OID einzurichten. Es ist
empfehlenswert, eine neue Instanz für die Verzeichnisdaten des OID zu erstellen. Natürlich
können Sie aber auch eine bestehende Instanz nutzen, um Ihre Daten abzulegen.
Die Einrichtung dieser Instanz kann durch das
grafische Werkzeug OID Configuration Assistant (oidca) vorgenommen werden. Es werden weitere Tablespaces zur Aufnahme der
Verzeichnisdaten in der Datenbank eingerichtet und zusätzlich das Benutzerschema
ODSCOMMON angelegt, über das sich ein
LDAP Serverprozess mit der Datenbank verbindet, um auf Verzeichnisinformationen zuzugreifen. Der Benutzer ODSCOMMON besitzt ausschließlich die CONNECT und die für
den OID angelegte ODS_SERVER Rolle.
Zusätzlich wird der Oracle Context angelegt.
Der Oracle Context bildet eine Grundstruktur
für ein in einer Oracle-Umgebung einsetzbares
Verzeichnis. Er ist, wie in Abbildung 2 zu sehen, als ein Teilbaum im DIT vorhanden und
enthält Einträge, die schon für das Zusammenspiel mit anderen Oracle-Produkten, wie
z. B. dem iAS, dem Portal oder für die Möglichkeit eines Single Sign-On vorhanden sind.
Starten der OID Instanz
Im Anschluss an die Installation kann die OID
Instanz gestartet werden. Dazu werden die
beiden Programme oidmon und oidctl benutzt. Der oidmon ist ein
Prozess, der die LDAP Serverprozesse überwacht und diese z. B.
bei einem Absturz automatisch startet. Des Weiteren reagiert er
auf alle Anfragen des oidctl. Mit dem oidctl können die LDAP Serverprozesse gestartet und gestoppt werden. Beim Starten eines
solchen Prozesses kann z. B. ein Configset angegeben werden,
um den Prozess mit einer bestimmten Konfiguration zu starten.
Zuerst ist der Monitorprozess zu starten. Als Aufrufparameter wird
der Net Service Name der Instanz übergeben, in dem das Schema und der Context liegen. In Abbildung 5 ist ein Beispielaufruf
für den Monitorprozess abgebildet.
Als nächstes muss die eigentliche OID Server Instanz gestartet
werden, was mit dem Kommando oidctl durchgeführt wird. Dieses
hat eine Reihe von möglichen Übergabeparametern, von denen
einige in Abbildung 6 aufgeführt und beschrieben sind. Ein beispielhafter Start einer OID Server Instanz ist in Abbildung 7 aufgeführt.
Sind beide Prozesse erfolgreich gestartet worden, läuft nun ein
Monitorprozess und eine Reihe von oidldapd Prozessen, die für
Clientanfragen zur Verfügung stehen (siehe Abbildung 8).
[email protected]:~> ps
PID
TTY
TIME
4731
pts/0 00:00:00
4753
pts/0 00:00:00
4754
pts/0 00:00:00
4755
pts/0 00:00:00
4760
pts/0 00:00:00
[...]
CMD
oidmon
oidldapd
oidldapd
oidldapd
oidldapd
Abb. 8: Der ps-Outpost zeigt Monitor- und oidldapd Prozesse.
Ausblick
Im nächsten Teil beschreiben wir zunächst die zentrale Namensauflösung bevor wir die Benutzer- und Rollenverwaltung beschreiben. Sollten Sie jetzt schon Fragen haben oder nicht auf die nächsten Teile warten können, dann wenden Sie sich doch einfach an:
Lars Hendrik Korte und Michael Lindermann ([email protected]).
7
Unix/Linux/Open Source
phpLDAPadmin:
LDAP Administration Webfrontend
LDAP ist „in“. Bei der Suche nach einem zentralen Netzwerk Informationsdienst in Unix Systemlandschaften
stellen LDAP Verzeichnisdienste in zunehmendem Maße eine Alternative zu Lösungen wie NIS, NIS+ etc. dar.
Sogar SUN, als „Erfinder“ von NIS, setzt mittlerweile auf LDAP. Und auch Microsoft bietet mit seinem Active
Directory einen LDAP basierten Netzwerk Informationsdienst für Windows Systemlandschaften.
Das Problem
Der Einsatz eines LDAP Verzeichnisdienstes bringt große Vorteile bei der Zentralisierung der Informationsverwaltung. Allerdings
stellt sich die Administration eines LDAP Verzeichnisses oftmals
nicht besonders komfortabel dar. Das frei verfügbare OpenLDAP
beinhaltet z. B. keine menügeführte oder grafische Administrationsoberfläche.
Die Hersteller kommerzieller LDAP Verzeichnisdienste liefern demgegenüber zwar meist eigene Administrationsoberflächen (z. B.
Novell iManager für das eDirectory), allerdings sind diese aufgrund
proprietärer Komponenten in der Regel nur für eben dieses spezielle Verzeichnis zu gebrauchen.
Was ist phpLDAPadmin?
PhpLDAPadmin ist ein Open Source Projekt, das Ende 2002 ins
Leben gerufen wurde und derzeit in der Version 0.9.3 angeboten
wird. Es stellt eine webbasierte Administrationsoberfläche für beliebige LDAP Verzeichnisdienste bereit.
Die Software ist rein in PHP geschrieben und aufgrund der Lizensierung unter der GPL kostenlos erhältlich und bei Bedarf beliebig erweiterbar.
$i++;
$servers[$i]['name'] = 'Beispiel LDAP Server';
$servers[$i]['host'] = 'ldap1.beispieldomain.de';
$servers[$i]['base'] = 'dc=beispieldomain,dc=de';
$servers[$i]['port'] = 389;
$servers[$i]['auth_type'] = 'form';
$servers[$i]['tls'] = false;
$servers[$i]['default_hash'] = 'md5';
$servers[$i]['login_attr'] = 'uid';
$servers[$i]['read_only'] = false;
$servers[$i]['enable_auto_uid_numbers'] = false;
Abb. 1: Auszug aus der Konfigurationsdatei config.php.
8
Es gibt gute Gründe, die für den Einsatz eines
Webfrontends sprechen, im Gegensatz zu clientbasierten Lösungen. Der Installationsaufwand auf dem Client entfällt z. B. komplett,
da ein Webbrowser heutzutage standardmäßig auf jedem Arbeitsplatzrechner bereits vorhanden ist. Dies minimiert den Aufwand für
Installation und für Aktualisierungen der Oberfläche.
Des Weiteren ist der Administrator auch unabhängig vom Betriebssystem, das auf dem
Client eingesetzt ist, so dass die Bedienung
des Frontends prinzipiell von jedem beliebigen Arbeitsplatzrechner im Netzwerk ohne
Installationsaufwand möglich ist.
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
$i inkrementieren – neuer Dienst
wird definiert
Name des Servers (frei wählbar)
Hostname
Namensraum des Verzeichnisses
TCP-Port für den LDAP Dienst
Anmeldung per Formular
Keine verschlüsselte Verbindung
zum LDAP Server
MD5 ist Standard Verschlüsselung
für Benutzerpasswörter
Schreibzugriff erlauben
Keine automatische
Vergabe von UIDs
Unix/Linux/Open Source
Installation
Zur Installation des Tools wird lediglich
ein Webserver (Apache, IIS, ...) mit PHPFunktionalität benötigt. Der eingesetzte
PHP Interpreter muss dabei die Version
4.1 oder höher aufweisen und LDAP
Unterstützung beinhalten.
Zur Installation wird die im „tar“ Format
bereitgestellte Software [1] in das Dokumentenverzeichnis des Webservers
entpackt und kann anschließend über
die entsprechende URL angesprochen
werden.
Konfiguration
Die Konfiguration erfolgt über die Datei
config.php im Installationsverzeichnis.
Dabei kann die sehr gut dokumentierte
Beispieldatei (config.php.example) sehr
gut als Vorlage dienen.
Abb. 2: Anlegen eines neuen Objekts.
Die zu administrierenden LDAP Dienste werden über das zweidimensionale Array $servers
konfiguriert, wobei $i einen laufenden Index
für den jeweiligen Dienst darstellt. Eine Beispielkonfiguration zeigt Abbildung 1.
Eine deutsche Sprachumgebung wird ebenfalls mitgeliefert.
Die Aktivierung erfolgt durch folgenden Eintrag in der Datei config.php:
$language = ‘de’;
Verwaltung von Objekten
Wurde in der Konfiguration der Parameter
„auth_type“ auf den Wert „form“ gesetzt, so
kann sich der Benutzer vor dem Zugriff auf
das Verzeichnis mittels eines Formulars authentifizieren. Eine Anmeldung als „anonymous“ ist an dieser Stelle ebenfalls möglich,
sofern die Sicherheitseinstellungen des LDAP
Servers dies erlauben.
Nach dem Login präsentiert sich der Inhalt des
Verzeichnisses in einer übersichtlichen Baumstruktur. Die Bedienung erfolgt durchweg sehr
intuitiv. Neben der Anzeige von Objekten sowie der Suche im Verzeichnis lassen sich Objekte und Attribute neu erstellen, modifizieren
und löschen.
Bei der Erstellung von Objekten helfen Templates, welche Kann- und Mussattribute sowie Standardvorbelegungen für eine Objektklasse festlegen. Einen Eindruck davon, wie
intuitiv die Bedienung ist, gewinnen Sie in
Abbildung 2.
Link
[1] http://phpldapadmin.sourceforge.net
Import und Export
Als besonders nützliches Feature ist der komfortable Import und
Export von Objekten zu nennen. PhpLDAPadmin erstellt bei Bedarf von jedem Objekt oder wahlweise von kompletten Zweigen
(Subtree) eine Export Datei im LDIF Format. Im Gegenzug lassen
sich Objekte, die in Form einer LDIF Datei vorliegen, per Browser
importieren. Des Weiteren bietet phpLDAPadmin die Möglichkeit,
Objekte zu kopieren und direkt in ein anderes Verzeichnis einzufügen.
Fazit
Das vorgestellte Tool wird von der ORDIX AG seit einigen Monaten auch bei Kunden-Projekten eingesetzt und macht bisher einen durchweg positiven Eindruck. Das Layout ist sehr übersichtlich und die Bedienung erfolgt intuitiv.
Die offene Struktur der Software ermöglicht es zudem, auf einfache Weise eigene Anpassungen zu tätigen, z. B. Templates für
eigene Objektklassen zu definieren.
Bei Fragen wenden Sie sich einfach an den Autor. Wir helfen Ihnen gern!
Christof Amelunxen ([email protected]).
9
Datenbanken - Titelthema Data Pump
Oracle 10g (Teil I):
Oracle 10g Data Pump –
Export und Import mit Hochdruck
Oracle Data Pump ist das neue Export/Import Feature unter Oracle10g. Es soll in naher Zukunft die bestehenden clientseitigen Export- und Import Tools ablösen. Dabei wurde Data Pump mit dem Ziel entwickelt, einen
neuen Daten-Extraktions- und Lade-Mechanismus mit Performance-Verbesserungen für Bulk-Loads und
Metadaten-Verschiebung zu bieten.
Noch ein Export/Import?
Neben den bestehenden Verfahren Export/Import und SQL*Loader
bietet die Data Pump API in Oracle 10g nicht nur die Möglichkeit,
Daten und Metadaten parallel im direct-path Verfahren zu laden,
sondern auch viele weitere Funktionalitäten, wie das Wiederaufsetzen eines Ent-/Ladevorgangs nach Unterbrechungen, einstellbarer Ressourcenverbrauch für Data Pump Vorgänge, Schätzung
der Ausführungsdauer und des Platzverbrauchs sowie flexible und
feingranulare Auswahlmöglichkeiten der Export- und Import Strukturen. Werfen wir jedoch zunächst einen Blick auf die Architektur.
Architektur
In Abbildung 1 sind Aufbau und Architektur zu erkennen, die sich
aus den folgenden Teilkomponenten zusammensetzen:
Master Table
Zentrale Einheit jeder Data Pump Operation ist die Master Table.
Sie wird im Schema des Benutzers erstellt, der den Data Pump
Abb. 1: Die Architektur von Data Pump.
10
Job aufruft. Sie enthält alle Informationen über
den Job: den aktuellen Status jedes Objekts,
das ex- oder importiert wird, die Stelle, an der
sich das Objekt im Dumpfile Set befindet, die
benutzerspezifischen Konfigurationsparameter, der Status der WorkerProzesse und Restart-Informationen.
Die Master Table wird während des File-basierten Exports erstellt und wird im letzten
Schritt in das Dumpfile Set geschrieben. Im
umgekehrten Fall wird die Master Table bei
einem Import als erstes in die Datenbank importiert.
Client Prozess
Dieser ruft die Data Pump API auf. Die neuen
Clients expdp und impdp besitzen neben der
bereits in exp und imp enthaltenen Funktionalität zusätzlich eine Reihe von weiteren
Datenbanken
Export: Release 10.1.0.2.0 - Production on Wednesday, 07 April, 2004 10:33
Copyright (c) 2003, Oracle.
All rights reserved.
Connected to: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production
With the Partitioning, Oracle Label Security, OLAP and Data Mining options
FLASHBACK automatically enabled to preserve database integrity.
Starting „ML“.“EXPORTML“: ml/******** directory=myDumpDest logfile=schemaML.log
dumpfile=schemaML.dmp job_name=exportML schemas=ml
Estimate in progress using BLOCKS method...
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
Export> exit_client
[email protected]:/oracle/>
Listing 1: Starten des Data Pump Exports für das Schema ml.
Features. Da Data Pump komplett in den Oracle Server integriert ist, wird nach dem Auslösen eines Data Pump Jobs kein weiterer Client
benötigt. Es können sich sogar mehrere Clients zum Monitoring mit dem Job verbinden
und wieder lösen, ohne dass der Job dadurch
gestört wird.
Server Prozess
Dies ist der Standard Oracle (Dedicated) Server Prozess, wenn ein Client sich mit der Datenbank verbindet. Nach einem Aufruf von
DBMS_DATAPUMP.OPEN ist der Server Prozess dafür zuständig, den eigentlichen Job
anzustoßen und damit die Master Table zu
generieren, die Advanced Queuing Kommunikation aufzusetzen, die für die Kommunikation zwischen den einzelnen Prozessen benötigt wird und den Master Control Prozess
zu initiieren.
Master Control Prozess
Pro Job existiert immer nur ein Master Control
Prozess (MCP). Dieser kontrolliert die Abarbeitung und Verteilung eines Data Pump Jobs.
Ein Job kann in verschiedene Metadaten- bzw.
Datenlade- und -entlade Phasen geteilt werden. Die Einteilung und Beauftragung der Worker Prozesse übernimmt ebenfalls der MCP.
Zusätzlich ist der MCP auch für das File-Management, die Pflege der aktuellen Dumpfile
Liste, den Job-Status, die Job-Beschreibung
und die Restart- und Dumpfile-Information im
Master Table zuständig.
Worker Prozess
Durch Aufruf des Kommandos START_JOB
initiiert der MCP n Worker Prozesse, wobei n
die Anzahl der durch den Parameter PARALLEL bestimmten Prozesse ist. Die Worker
Prozesse führen die Aufgaben des MCP aus und protokollieren,
welche Art von Objekt momentan verarbeitet wird, sowie den jeweiligen Status (completed, running). Diese Informationen werden für den Restart benötigt.
Ventil öffnen
Da der Export nun direkt auf dem Server stattfindet, muss hierfür
zunächst ein Verzeichnisobjekt erstellt werden. Dieses Objekt referenziert ein existierendes Verzeichnis auf Betriebssystemebene,
in dem der Benutzer oracle Lese- und Schreibrechte besitzt.
Die exportierten Daten werden später vom expdp Programm in
Form von Dumpfiles in dieses Verzeichnis gelegt. Des Weiteren
werden dem Benutzer ml, der den Export und Import durchführt,
die nötigen Systemprivilegien (read, write) erteilt.
CREATE DIRECTORY myDumpDest AS ‘/tmp/myDumpDir1‘;
GRANT READ, WRITE
ON DIRECTORY myDumpDest TO ml;
Der eigentliche Export wird dann auf dem Server mit dem Kommando expdp gestartet. Einige Datenbankadministratoren werden
sich sicherlich in einer vertrauten Umgebung wiederfinden, da viele
Parameter vergleichbar mit den Parametern des klassischen exp
Kommandos sind.
Auch das expdp Kommando bietet drei „Benutzerinterfaces“ an:
Aufruf über die Kommandozeile mit Argumentenliste, Verwendung
eines Parameterfiles oder die Benutzung der Dialogsteuerung.
Um einen Export des eigenen Schemas durchzuführen, reicht der
folgende Befehl aus:
expdp ml/geheim \
dumpfile=schemaML.dmp \
directory=myDumpDest \
logfile=schemaML.log \
job_name=exportML \
schemas=ml
Der Parameter dumpfile spezifiziert den Dateinamen, directory
referenziert das zuvor erstellte Verzeichnisobjekt, logfile defi-
11
Datenbanken
niert den Namen der Protokolldatei und der Parameter schemas
grenzt den Exportvorgang auf das Schema „ml“ ein. Jeder Exportvorgang bekommt einen eindeutigen Namen, der über den Parameter job_name frei vergeben werden kann.
Wird dieser Parameter ausgelassen, so
generiert Oracle selbstständig einen
Namen. Über den Job Namen können
später z. B. Statistiken über den Fortschritt erfragt werden. Wichtig ist hierbei, dass der Name des Jobs nicht mit
existierenden Objekten im Schema „ml“
in Konflikt gerät, da die von Oracle erstellte Master Table genau diesen Job
Namen annimmt.
Nachdem der Job angelaufen ist, kann
die Interaktion mit <Steuerung + C> unterbrochen werden. Der eigentliche Exportjob läuft dabei im Hintergrund weiter (siehe Listing 1).
Der Exportvorgang kann nun auch parallelisiert werden, so dass
mehrere Worker Prozesse die Inhalte aus dem Schema in die
entsprechenden Dumpfiles schreiben. Der oben aufgeführte Befehl muss hierfür nur leicht modifiziert werden:
expdp ml/geheim \
dumpfile=myDumpDest1:schemaML1%U.dmp,myDumpDest2:schemaML2%U.dmp \
logfile=schemaML.log \
job_name=exportML \
schemas=ml \
parallel=2
Durch den Parameter parallel werden hier zwei Worker Prozesse gestartet. Damit die Performance voll ausgenutzt wird, erhält jeder Worker Prozess ein eigenes Verzeichnis, in das dieser
die Dumpfiles schreibt. Im Idealfall an unterschiedlichen Controllern. So wird verhindert, dass das I/O System einen Flaschenhals
bildet. Zu beachten ist, dass die Verzeichnisangabe nun Teil des
dumpfile Parameters ist und der Parameter directory damit
entfällt.
•
Es soll nur die Tabelle Mitarbeiter aus dem
Schema ml exportiert werden.
•
Beim anschließenden Import soll die Tabelle im Schema mh erzeugt werden.
•
Storage Parameter werden nicht importiert.
Ausgehend von unserem ursprünglichen Beispiel modifizieren wir den expdp-Aufruf um
einen weiteren Parameter:
expdp ml/geheim \
dumpfile=limitedExp.dmp \
directory=myDumpDest \
logfile=limitedExp.log \
job_name=exportLimit \
schemas=ml \
include=TABLE:”=’MITARBEITER’”
Include ist ein interessanter Parameter, da
über ihn gesteuert werden kann, welche Objekte exportiert werden. Dabei kann der include Parameter eine komplette Liste von Objekttypen annehmen (wie z. B. index, table,
procedure, function etc.)
Auch können die bekannten Vergleichsoperatoren, wie „IN“ „LIKE“ „=“ „!=“, benutzt werden. Sollen nur wenige Objekte ausgeschlossen werden, so kann dies über den exclude
Parameter erfolgen, der die Negation zu include bildet.
Gegenstück zum Export: impdp
Rohraufsatz wechseln
Um die weiteren Voraussetzungen zu erfüllen,
schauen wir uns den Import an. Der generelle
Aufbau ist ähnlich. Auch der Import bietet die
bekannten drei Benutzerschnittstellen.
Beide Beispiele in diesem Artikel zeigen einen Schema Export
des Benutzers ml. Das heißt, es werden grundsätzlich alle Objekte plus deren Inhalte exportiert. Data Pump bietet jedoch weitere
Möglichkeiten, um selektiv einzelne Objekte und Datensätze zu
exportieren.
impdp ml/ml
dumpfile=limitedExp.dmp
directory=myDumpDest
remap_schema=ml:mh
transform=segment_attributes:N
[email protected]:/oracle/> cat expPar.par
dumpfile=ma.dmp
directory=dump_dir1
include=table:“=’MITARBEITER’“
query=“WHERE gehalt/12 > 1800“
Inhalt des Parameterfiles (expPar.par)
[email protected]:/oracle/> expdp ml/ml parfile=expPar.par
Listing 2: Inhalt und Aufruf unter Benutzung eines Parameterfiles.
12
Beginnen wir mit einem einfachen Beispiel
und treffen die folgenden Voraussetzungen:
Nach der Angabe, welches Dumpfile benutzt
werden soll, wird mit Hilfe des Parameters
remap_schema festgelegt, dass sämtliche
Objekte vom Schema „ml“ in das Schema „mh“
importiert werden. Dieser Parameter ist vergleichbar mit den Parametern „fromuser“ und
„touser“ des bisherigen Import Clients unter
Oracle 9i.
Storage Parameter werden nicht aus dem
Dumpfile eingelesen. Dafür sorgt der Parameter transform=segment_attributes:N.
Datenbanken
Auch Datensätze können gefiltert werden. Ein
Beispiel unter Verwendung einer Parameterdatei finden Sie in Listing 2. Hier werden nur
die Mitarbeiter exportiert, deren berechnetes
Monatsgehalt größer als 1800 Euro ist. Die
query Klausel ist unser Freund ;-).
An dieser Stelle möchte ich auf die ausführliche Oracle Dokumentation verweisen. Das
Buch „Utilities“ [1] beschreibt die neuen Data
Pump Parameter und ihre Möglichkeiten umfassend.
Druckverlust
Sollte es während des Exportvorgangs zu Fehlern kommen, so kann der DBA darauf reagieren. Bricht ein normalerweise sechs Stunden
dauernder Export zum Beispiel nach der fünften Stunde aufgrund fehlenden Speicherplatzes im Zielverzeichnis ab, pausiert der Export.
Nun kann ein zusätzliches Dumpfile in einem
anderen Verzeichnis bereitgestellt werden und
der pausierende Export wird genau an dieser
Stelle wieder aufgenommen.
Instance:
Max Parallelism:
EXPORT Job Parameters:
Parameter Name
CLIENT_COMMAND
kr
1
Parameter Value:
ml/********
directory=myDumpDest
logfile=schemaML.log
dumpfile=schemaML.dmp
job_name=exportML
schemas=ml
DATA_ACCESS_METHOD
AUTOMATIC
ESTIMATE
BLOCKS
INCLUDE_METADATA
1
LOG_FILE_DIRECTORY
MYDUMPDEST
LOG_FILE_NAME
schemaML.log
TABLE_CONSISTENCY
0
USER_METADATA
1
State:
IDLING
Bytes Processed:
0
Current Parallelism:
1
Job Error Count:
0
Dump File: /tmp/myDumpDir1/schemaML.dmp
bytes written: 4,096
Worker 1 Status:
State: UNDEFINED
Export> add_file=dump_dir1:newFile%U.dmp
Bis dato ist dies nicht möglich gewesen. Bei
der bisherigen Export/Import Funktionalität
(bis Oracle 9i) wurde der Export in so einem
Fall sofort abgebrochen. In der Hoffnung des
DBA, diesmal genug Speicherplatz bereitgestellt zu haben, musste der komplette Export
erneut durchgeführt werden.
Listing 3 zeigt nun die neue Vorgehensweise
für den angenommenen Fall. Über den Parameter attach und den Jobnamen kann eine
Verbindung zu einem im Hintergrund laufenden Export aufgebaut werden.
Gleichzeitig wird die dargestellte Statistik in
Listing 3 ausgegeben, die erneut mit dem
Kommando status abgefragt werden kann.
Wird hier der Fehler festgestellt, so kann über
das Kommando add_file ein zusätzliches
Dumpfile bereitgestellt werden. Dann wird der
pausierte Export über den Befehl start_job
fortgesetzt.
Export> start_job
Listing 3: Hinzufügen eines weiteren Dumpfiles bei „pausierendem“
Export Vorgang.
Link
[1] http://otn.oracle.com/documentation/database10g.html
Des Weiteren wird von Oracle eine komplette API zur Verfügung
gestellt, mit der es dem Entwickler möglich ist, eigene PL/SQL
Programme zu schreiben, die die neuen Export- und Import Funktionalitäten nutzen.
Die Möglichkeit der Selektierung von Daten über die include- und
exclude Parameter ist dabei ein willkommenes Bonbon. Zu hoffen
ist, dass bekannte Kinderkrankheiten in naher Zukunft behoben
werden.
Fazit
Oracle Data Pump erhöht die Performance
des Exports durch die Möglichkeit der Parallelisierung. Dabei kann der Grad der Parallelisierung „on demand“ gewählt werden.
Im klassischen OLTP Betrieb wäre es denkbar, tagsüber einen Export mit zwei parallelen Prozessen zu starten. In den Abendstunden kann nachträglich die Anzahl der Worker
Prozesse erhöht werden, da nun gegebenenfalls freie Ressourcen zur Verfügung stehen.
Michael Lindermann ([email protected]).
13
System Management - Titelthema Control-M
Control-M: Optimierung von
Geschäftsprozessen
Vom Job Scheduling zur Steuerung von Geschäftsprozessen: ORDIX bietet Ihnen mt BMC’s Control-M ein modernes und praxiserprobtes Job-Control-System zur Verbesserung der Abläufe Ihrer Geschäftsprozesse an.
Jobsteuerung nicht mehr nur für Mainframes
Früher war Jobsteuerung eine Domäne der Mainframes. Inzwischen wird es immer wichtiger, in heterogenen Umgebungen Geschäftsprozesse zu steuern, deren zugehörige Programme auf verschiedenen Plattformen ablaufen und Abhängigkeiten untereinander aufweisen.
Anforderungen an moderne
Jobsteuerung
•
Durch die stetige Erweiterung der OnlineZeiten und damit einhergehend die Verkürzung des Batchfensters, werden die Anforderungen an einen reibungslosen und
optimierten Ablauf der Batchprozesse ständig erhöht. Zudem erwarten Endkunden
immer schnellere und bessere Serviceleistungen. Diese Entwicklung führt zu der
Notwendigkeit, diese Abläufe zu automatisieren, um Fehler und Verzögerungen
möglichst zu vermeiden.
•
Bei der Realisierung eines Geschäftsprozesses sind in der Regel mehrere Applikationen beteiligt, die oft auf unterschiedlicher Hardware unter verschiedenen Betriebssystemen laufen. Zudem befindet
sich diese Hardware möglicherweise in
verschiedenen Rechenzentren, ist also
räumlich voneinander getrennt.
•
Einige Applikationen, wie etwa SAP R/3,
bilden abgeschlossene Umgebungen und
enthalten ihre eigenen Mechanismen, um
Daten in Batchjobs zu verarbeiten. Wenn
einem Kunden z. B. Lieferzeiten zugesagt
sind, dürfen all diese Nebenbedingungen
keinen behindernden Einfluss auf den Ablauf des Prozesses haben.
•
Bei den Abhängigkeiten zwischen verschiedenen Batchjobs werden Mehrfachabhängigkeiten berücksichtigt.
•
Bei unvorhergesehenen Ereignissen gewährleistet die Steuerungssoftware den –
unter den neuen Bedingungen – optimalen Ablauf des Geschäftsprozesses.
•
Durch B2B-Applikationen überschreiten
Geschäftsprozesse inzwischen sogar die
Grenzen zwischen Unternehmen. Der Anstoß für einen Geschäftsprozess kann so
ein Ereignis sein, das von einem anderen
Unternehmen ausgelöst wird (z. B. Bestellung). Andererseits kann aber auch ein
Geschäftsprozess im eigenen Unternehmen durch eine Aktion im System eines an-
Jede dieser Plattformen bringt in der Regel Mechanismen mit, die
mit Einschränkungen geeignet sind, Batchjobs auf ihr zu organisieren. Das plattform- und anwendungsübergreifende Zusammenwirken der Jobs bleibt aber bisher Scheduling-Tools überlassen.
Insbesondere hohe Investitionen in Standardsoftware wie z. B.
SAP können sich am schnellsten amortisieren, wenn eine möglichst enge Einbindung in die übrige Systemlandschaft gewährleistet ist. Dabei sollte die Jobsteuerung sich an Geschäftsvorfällen orientieren und nicht durch technische Einschränkungen
gekennzeichnet sein.
Laut einer gemeinsamen Studie des Handelsblattes und der
Droege&Comp versprechen sich die IT-Chefs vieler Unternehmen
das höchste Einsparpotential von Standardisierung, gefolgt von
Prozessoptimierungen (Quelle: Handelsblatt vom 23.3.2004).
Abb. 1: Applikationsübergreifende Steuerung von Geschäftsprozessen.
14
System Management
deren Unternehmens unterbrochen (z. B.
Lieferanfrage) und erst nach Erhalt des Ergebnisses aus diesem System fortgesetzt
werden. Das bedeutet, dass auf diese Ereignisse ein Steuerungstool entsprechend
reagiert.
•
Um auf Marktentwicklungen schnell reagieren zu können, ist es für das Management eines Unternehmens immer häufiger
notwendig, kurzfristig „ad hoc“-Auswertungen – z. B. zur aktuellen Geschäftsentwicklung oder zur Struktur des Kundenstammes – durchzuführen. Derartige Auswertungen sind in den laufenden Betrieb integrierbar, ohne wichtige Anwendungen zu
beeinträchtigen.
•
Im Fehlerfall ist es möglich, den Fehler zu
analysieren, z. B. durch Untersuchung einer Log-Datei, und gegebenenfalls automatisiert Aktionen zur Fehlerbereinigung
durchzuführen.
•
Alle Prozesse sind von einer zentralen
Stelle aus überschau- und überwachbar.
•
Zusätzliche Applikationen sind schnell integrierbar.
•
Vereinbarte Service-Level sind auch in heterogenen Umgebungen überprüfbar und
werden eingehalten.
•
Verbesserte Ressourcenauslastung durch
Lastverteilung.
3. Gegebenenfalls wird Ware nachbestellt oder ein Produktionsauftrag an die Fertigung erteilt. Parallel dazu wird eine Auftragsbestätigung an den Kunden versandt und der Auftrag als
Bestellung verbucht.
4. Wenn die Lieferung vollständig ist, kann die Rechnung erstellt
werden und die Auslieferung erfolgen.
5. Schließlich kann hoffentlich noch die Zahlung verbucht werden, um den Vorgang abzuschließen.
Diese Aktivitäten laufen voraussichtlich auf mindestens drei verschiedenen Rechnern in ebenso vielen unterschiedlichen Programmen ab, die voneinander abhängig sind.
Die Lösung: Steuerung von Geschäftsprozessen mit
Control-M
Als langjähriger BMC-Partner bietet ORDIX für diese Aufgabe das
Produkt Control-M an. Um die übergreifende Funktionalität zu erreichen, werden Komponenten auf drei Ebenen installiert (siehe
Abbildung 3).
•
Die Konfiguration und Überwachung der Server erfolgt über
den Enterprise-Manager.
•
Mehrere Agenten können von einem Server gesteuert werden, der die Informationen für die Startzeiten und Abhängigkeiten verwaltet.
Beispiel
Warenbestellung durch einen Kunden über
das Internetportal, Zusammenstellung der Lieferung, gegebenenfalls Nachbestellung von
Ware oder Produktionsauftrag, Verwaltung
des Bestellvorgangs bis hin zur Rechnungsstellung und Verbuchung.
Da hoffentlich viele Bestellungen eingehen,
ist die Verarbeitung dieser Geschäftsvorfälle
im Batch die effizienteste Vorgehensweise.
Abbildung 2 zeigt den folgenden Ablauf:
1. Auf dem Internetrechner, der in einer DMZ
steht, werden die Bestellungen gesammelt.
2. Die Bestellungen werden dann weitergegeben bzw. in regelmäßigen Abständen
von einem Lagerverwaltungs-/ Kommissionierungsprogramm abgeholt.
In diesem Programm wird geprüft, ob die
geforderte Ware im Lager vorhanden ist.
Abb. 2: Beispiel für einen Geschäftsprozess.
15
System Management
E-Business Suite existieren bereits spezielle
Kontrollmodule, die die Steuerung von Jobs
innerhalb dieser Systeme erlauben. Durch die
plattform- und applikationsübergreifende Steuerung der Jobs werden Geschäftsprozesse
gestrafft und Verzögerungen vermieden.
D. h. auch komplexe Abläufe können optimiert
werden, indem der kritische Pfad analysiert
wird und die entsprechenden Jobs z. B. optimiert oder auf schnellere Hardware verlagert
werden. Die schnellere Abwicklung von Geschäftsprozessen ist kundenfreundlich und
kann ein Wettbewerbsvorteil sein.
Auf unterster Ebene funktionieren Agenten, die auf jedem Rechner installiert werden müssen, auf dem Jobs über das Tool gesteuert ablaufen sollen.
Das Modul eTrigger bietet die Möglichkeit,
Web-basierte Anwendungen in die Produktionsumgebung zu integrieren. Z. B. kann man
ein Webfrontend gestalten, über das Anforderungen an einen Geschäftsprozess in das
System geleitet werden, deren Verarbeitung
in entsprechenden Batchjobs durch eTrigger
sichergestellt wird.
Zusätzlich kann die Installation weiterer Module notwendig werden. So wird z. B. die Anbindung an das Internet durch ein eigenes Modul (eTrigger) erreicht. Und auch die Steuerung von Jobs
innerhalb abgeschlossener Applikationen wie z. B. SAP R/3 erfolgt über eigene Kontrollmodule.
Beispielwebseiten und Templates für unterschiedliche Aufgaben erleichtern dabei die
Arbeit erheblich. Auf diese Weise könnte das
im Beispiel (siehe Abbildung 2) beschriebene
Szenario vollständig automatisiert ablaufen.
Für nahezu alle Betriebssysteme und viele
Standardapplikationen verfügbar
Dazu würden die vom Kunden in die – mit Hilfe von eTrigger gestaltete – Webseite eingegebenen Daten auf Plausibilität geprüft, interpretiert und der Start entsprechender Batchjobs veranlasst.
Abb. 3: Architektur von Control-M.
•
Es werden alle gängigen Betriebssysteme unterstützt. Für Baan,
SAP R/3, SAP BW, Peoplesoft eBusiness Solutions und Oracle
Die weitere Steuerung des Geschäftsprozesses erfolgt ebenfalls über Control-M, gegebenenfalls in Abhängigkeit von Ergebnissen
der Prüfprogramme. Dabei können auch die
Jobs zur Auftragsabwicklung, die möglicherweise in einem SAP R/3- oder Baan-System
ablaufen, ausgeführt und überwacht werden.
Development Kit für Erweiterungen
Zur Berücksichtigung von Eigenentwicklungen
und bisher noch nicht durch den Standard unterstützten kommerziellen Programmen wird
ein Software Development Kit eingesetzt, mit
dessen Hilfe Kontrollmodule geschrieben werden können. Auf diese Weise ist es natürlich
auch möglich, zukünftige Entwicklungen zu integrieren, wodurch ein Investitionsschutz gewährleistet ist.
Abb. 4: Automatisierte Fehlerbehebung durch Auswertung von
Log-Dateien.
16
Applikationen, die ein Kommandozeileninterface besitzen, können auch über Control-M/
Links for Distributed Systems integriert werden. Dazu wird eine Session zu dem entsprechenden Rechner aufgebaut, innerhalb der
das Kommando ausgeführt wird. Für Meldun-
System Management
gen, die an diese Session gesandt werden,
können Regeln hinterlegt werden, die eine
automatisierte Reaktion beinhalten.
Challengers
Im Fehlerfall ist Control-M in der Lage, beispielsweise eine Log-Datei auszuwerten und
auf gegebenenfalls auftretende Fehlermeldungen mit entsprechenden Maßnahmen zu
reagieren, so dass ein Neustart des Jobs erfolgreich sein kann.
IBM/Tivoli
BMC Software
Ability to
execute
Marktpositionierung
Das aktuellste magische Quadrat von Gartner
aus dem Januar 2003 zeigt BMC mit ControlM wie schon im Jahr 2002 als führendes Unternehmen im Markt für Job Scheduling Tools
(siehe Abbildung 5).
Mit über 2800 Installationen weltweit ist Control-M eines der am stärksten verbreiteten Produkte dieses Bereichs.
Ausblick
In der nächsten ORDIX News berichten wir
über den Einsatz von Control-M für „ad-hoc“
Leaders
Computer
Cybermation
Associates
UC4 Software
Orsyp
Redwood Software
Allen
Systems
Tidal
AppWorx
Group
Others
As of January 2003
Niche Players
Visionaries
Completeness of Vision
Abb. 5: Quelle: Gartner Research: Marktpositionen konkurrierender
Anbieter im Markt für Job Sceduling Tools.
Auswertungen und die Integration von SAP-Jobs. Sollten Sie jetzt
schon Fragen haben, wenden Sie sich an
Theo Antony ([email protected]).
Seminarvorstellung: PATROL Central
Der Teilnehmer lernt in diesem Seminar den
neuen Consolen Server „PATROL Central“
kennen. Im Vordergrund stehen dabei die
Grundlagen, die Planung, die Installation und
Konfiguration von PATROL Central sowie der
praktische Umgang damit.
Seminarinhalte
•
Einblick in die PATROL 7 Architektur
•
Installation und Konfiguration der Common Service
Komponenten und der PATROL Central Produkte
•
PATROL Console Server und RTserver
Zielgruppe
•
PATROL Central Microsoft Windows Edition
PATROL Administratoren
•
PATROL Central Web Edition
Voraussetzungen
•
Arbeiten mit den PATROL Central Produkten
Gute Kenntnisse in der Administration von
PATROL 3 oder mindestens Teilnahme am
ORDIX Seminar “PATROL Basics” (PAT-01).
Kenntnisse des Betriebssystems Unix oder
Windows.
•
PATROL 7 Security
•
Migration PATROL Console 3.x nach 7
•
Planung der PATROL 7 Infrastruktur
•
Übungen
Termine
26.07.2004 - 28.07.2004 in Wiesbaden
13.09.2004 - 15.09.2004 in Wiesbaden
06.12.2004 - 08.12.2004 in Wiesbaden
Dauer: 3 Tage
Kursgebühr/Teilnehmer: 1.190 € zzgl. MwSt.
Die Unterlagen zu diesem Seminar erhalten Sie in
deutscher Sprache.
17
Unix/Linux/Open Source
E-Mail Filter gegen SPAM
Die webbasierte Variante von gewürztem Dosenfleisch (SPAM) schmeckt uns auch nicht mehr und lag schwer
in der Mailbox von vielen Mitarbeitern unseres Unternehmens. Obwohl es längst eine gesetzliche Regelung
für dieses Problem gibt, ist der Anteil an SPAM E-Mails in den Mailboxen nicht zurückgegangen, im Gegenteil: die Tendenz ist steigend.
Open Source: SpamAssassin
Einen 100%igen Schutz vor SPAM oder UCE (Unsolicited Commercial E-Mail) wird es nicht geben, solange es sich für „SPAMer“
noch lohnt, irgendwelche Filter zu knacken, um die Werbung an
den Empfänger zu bringen.
Es gibt aber mehrere Hard- und Software Lösungen auf dem Markt,
die sich diesem Problem widmen. Wir haben uns für den Einsatz
des Open Source Produktes „SpamAssassin“ entschieden, weil
dieses Programm eine verblüffende Effizienz aufweist. Davon hat
uns die Software bei umfangreichen Tests überzeugt. Die Trefferquote lag nahezu sofort zwischen 90 % und 95 %, was schon
Grund genug ist, diese Software einmal einzusetzen.
Ein weiterer, für uns wichtiger Punkt: Die Software verändert die
E-Mail beim Scannen nicht. Ihr wird nur ein Stempel im Header
„verpasst“. Damit ist schon eine Vorarbeit für das Sortieren geleistet. Der Mitarbeiter entscheidet dann letztendlich selbst, wie er mit
solchen E-Mails umgeht.
Drei Dämonprozesse machen die Arbeit
Zu Beginn eines solchen Projektes muss man sich zunächst einmal
überlegen, an welcher Stelle der gesamten internen E-Mail-Route
das Filtern erfolgen soll. Eine Richtlinie, an die wir uns unbedingt
halten wollten, war, dass alle E-Mails von extern erst einmal angenommen werden. Erst auf dem POP3/IMAP Server sollte dann
das Scannen erfolgen.
Pop3/Imap Server
MA Laptops /
Festplatte
MA Rechner/
Sendmail-8.12.8
Spamass-Milter 0.2.0
Snmp Server
WWW
Abb. 1: Durchlauf einer E-Mail im Unternehmen über POP3/IMAP Server mit Sendmail, Spamass-Milter und SpamAssassin.
18
Sobald eine E-Mail den Sendmail auf dem
Server erreicht, wird sie erst durch SpamassMilter weiterverarbeitet. Dieser ruft den SpamAssassin auf und analysiert die Mail unter Verwendung von spamd und spamc (Dämon und
Client).
Anhand von Suchmustern und Regeln bekommt jede Mail einen Zahlenwert zugeordnet. Je höher der Wert, desto größer ist
die Wahrscheinlichkeit, dass sie eine SPAMMail ist.
Dieser Wert wird in den Mail-Header „X-SpamStatus“ eingefügt. Ab einem konfigurierbaren
Schwellwert wird zusätzlich das Subject mit
dem Wort SPAM „verziert“. Danach geht die
Mail den üblichen Weg durch Sendmail und
wird dann z. B. auf dem IMAP Server abgelegt.
Um es kurz darzustellen: Anstatt den üblichen
Weg zu gehen, wird die E-Mail beim Sendmail durch einen Bypass geschickt, wo das
Filtern erfolgt.
Folgende Software-Versionen sind auf dem EMail-Server im Einsatz:
[1] Sendmail - 8.12.8
Compiled with:
DNSMAP LOG MATCHGECOS MILTER
MIME7TO8 MIME8TO7 NAMED_BIND
NETINET NETUNIX NEWDB PIPELINING
SCANF USERDB XDEBUG
...
[2] Spamass-milter 0.2.0
[3] SpamAssassin version 2.60
Sendmail Source installieren und Milter
einkompilieren
spamc
SpamAssassin
2.60
spamd
Drei Software Pakete in Kombination machen
es möglich: Sendmail, Spamass-Milter und
SpamAssassin. Das Zusammenspiel der drei
Pakete zeigt Abbildung 1.
Zunächst die Source auf dem System auspacken:
# rpm -i sendmail-8.12.8-5.90.src.rpm
Eine Datei site.config.m4 unter /usr/
src/redhat/SOURCE/sendmail-8.12.8/
Site mit folgendem Inhalt erstellen:
Unix/Linux/Open Source
APPENDDEF(‘conf_sendmail_ENVDEF’, ‘-DMILTER’)
define(‘confENVDEF’, ‘-DSM_CONF_SHM=0’)
Mittels rpm Befehl ein Sendmail Paket erstellen:
# cd usr/src/redhat/SPECS
# rpm –bb sendmail.spac
# pwd
# /usr/src/redhat/SPECS
# ls -al ../RPMS/i?86/sendmail-8.12.8-4.i?86.rpm
-rw-r—r— 1 root root 540096 Nov 6 10:11
../RPMS/i?86/sendmail-8.12.8-4.i?86.rpm
und auf dem System installieren:
# rpm –i sendmail-8.12.8-4.i?86.rpm
Die Konfiguration von Sendmail ist etwas umfangreicher und unter [4] gut beschrieben.
Spamass-Milter & SpamAssassin Installation und
Konfiguration
Paket Mail-SpamAssassin-2.60.tar.gz unter z. B. /tmp auspacken,
dann mit make kompilieren und (spätestens hier als root) mit make
install installieren:
#
#
#
#
cd /tmp/Mail-SpamAssassin-2.60
perl Makefile.PL
make
make install
Beim Spamass-Milter gibt es eine ähnliche Vorgehensweise,
allerdings wird hier mit einem configure Skript gearbeitet:
#
#
#
#
#
cd /tmp; tar xvfz spamass-milter-0.2.0.tar.gz
cd spamass-milter-0.2.0
./configure
make
make install
Zu der Konfiguration von SpamAssassin und Spamass-Milter ist
folgendes zu erwähnen:
•
•
Spamass-Milter benötigt keine zusätzliche Konfiguration.
SpamAssassin lässt sich durch Optionen (siehe Manpages zu
spamc und spamd) und die Datei user_prefs steuern.
Wenn es läuft,
ist es sehr wichtig, darauf zu achten, welche Optionen man dem
spamc Client mitgibt. Der Grund dafür ist, dass SpamAssassin
z. B. nicht unerhebliche Ressourcen des Hauptspeichers benötigt.
# perl spamstat.pl maillog
Dec-04 – Dec-09
04.12.2003
======================================
| Insgesamte Mails
= 723
| Spam Mails
= 143
| Ham Mails
= 580
| Spamanteil
= 19.77 %
======================================
05.12.2003
======================================
| Insgesamte Mails
= 987
| Spam Mails
= 248
| Ham Mails
= 739
| Spamanteil
= 25.12 %
======================================
06.12.2003
======================================
| Insgesamte Mails
= 442
| Spam Mails
= 234
| Ham Mails
= 208
| Spamanteil
= 52.94 %
!!! Samstag
======================================
07.12.2003
======================================
| Insgesamte Mails
= 485
| Spam Mails
= 216
| Ham Mails
= 269
| Spamanteil
= 44.53 %
!!! Sonntag
======================================
08.12.2003
======================================
| Insgesamte Mails
= 1954
| Spam Mails
= 207
| Ham Mails
= 1747
| Spamanteil
= 10.59 %
======================================
09.12.2003
======================================
| Insgesamte Mails
= 737
| Spam Mails
= 164
| Ham Mails
= 573
| Spamanteil
= 22.25 %
======================================
Abb. 2: Ausgabe eines Scripts zur Veranschaulichung des Anteils von Spam Mails an Mails
insgesamt.
Links
[1] ftp://ftp.uni-koeln.de/mirrors/redhat.com/redhat/linux/
[2] http://at.rpmfind.net/opsys/linux/RPM/spamass-milter.html
[3] http://www.spamassassin.org/downloads.html
[4] http://www.europe.redhat.com/documentation/rhl7/ref-guide-de/s1-sysadmin-sendmail.php3
19
Unix/Linux/Open Source
Mit der Option –s (maximum message size) beim spamc kann
man z. B. Mails mit großem Inhalt von dem Scanprozess ausschließen.
Um das Geschehen in der /var/log/maillog zu verfolgen, stellt
man am Anfang den Debug-Modus beim spamd ein. Die restlichen Parameter kann man zunächst beim Default (z. B. Stempel
***SPAM*** wird bei Default-Werten nur nach drei Sternen vergeben) belassen und in der Datei user_prefs nach und nach anpassen.
Bei sauberem Starten von sendmail, spamass-milter und
spamd sind folgende Dämonprozesse zu finden:
Statistiken rechtfertigen den Einsatz
Um das Geschehen und die Effizienz etwas
überschaubarer zu gestalten, haben wir ein
Skript entwickelt, das relevante Zahlen über
den Tagesablauf liefert. Hier wird sehr schnell
deutlich, dass SPAM-Mails durchaus einen
großen Anteil an der Gesamtmenge an E-Mails
haben. An Wochenenden, wo der „normale“
Mailverkehr etwas ruht, wird der SPAM Anteil
prozentual deutlich sichtbar (siehe Skriptausgabe in Abbildung 2).
Wo ist der Haken?
# ps -e | grep sendmail | grep -v grep
27667 ? 00:04:58 sendmail
# ps -e | grep spam | grep -v grep
13773 ? 00:00:53 spamass-milter
27772 ? 00:00:31 spamd
Start/Stop Skripte sind in den Sourcen mitgeliefert, müssen aber
je nach Betriebssystem angepasst werden. Wichtig zu erwähnen:
die Optionen für den spamc (Client) sind in dem Start/Stop Skript
für spamass-milter definiert.
Der höhere Bedarf an Rechenleistung und
Hauptspeicher beim Scannen einer E-Mail ist
zwar ein Nachteil, aber immer noch kostengünstiger als menschliche Arbeitszeit, die investiert wird, um sich von unerwünschten Informationen zu befreien.
Alexander Hochhalter ([email protected]).
Impressum
Herausgeber:
ORDIX AG
Aktiengesellschaft für
Softwareentwicklung, Beratung,
Schulung und Systemintegration,
Paderborn
Redaktion:
Helma Jenniches
V.i.S.d.P.:
Wolfgang Kögler
Anschrift der Redaktion:
Westernmauer 12 - 16
D-33098 Paderborn
Tel.: 0 52 51 / 10 63 - 0
Fax: 0 180 / 1 ORDIX 0
oder: 0 180 / 1 67349 0
Gestaltung/Layout:
Sascia Brinkmann
Druck:
Druckerei Reike GmbH,
Paderborn
20
Autoren dieser Ausgabe:
Christof Amelunxen, Theo Antony,
Stefanie Heither, Michael Heß,
Alexander Hochhalter, Helma Jenniches, Dr. Stefan Koch, Wolfgang
Kögler, Lars Hendrik Korte, Andreas Kother, Michael Lindermann,
Roger Niemeyer, Uwe Rübesamen, Guido Saxler, Jens Stahl
Copyright:
ORDIX AG. Alle Rechte vorbehalten. Die Zeitschrift ORDIX News hat
eine Auflage von 7.900 Exemplaren. Sie wird von der ORDIX AG an
ausgesuchte Kunden verteilt und kann für 2,20 Euro bei uns bestellt
werden.
Außerdem finden Sie sowohl die neueste Ausgabe als auch ältere Ausgaben im Archiv der ORDIX News im Internet unter: http://www.ordix.de.
Schauen Sie mal rein!
Der Kontakt zu unseren Lesern ist uns sehr wichtig. Für Anregungen,
Kritik und Anmerkungen zu den Themen, aber auch für interessante
Ideen sind wir immer offen und dankbar. Sie erreichen die Redaktion
auch per E-Mail unter [email protected]
Wir freuen uns auf Ihr Feedback.
Aktuell
Chess Classic Mainz 2004:
ORDIX Open gehen
in die 11. Runde!
Nach dem 10-jährigen Jubiläum der ORDIX Open im vergangenen Jahr folgt vom 4. - 8. August 2004 nun die 11. Runde
im Rahmen der „Chess Classic“ in der Rheingoldhalle, Mainz. Es gibt Plätze zu gewinnen!
Schon jetzt ist die Schachgemeinde wieder
gespannt, wie Hans-Walter Schmitt, Organisator der Veranstaltung, sein Ziel „Immer besser als im Jahr zuvor“ in die Tat umsetzt und
macht uns damit neugierig auf das Programm:
Das Duell der Weltmeister
„Raffinierte, logisch exakt
durchdachte Schachzüge,
konzentrierte Spannung
am Brett, brilliante Strategien, ein Hauch von Perfektion“ zwischen den Besten der Besten:
Viswanathan Anand (Weltmeister 2000-2002, ELO
2774) gegen Alexei Schirow (Vize-Weltmeister 2000/2002, ELO 2713). Wer kann wem Paroli bieten und behält am Ende den kühleren
Kopf?
Die Teilnehmer und Interessierten erwartet in
8 Partien Schnellschach bei 25 Minuten pro
Partie und 10 Sekunden pro Zug ein spannendes Match, bei dem es sich lohnt, live dabei zu
sein!
Das Finale der Chess960
Weltmeisterschaft
Die in 2003 erstmalig ausgetragene WM des
Chess960 wird in diesem Jahr zum zweiten
Mal veranstaltet. Die Rivalen sind Peter Swidler, Chess960 Weltmeister 2003, und Levon
Aronian, der Gewinner des Qualifikations-Open
2003.
Bevor die Partie anfängt, wird eine der 960
möglichen Grundstellungen ausgelost. In dieser Schach-Variante, die auf den legendären
amerikanischen Schachweltmeister Robert
James (Bobby) Fischer zurückgeht, sind die
Mainzer Veranstalter in der Präsentation führend.
ORDIX Open
Nachdem sich in 2003 der 19-jährige Alexander Grischuk erfolgreich gegen seine rund 500 Gegner durchsetzte, können wir uns
dieses Jahr auf mindestens ebenso viele Teilnehmer freuen. Das
weltweit am höchsten dotierte Schnellschach-Open bietet wieder
ein hohes Aufgebot an mehreren Dutzend Groß- und Internationalen Meistern. Ein Preisfond von
35.000 Euro erwartet die Open Gewinner - ein toller Anreiz zum Mitmachen!
Die Simultans
Würden Sie die Nerven behalten, wenn
Sie es gleich mit 40 Gegnern aufnehmen müssten? Peter Swidler und Alexei
Schirow werden sich dieser haarsträubenden Herausforderung stellen. Wie
Sie einer der 40 Gegenspieler werden, lesen Sie unten.
Gewinnspiel
Sie möchten gerne gegen die „ganz Großen“ spielen und mit von
der Partie sein bei diesem bedeutsamen Schacherlebnis? Dann
nehmen Sie an unserem Gewinnspiel teil.
Wir verlosen unter den ersten 50 Einsendern 2 Plätze für das
ORDIX Open (7./8.8.2004) sowie je einen Platz im Simultan
gegen Peter Swidler bzw. gegen Alexei Schirow (beide Simultan-Partien finden am Mittwoch, den 4.8.2004 statt).
Schreiben Sie bis zum 20.07.2004 Ihren Teilnahmewunsch unter dem Stichwort „Chess Classic 2004“ an:
ORDIX AG,
Westernmauer 12-16,
33098 Paderborn oder
per E-Mail an [email protected]
Der Rechtsweg sowie die Teilnahme von ORDIX Mitarbeitern sind
ausgeschlossen.
Weitere Informationen zu den Chess Classic 2004 in Mainz finden Sie im Internet unter http://www.chesstigers.de/.
Stefanie Heither ([email protected]).
21
Aktuell
„Es gibt nichts Gutes, außer man tut es.“
(Erich Kästner)
Golfen und Gutes tun:
1. ORDIX Benefiz Golf Open
am 25./26. September 2004
Die ORDIX AG lädt alle Golfsport-Freunde und Interessierten ganz herzlich zur
Premiere des ORDIX Golf Open ein. Am Samstag, den 25.09.04 startet das zweitägige Benefiz Golf Open im „Senne Golfclub Gut Welschof“ in Ostwestfalen.
Sonst Dienstleister für Ihre IT Projekte, möchte ORDIX diesmal an
ganz anderer Stelle helfen. Unsere Aktion „Golfen und Gutes tun“
greift den zwei nebenstehenden Kinderprojekten unter die Arme.
Leisten Sie durch Ihre Teilnahme an diesem Turnier einen entscheidenden Beitrag für die notleidenden Kinder. Denn u. a. gehen auch Ihre Teilnahmegebühren vollständig als Spendengelder
an diese Hilfsprojekte.
Motivationstipp
Besonders stolz sind wir darauf, dass es uns
gelungen ist, den Schauspieler und Prominenten Charles M. Huber (u. a. bekannt aus
der TV-Serie „Der Alte“) als Schirmherrn für
dieses Benefiz-Turnier zu gewinnen. Huber engagiert sich persönlich sehr stark für
Entwicklungs- und Förderprojekte für Kinder in Afrika. Darüber hinaus ist er als UNBerater für die „Food and Agriculture Organization of the United Nations“ (FAO), einer
Organisation zur Hungerbekämpfung in Entwicklungsländern, tätig.
Die Spendenprojekte
1. Die Kinder im Senegal
Projekt „Care1“: Dieses Projekt fördert die Ausbildung bei Kindern, deren Familienoberhaupt
(Vater oder Mutter) während der Flutkatastrophe
zu Tode gekommen ist oder deren Familien obdachlos geworden sind. Die Unterstützung der
Kinder beinhaltet u. a. ihre Verpflegung, sprachliche Ausbildung und eine Ausbildung am Computer. Besonderer Wert wird darauf gelegt, dass
die Kinder ihre Stammessprache pflegen und
ihre spezielle Kultur gefördert wird. Bitte informieren Sie sich unter
www.afrika-direkt.de/projekte.htm
2. Westfälisches Kinderdorf e. V.
(IPWL, Schlangen)
Als Berater zweier Ministerien sammelte er zahlreiche Erfahrungen. Diese kommen nun seit mehreren Jahren dem wohltätigen
Verein „AFRIKA DIREKT e. V.“ zugute, in dem sich Huber intensiv
für Hilfsprojekte im Senegal engagiert.
Das Kinderprojekt „Neuer Lebensmittelpunkt“ ist
eine „Integrativ-Pädagogische Wohn- und Lebensgemeinschaft“ (IPWL). Sie bietet Kindern
und Jugendlichen dauerhaft ein neues Zuhause
und damit erstmals wieder eine neue Lebensperspektive. Diese Kinder haben aufgrund ihrer
Vorerfahrungen schwere seelische Störungen erlitten. Sie können bzw. dürfen deshalb nicht mehr
bei ihren Eltern leben. Bitte informieren Sie sich
unter www.wekido.de
Was können Sie noch tun?
Und was können Sie
tun?
Buchtipp
In seinem Buch „Ein Nie-
Im Rahmen einer Amerikanischen Versteigerung werden zugunsten der Kinderprojekte von Prominenten handsigniertes,
hochwertiges Golfequipment, Musical- und
Museumskarten u. v. m. versteigert.
Spielen Sie Auge in
derbayer im Senegal“ beAuge mit unserem Prorichtet Charles M. Huber
minenten und Sie tun
über Erfahrungen in Deutschgleichzeitig Gutes daland und im Senegal, von
Sie möchten an dem Turnier teilnehmen
bei! Egal ob Golf-Könder Suche nach seinem Vater und von den Problemen,
oder wünschen weitere Infos? Dann senner oder Nicht-Könner,
„zwischen den Welten seiden Sie Ihr Anliegen einfach per E-Mail an
das Programm bietet
nen Platz zu finden“.
[email protected]
für jedes Leistungsspektrum etwas PasEine Agenda, die Spielbedingungen, Übersendes. Nehmen Sie an dem spaßwirksamen Benefiz-Turnier teil
nachtungsmöglichkeiten etc. finden Sie unoder schnuppern Sie bei einem Putting- und Kurzplatzturnier einter http://www.ordix.de/golfopen/ und einen
mal in den beliebten Sport hinein.
ersten Eindruck von der Golfanlage direkt
unter http://www.sennegolfclub.de
Es winken attraktive Sachpreise als Belohnung (Notebooks, Digitalkameras, Flatscreens, Handys und vieles mehr). Bei einem „Hole
Wir freuen uns auf Sie!
in One“ an der Gänse 13 gewinnen Sie sogar ein Top Multimedia
Die Redaktion
Notebook.
22
3. ORDIX Fachtreff: Diesmal in Zusammenarbeit mit unserem
Kooperationspartner Oracle
Aktuell
Mit f
r
e
u
n
Unte
rstüt dlicher
zung
von
Oracle 10g
Sie planen den Einsatz von Oracle 10g und wollen sich vorab einen guten Überblick über das Potenzial und
die Leistungsmöglichkeiten von Oracle 10g verschaffen? Sie suchen nach guten Alternativen zu ihren bisherigen Lösungen im DB-Bereich? Dann laden wir Sie herzlich zu unseren Fachtreffs ein.
Highlights, Erfahrungen aus der Praxis,
Migration und Einstiegspaket
Beginn: jeweils 15:00 Uhr
Dauer: ca. 3 Stunden
1. Termin: Dienstag, 14.09.2004
Ort: ORDIX AG
Kreuzberger Ring 13
D-65205 Wiesbaden
2. Termin: Dienstag, 21.09.2004
Ort: Oracle Deutschland GmbH
Hamborner Straße 51
D-40472 Düsseldorf
Der erste Vortrag eröffnet Ihnen, wie Sie durch
den Einsatz von Oracle 10g die gesamte ITInfrastruktur vom Storage bis hin zur Anwendung vereinfachen und konsolidieren können,
um somit Kosten bei Anschaffung und Betrieb
zu sparen.
Der zweite Vortrag ist ein Projekt-Bericht und
behandelt erste Erfahrungen und Highlights,
die mit 10g in der Praxis gemacht wurden. Detailliert gehen wir auf die Migration ein. Außerdem beleuchten wir intensiv einige Features,
die sich als besonders effizient erwiesen haben.
„Oracle – Infrastrukturbasis für Klein- und Mittelständische Unternehmen“
Referent: Matthias Weiss, Senior Principal Sales Consultant,
Oracle Deutschland GmbH, München
„Migration, Highlights und erste Erfahrungen mit Oracle
10g aus der Praxis“
Referent: Klaus Reimers, Bereichsleiter Beratung und
Entwicklung, ORDIX AG, Köln
Vorstellung und Einsatzmöglichkeiten des ORDIX Einstiegspakets in 10g: „Oracle 10g ready-to-run for Linux“
Fragen und Diskussionsrunde
einfachen und preislich sehr attraktiven Weg, wie sie mit Oracle
10g ohne Risiken erste Erfahrungen sammeln können.
Die Vorträge richten sich an alle, die in naher oder auch weiterer
Zukunft Oracle 10g einsetzen oder darauf migrieren wollen.
Lassen Sie sich diese Vorträge inklusive Sonder-Einstiegspaket
nicht entgehen. Wir freuen uns auf Ihren Besuch und einen sicherlich interessanten Nachmittag. Für das leibliche Wohl ist gesorgt.
Ihr ORDIX Team
Daran anschließend stellen wir Ihnen unser
Einstiegspaket „Oracle 10g ready-to-run for
Linux“ vor – eine Sonderaktion exklusiv für
die Teilnehmer dieser Veranstaltung. Damit
zeigen wir interessierten Teilnehmern einen
Ihre Anmeldung
Die Teilnahme ist kostenlos. Bitte haben Sie Verständnis, dass wir nur eine begrenzte Anzahl von
Anmeldungen entgegennehmen können. Versäumen Sie deshalb nicht, sich rechtzeitig anzumelden.
Anmeldeschluss: 30. August 2004.
Karl-Heinz Künneke
Michael Fey
Anmeldungen an:
• E-Mail: [email protected]
• Post: ORDIX AG, Westernmauer 12-16, 33098 Paderborn
• zentrales Fax: 0 180 / 1 ORDIX 0
oder: 0 180 / 1 67349 0 mit dem Betreff „Oracle 10g“
• online: http://www.ordix.de/oracle10g/
Die aktuelle Agenda finden Sie unter www.ordix.de/oracle10g. Programmänderungen behalten wir uns vor. Der Rechtsweg ist ausgeschlossen.
23
Datenbanken
Oracle SQL
Oracle SQL für Experten
Oracle Datenbankprogrammierung mit PL/SQL
Oracle Datenbankadministration Grundlagen
Oracle Datenbankadministration Aufbau
Oracle Administration für Informix Umsteiger
Oracle Backup und Recovery
Oracle Tuning und Monitoring
Oracle Troubleshooting
Oracle Real Applikation Cluster (RAC)
Oracle 9i Neuheiten
Oracle 10g Neuheiten
Oracle Net
Informix SQL
Informix Dynamic Server Administration
Informix Tuning und Monitoring
Informix Backup und Recovery mit ON-Bar
Informix Dynamic Server 9.4 Neuheiten
1.790,00
1.190,00
1.790,00
1.890,00
1.890,00
1.890,00
1.890,00
1.890,00
1.890,00
1.190,00
1.890,00
1.890,00
790,00
1.790,00
1.790,00
1.090,00
1.090,00
790,00
IBM DB2 UDB für Unix/Windows SQL Grundlagen
1.790,00
IBM DB2 UDB für Unix/Windows Administration Grundlagen
1.890,00
Microsoft SQL Server 2000 Administration
Objektorientierung
J2EE für Entscheider
Einführung in die objektorientierte Programmierung
Entwurfsmuster
Programmierung
Java Programmierung Grundlagen
Java GUI Entwicklung mit Swing
Java Programmierung Aufbau
JSP und Servlet Programmierung
Webprogrammierung mit J2EE und WebSphere
Einführung in die EJB-Entwicklung mit WebSphere
Softwareentwicklung mit Java und Eclipse
C# Programmierung
Perl Programmierung Grundlagen
Perl Programmierung Aufbau
Einführung in XML
XML Programmierung unter Java mit DOM und SAX
1.790,00
Praktischer Einsatz von XSL-Techniken
Oracle und XML
Einführung in Oracle Forms Developer
Einführung in Oracle Reports Developer
Shell, Awk und Sed
Internet und Intranet
Web-Design mit HTML
1.190,00
790,00
1.790,00
1.790,00
1.590,00
Web-Design mit JavaScript
Web-Design mit PHP
Apache Web-Server Installation und Administration
Webservices und SOAP
Tomcat Konfiguration und Administration
WebSphere Application Server Installation und Administration
System Management
1.290,00
1.490,00
1.090,00
1.090,00
1.090,00
1.290,00
PATROL Basics
PATROL Customizing and Development
PATROL Advanced
PATROL for Oracle
PATROL Central
Big Sister Monitoring - Administration und Konfiguration
Betriebssysteme
1.890,00
1.490,00
1.890,00
790,00
1.190,00
790,00
Unix/Linux Grundlagen für Einsteiger
Linux Systemadministration
1.590,00
1.590,00
HP-UX-, Solaris-, Linux-, AIX-Systemadministration
Linux Hochverfügbarkeits-Cluster
1.890,00
1.390,00
Solaris Systemadministration Grundlagen
Solaris Systemadministration Aufbau
Solaris für Unix Umsteiger
Samba Administration und Konfiguration
Netzwerke
Linux Netzwerkadministration
Security
Unix/Linux Security im Internet
Microsoft
1.890,00
1.890,00
1.890,00
1.090,00
Windows 2000/XP Grundlagen für Einsteiger
1.790,00
Windows 2000 Active Directory Grundlagen
1.790,00
Windows 2000 Active Directory Aufbau
1.790,00
Windows Enterprise Server 2003
1.090,00
Microsoft Exchange 2000 Administration Grundlagen
Projektmanagement
1.790,00
IT-Projektmanagement
1.890,00
Grundlagen des IT-Controlling
1.190,00
Seminarorte:
Wiesbaden
Nürnberg
Saarbrücken
Lippstadt
KW 40
KW 39
KW 38
KW 37
KW 36
September
KW 35
KW 34
KW 33
KW 32
KW 31
August
KW 30
Juli
KW 29
Preis in
Euro*)**)
- herausnehmbare Übersicht KW 28
Seminartermine
Aus- & Weiterbildung
450,00
1.090,00
1.190,00
1.590,00
1.590,00
1.590,00
1.090,00
1.090,00
1.090,00
1.090,00
1.590,00
1.590,00
1.590,00
1.090,00
790,00
1.490,00
1.590,00
1.590,00
*) Preise pro Seminar pro Teilnehmer in Euro.
**) Inhousepreise auf Anfrage. Alle Preise gelten zzgl. ges. MwSt.
Für weitere Informationen stehen wir jederzeit gerne zur Verfügung und senden Ihnen auf Wunsch unser komplettes Seminarprogramm zu.
24
Alle Seminarinhalte und aktuellen
Termine finden Sie jederzeit im Internet
unter http://training.ordix.de
KW 53
KW 52
KW 51
KW 50
KW 49
Dezember
KW 48
KW 47
KW 46
KW 45
November
KW 44
KW 43
KW 42
KW 41
Oktober
Aus-- &
Weiterbildung
Juli
Dezember
2004
Preis in
Euro*)**)
1.790,00
1.190,00
1.790,00
1.890,00
1.890,00
1.890,00
1.890,00
1.890,00
1.890,00
1.190,00
1.890,00
1.890,00
790,00
1.790,00
1.790,00
1.090,00
1.090,00
790,00
Datenbanken
Oracle SQL
Oracle SQL für Experten
Oracle Datenbankprogrammierung mit PL/SQL
Oracle Datenbankadministration Grundlagen
Oracle Datenbankadministration Aufbau
Oracle Administration für Informix Umsteiger
Oracle Backup und Recovery
Oracle Tuning und Monitoring
Oracle Troubleshooting
Oracle Real Applikation Cluster (RAC)
Oracle 9i Neuheiten
Oracle 10g Neuheiten
Oracle Net
Informix SQL
Informix Dynamic Server Administration
Informix Tuning und Monitoring
Informix Backup und Recovery mit ON-Bar
Informix Dynamic Server 9.4 Neuheiten
1.790,00
IBM DB2 UDB für Unix/Windows SQL Grundlagen
1.890,00
IBM DB2 UDB für Unix/Windows Administration Grundlagen
1.790,00
Microsoft SQL Server 2000 Administration
Objektorientierung
J2EE für Entscheider
Einführung in die objektorientierte Programmierung
Entwurfsmuster
Programmierung
Java Programmierung Grundlagen
Java GUI Entwicklung mit Swing
Java Programmierung Aufbau
JSP und Servlet Programmierung
Webprogrammierung mit J2EE und WebSphere
Einführung in die EJB-Entwicklung mit WebSphere
Softwareentwicklung mit Java und Eclipse
C# Programmierung
Perl Programmierung Grundlagen
Perl Programmierung Aufbau
Einführung in XML
XML Programmierung unter Java mit DOM und SAX
450,00
1.090,00
1.190,00
1.590,00
1.590,00
1.590,00
1.090,00
1.090,00
1.090,00
1.090,00
1.590,00
1.590,00
1.590,00
1.090,00
790,00
1.190,00
790,00
1.790,00
1.790,00
1.590,00
1.490,00
1.290,00
1.490,00
1.090,00
1.090,00
1.090,00
1.290,00
Web-Design mit JavaScript
Web-Design mit PHP
Apache Web-Server Installation und Administration
Webservices und SOAP
Tomcat Konfiguration und Administration
WebSphere Application Server Installation und Administration
System Management
1.890,00
1.490,00
1.890,00
790,00
1.190,00
790,00
PATROL Basics
PATROL Customizing and Development
PATROL Advanced
PATROL for Oracle
PATROL Central
Big Sister Monitoring - Administration und Konfiguration
Betriebssysteme
1.590,00
1.590,00
Unix/Linux Grundlagen für Einsteiger
Linux Systemadministration
1.890,00
1.390,00
HP-UX-, Solaris-, Linux-, AIX-Systemadministration
Linux Hochverfügbarkeits-Cluster
1.890,00
1.890,00
1.890,00
1.090,00
Solaris Systemadministration Grundlagen
Solaris Systemadministration Aufbau
Solaris für Unix Umsteiger
Samba Administration und Konfiguration
Netzwerke
Linux Netzwerkadministration
Security
Unix/Linux Security im Internet
Microsoft
1.590,00
1.590,00
Anmeldungen an: ORDIX AG
Westernmauer 12-16 Kreuzberger Ring 13
D-33098 Paderborn D-65205 Wiesbaden
Tel.: +49 (0) 52 51 / 10 63 - 0 Tel.: +49 (0) 6 11 / 7 78 40 - 00
zentrales Fax: +49 (0) 180 / 1 ORDIX 0 oder: +49 (0) 180 / 1 67349 0
Praktischer Einsatz von XSL-Techniken
Oracle und XML
Einführung in Oracle Forms Developer
Einführung in Oracle Reports Developer
Shell, Awk und Sed
Internet und Intranet
Web-Design mit HTML
1.790,00
Windows 2000/XP Grundlagen für Einsteiger
1.790,00
Windows 2000 Active Directory Grundlagen
1.790,00
Windows 2000 Active Directory Aufbau
1.090,00
Windows Enterprise Server 2003
1.790,00
Microsoft Exchange 2000 Administration Grundlagen
Projektmanagement
1.890,00
IT-Projektmanagement
1.190,00
Grundlagen des IT-Controlling
Informationen und Online-Anmeldung
unter http://training.ordix.de.
E-Mail: [email protected]
Einige der hier aufgeführten Bezeichnungen sind eingetragene
Warenzeichen ihrer jeweiligen Inhaber. Irrtümer vorbehalten.
25
Aktuell
Boot-Spiegel
mit DiskSuite
Larry Ratlos:
Hochverfügbarkeit mit Solaris?
Larry hat viel Geld gespart
Für die neuen Datenbankserver kam er
ganz ohne weitere Softwarelizenzen aus. Die
Lizenzen für das DBMS konnte er vom Altsystem
übernehmen. Den Abteilungsleiter überzeugte er
davon, dass die Einrichtung eines Clusters nicht erforderlich ist. Und die Hochverfügbarkeit der Festplatten realisierte er mit der in Solaris enthaltenen Software
„DiskSuite“.
Innerhalb weniger Tage war die Einrichtung ausgeführt - Dank
docs.sun.com und mit Hilfe von dict.leo.org (für die Übersetzung): Die Datenplatten sind nun gestriped und gespiegelt,
die Systemplatten sind durch einen Spiegel ausfallsicher.
Und das war gut so.
Nach wenigen Wochen zeigte sich, dass die erste RootPlatte tatsächlich ausgefallen war. Der Betrieb konnte aber trotzdem
störungsfrei fortgesetzt werden :-)).
Nun ist es Freitag, 22:00 Uhr. Bis Montag um 6:00 Uhr hat Larry
Zeit, die defekte Platte auszutauschen.
Frohen Mutes hat er das Betriebssystem heruntergefahren, die defekte Platte ausgetauscht.
Doch dann ...
Der Boot-Prozess wird abgebrochen – so ein
Mist! Dabei ist das System doch die ganze Zeit
mit dem zweiten Teilspiegel gelaufen! Sollte die
Platte nun auch defekt sein?
Larry überprüft mit Hilfe der Installations-CD die
zweite Root-Platte. Sie ist in Ordnung. Nun ist
Larry ratlos. Wie bringt er das System dazu,
von dieser Platte zu booten? Was hatte er nur
beim Root-Spiegel falsch gemacht?
Helfen Sie Larry!
Senden Sie Ihren Lösungsvorschlag bis
zum 20.07.2004 an [email protected] Larry
wird sich wie immer mit einer kleinen Aufmerksamkeit bei seinen Helfern bedanken und einige der eingesendeten Lösungen veröffentlichen.
Lösung des Problems der „GROSS- und kleinschreibung“ aus der ORDIX News 1/2004
Folgendes Kommando hätte Larry die Blamage vor seinem Chef in letzter Sekunde erspart:
perl -00pi -e ‘s!(<a\s*href=[^>]*>)!lc($1)!gsie;rename $ARGV,lc($ARGV)’*
Was passiert hier?
Der Stern (*) am Ende des Kommandos sorgt dafür, dass unser
Programm eine Liste der Dateien im aktuellen Verzeichnis als
Parameter übergeben bekommt. Die Option „-p“ wiederum besagt, dass jeder dieser Parameter eine Datei darstellt und erzeugt implizit eine Schleife der folgenden Art um das komplette
Programm:
foreach $ARGV (@ARGV) {
open(FILEHANDLE,$ARGV);
while(<FILEHANDLE>) {
# Programmcode
print;
}
close(FILEHANDLE);
}
1. Alle HTML-Links werden mit dem Substitute-Kommando in Kleinschreibung umgewandelt:
s!(<a\s*href=[^>]*>)!lc($1)!gsie;
Die vier Schalter (gsie) bewirken folgendes:
g: *Alle* Vorkommnisse des Suchmusters
werden ersetzt
s: Zeilenumbrüche im zu durchsuchenden
String werden ignoriert
i: Groß-/Kleinschreibung wird ignoriert
e: Die Ersetzung ist keine Zeichenkette,
sondern die Ausgabe eines Kommandos
2. Der Dateiname wird ebenfalls in Kleinschreibung gesetzt:
rename $ARGV, lc($ARGV);
Die Option „-i“ sorgt nun dafür, dass der Inhalt der Dateien nicht
an die Standardausgabe übergeben wird, sondern die gerade
bearbeitete Datei „on-the-fly“ editiert wird.
Der eigentliche Programmcode folgt nach dem Schalter „-e“ und
besteht aus zwei Anweisungen:
26
Zu guter Letzt bewirkt der Schalter „-00“, dass
Dateien nicht zeilenweise eingelesen werden, sondern „in einem Rutsch“. Das ist notwendig, falls sich die Links über mehrere Zeilen erstrecken.
Aktuell
Lösungen der Leser:
1. Albrecht Bischoff:
Die Lösung von Herrn Bischoff geht in die gleiche Richtung. Diese Variante funktioniert sogar auch dann noch, falls
sich im fraglichen Verzeichnis neben den HTML-Seiten noch weitere Dateien befinden (Bilder, etc.). Zu beachten ist
lediglich, dass mit dem regulären Ausdruck „\w+.html?“ auch Textstellen geändert werden, bei denen es sich nicht
notwendigerweise um Links handeln muss.
perl -pi -e ‘s!\w+.html?!lc($&)!gie;rename $ARGV, lc($ARGV)’ *.[Hh][Tt][Mm][Ll] *.[Hh][Tt][Mm]
2. Andreas Mayer:
Einen komplett anderen Ansatz verfolgt Herr Mayer mit seiner Lösung. Hier werden nicht einfach alle Links und
Dateinamen klein- oder großgeschrieben sondern die Links an die existierenden Dateinamen angepasst:
a=‘ls|egrep -i “*.html“‘;for i in $a;do perl -pi -e ‘s/’$i’/’$i’/gi’ $a; done
Lediglich der reguläre Ausdruck ist nicht ganz korrekt, sondern sollte lauten: „\.html?$“. Andernfalls würden auch
Dateien wie „meinhtmlbild.jpg“ bearbeitet.
Unter der Voraussetzung, dass sich in dem Verzeichnis ausschließlich HTML Seiten befinden, lässt sich diese
Lösung sogar auf 50 Zeichen reduzieren:
for i in ‘ls‘; do perl -pi -e s/$i/$i/i ‘ls‘; done
Allerdings ist zu beachten, dass bei dieser Variante sehr häufig Dateien geöffnet und geschlossen werden (n2 Zugriffe) und auch der Perl-Interpreter bei jedem Schleifendurchlauf neu gestartet werden muss. Bei 100 zu bearbeitenden HTML Seiten ist die zuerst genannte Lösung bereits mehr als 100 mal so schnell ... und die Geschwindigkeit war
es ja, die zählt! ;-)
Sponsoring Behindertensportreiten
!"#$%&'()*+,
Weitere Unterstützung für Frau Brenner
Seit 4 Jahren unterstützt ORDIX inzwischen die erfolgreiche Behindertenreiterin Hannelore Brenner. In vielen Berichten der ORDIX News konnten wir über die zahlreichen Erfolge der engagierten Sportlerin berichten. Deutsche Meisterin, Europameisterin, Platzierungen bei der Weltmeisterschaft. Sie hat nicht nur
vor vielen Richtern und Juries ihr Können bewiesen, sondern auch ORDIX auf
ganzer Linie überzeugt.
Deshalb hat ORDIX den auslaufenden Sponsoringvertrag jetzt um drei weitere
Jahre verlängert. Mit dieser Unterstützung möchte ORDIX der Erfolgsreiterin auch
für die Zukunft den Weg ebnen. Ihr aktuelles Ziel sind die Paralympics – die Olympischen Spiele für Behinderte – die vom 17. - 28. September in Athen stattfinden.
Zur Vorbereitung auf Athen startete Frau Brenner im Mai bereits auf dem ersten
internationalen Reitturnier für körperbehinderte Reiter in Deutschland, dem „Maimarktturnier“ in Mannheim. Dort erkämpften sie und acht weitere Behindertensportreiter die Qualifikation für die Paralympics. Darüber hinaus wird sie vom 5. 8. August auf dem internationalen Dressurfestival in Lingen ihren Titel als Deutsche Meisterin verteidigen.
ORDIX wünscht Frau Brenner viel Glück und Erfolg für die anstehenden Herausforderungen!
27
Java/XML
Kurz betrachtet:
IBM Websphere Application Server
Wer einen Application Server sucht, kann mittlerweile aus vielen Möglichkeiten wählen. Eine kurze Betrachtung von IBM Websphere Application Server (WSAS) soll einige hervorstechende Merkmale aufzeigen und als
Entscheidungshilfe dienen. In diesem Artikel sprechen wir über die Network Deployment Version des WSAS.
Die Adminstrationsoberfläche
Der WSAS bringt eine browsergestützte Oberfläche mit. Diese bietet
Zugriff auf alle Komponenten und deren Einstellung. Der Administrator einer Webspherefarm hat somit einen zentralen Anlaufpunkt und
findet alles unter einem Dach wieder (siehe Abbildung 1).
Abb. 1: Die Administrationsoberfläche bietet Zugriff auf ganze Serverfarmen.
oder tägliche Aufgaben effizient und ohne ständigen Zugriff auf ein GUI zu erledigen.
Der Ressourcenhunger
Unter [1] findet man die Hardwareanforderungen des WSAS. Diese sollte man, besonders
was den Hauptspeicher angeht (256 MB empfohlen), respektieren bzw. an dieser Stelle besser sogar mehr Speicher als gewünscht „spendieren“.
Kleines Beispiel: Der Hauptspeicherbedarf belief sich auf einem Win2K Testsystem mit der
Network Deployment Version, einem Application Server und lediglich einer Test-JSP bereits
auf ca. 400 MB. Das gleiche Setup, jedoch als
Cluster mit zwei Application Servern sorgte
dann für einen Bedarf von ca. 750 - 800 MB.
Hintergrund dieses Ressourcenhungers ist die
Architektur des WSAS, die wir uns im nächsten Abschnitt ansehen.
Die Architektur
Von der Definition von Datasources bis zum Deployment von Enterprise Applications ist alles innerhalb der Oberfläche möglich.
Auch wenn die Oberfläche durch die vielen Möglichkeiten zunächst
etwas unübersichtlich erscheint, ist sie nach einer kurzen Eingewöhnungsphase sehr gut zu bedienen.
Aus Sicht des WSAS entspricht eine Hardwareplattform jeweils einer Node. Nodes können mehrere Application Server enthalten (siehe Beispiel in Abbildung 2).
Neben dieser Oberfläche bietet das Kommandozeilenprogramm
wsadmin die Möglichkeit, auch Skripte zu erstellen, um Monitoring
Auf einer Maschine läuft zusätzlich noch der
Deployment Manager, der die Verwaltung der
Nodes übernimmt.
Für die Kommunikation läuft auf jeder Node
ein Node Agent. Dessen Aufgabe ist es, die
vom Deployment Manager kommunizierten
Einstellungen auf den Nodes umzusetzen. Der
oben erwähnte Ressourcenhunger ergibt sich
nun aus der Tatsache, dass alle Komponenten jeweils in einer eigenen JVM laufen. Eine
Node mit zwei Application Servern und einem
Nodeagent benötigt also bereits drei JVMs.
Die Sessions
Abb. 2: Aufbau eines WSAS Clusters mit zwei Nodes.
28
Oftmals bereiten Sessioninformationen in geclusterten Webanwendungen Probleme. Die
Java/XML
Sessions werden in einer bestimmten JVM erzeugt, und stehen nur dort zur Verfügung.
Mit Hilfe von Cookies oder SSL-Session-Tracking wird dann sichergestellt, dass die eingehenden Anfragen immer zur passenden JVM
gelangen. Problematisch wird es aber, wenn
nun eine Maschine ausfällt. Da die zugeordneten Sessions nur auf diesem Knoten vorlagen, sind diese unwiederbringlich verloren.
WSAS bietet für dieses Problem das Konzept
der Sessionreplikation. Hierbei werden die
Sessioninformationen in eine Datenbank geschrieben und sind somit unabhängig von der
jeweiligen JVM. Es können also alle Instanzen
alle Clients wahlfrei bedienen und ein Ausfall
einer Maschine bleibt für den User transparent.
Link
[1] http://www-306.ibm.com/software/webservers/
appserv/doc/v50/prereqs/hardware51.htm#ndm
Resümee
Websphere bietet für den Administrator einer großen Umgebung
viele Vereinfachungen, allem voran die Administrationsoberfläche
sowie die Möglichkeit zur zentralen Steuerung einer ganzen Farm
von Maschinen. Falls nötig vereinfacht die Sessionreplikation den
Aufbau der Infrastruktur sowie die Konfiguration vorgeschalteter
Loadbalancer. Wer für diese Features Verwendung (und die nötige Hardware zur Verfügung) hat, sollte Websphere durchaus in
die engere Wahl ziehen.
Michael Heß ([email protected]).
Seminarvorstellung: J2EE für Entscheider
Der Kurs gibt einen guten Überblick über die
Java Enterprise Basiskonzepte. Er erläutert
die Technologien und Architekturen der Java
2 Enterprise Edition (J2EE). Weiterhin werden Vor- und Nachteile sowie die Bedeutung
und Gründe für den Einsatz der Technologien
im Unternehmen behandelt.
Seminarinhalte
•
Überblick: J2EE Einführung und Zielsetzung, J2EE Architektur, Architektur für Web-Anwendungen, J2EE-Übersicht, J2EEDienste, Entwicklungsmethodiken unter J2EE
•
Das EJB/J2EE Komponentenmodell: Session und Entity
Beans, Stateless und Statefull Session Beans, Container
Managed Persistence (CMP), Bean Managed Persistence
(BMP), Messaging Services (JMS)
•
J2EE/EJB Transaktionsmanagement: Hintergrund. Warum
und wie verwendet man Transaktionen?
•
JSP/Servlets und EJB: EJB/J2EE-Interaktion mit Servlets,
EJB/J2EE-Interaktion mit JSP, Web-Interfaces mit JSP erstellen
•
J2EE/ELB Sicherheitskonzepte: Einführung, Konfiguration
Führungskräfte, Projektleiter, IT-Manager, RZLeiter, Verantwortliche für die strategische Planung.
•
WebServices: Grundlagen, WDSL (WebService Definition
Language), UDDI (Universal Description, Discovery and Integration)
Voraussetzungen: Keine.
•
Weitere Themen: Grundlagen J2EE Design Pattern, XML-Integration, J2EE-Mythen, Austauschbarkeit des Application Servers, Interoperabilität, Skalierbarkeit
•
Wahl eines J2EE-Servers: Marktübersicht, technische und
geschäftliche Kriterien, Open Source Software
Neben der technologischen Sicht lernen Sie
J2EE aber auch aus geschäftlicher Sicht kennen.
Sie profitieren dabei von unserer technologischen Kompetenz und Unabhängigkeit, indem
wir alle Technologien und Produkte kritisch betrachten. Das Seminar wird durch Berichte
über Praxiserfahrungen abgerundet.
Zielgruppe
Termine
27.09.2004 in Wiesbaden
29.11.2004 in Wiesbaden
Dauer: 1 Tag
Kursgebühr/Teilnehmer: 450 € zzgl. MwSt.
29
Unix/Linux/Open Source
IBM Tivoli Storage Manager (Teil II):
Im Fokus: Interne Datenbank
und Recovery Log
Im ersten Teil dieser Reihe widmeten wir uns dem Tivoli Storage Manager (TSM) konzeptionell. Diesmal
nehmen wir einige zentrale Bestandteile genauer unter die Lupe: die interne Datenbank und das Recovery
Log. Im Fokus stehen dabei die Dimensionierung, die Pflege und die Sicherung dieser Elemente.
Aufgrund der zentralen Bedeutung dieser TSMElemente sind weitere Maßnahmen ratsam.
Sicherheitsvorkehrungen
1. Redundante Datenhaltung (Spiegel)
Falls nicht schon mit Hardware- oder Betriebssystem-Mitteln geschehen, kann man alternativ auch mit TSM-Mitteln spiegeln (bis zu 3
Wege-Spiegel; siehe Abbildung 2).
Abb. 1: Interne Datenbank und Logfile sind die zentralen
Elemente des TSM-Servers.
TSM Database - das Herzstück des Storage Managers
Die gesamten Informationen, die die Sicherungslandschaft betreffen, sind in der TSM Datenbank gespeichert. Dazu gehören u. a.:
•
•
•
•
Client Systeme und Administratoren,
Policies und Schedules,
Servereinstellungen und Activitylogs,
Verwaltung der Client-Dateien.
Der Verlust der Datenbank würde nicht nur zum Verlust dieser
Informationen, sondern auch zum Verlust der dahinterliegenden
Sicherungen führen. Dieses Element von TSM sollte also besonders geschützt und natürlich gesichert ;-) werden.
2. Regelmäßige Sicherung der Datenbank
TSM kennt 3 Sicherungsarten:
• Full Backup
• Inkrementelles Backup
• Snapshot
Die erste Datenbank-Sicherung muss vom Typ
Full Backup sein (siehe Abbildung 3). Darauf
kann dann im Fehlerfall wieder aufgesetzt werden. Änderungen, die zwischenzeitlich an der
Datenbank vorgenommen wurden, gehen dabei aber verloren.
Um solche Verluste zu minimieren, sollte man
möglichst häufig ein Backup der Datenbank
durchführen. Eine andere Möglichkeit ist, den
Server im roll-forward Modus zu betreiben.
Dabei werden Modifikationen an der Datenbank im Recovery Log mitprotokolliert. Dadurch kann man bis zum Zeitpunkt des Verlustes recovern – vorausgesetzt natürlich, die
Recovery Logs sind intakt.
Mechanismen gegen Systemabstürze
Möglichen Systemabstürzen wird mit internen Mechanismen begegnet: Änderungen in der Datenbank werden zunächst im Datenbankpuffer durchgeführt und regelmäßig auf Platte zurückgeschrieben. Zusätzlich werden die Transaktionen (vor dem Zurückschreiben der Datenbankblöcke auf Platte) in einem Recovery Log
(LOG) protokolliert. Nach einer abnormalen Beendigung des Servers kann damit ein konsistenter Zustand wieder hergestellt werden. Das Recovery Log wird daher bei jedem Serverstart in einem
dreistufigen Prozess gelesen:
•
•
•
30
nicht beendete Transaktionen erkannt („analysis“)
fehlende Transaktionen nachgefahren („redo“)
nicht beendete Transaktionen zurückgefahren („undo“).
Die nächsten Backups können inkrementell
sein, wobei der Vorgang des Backups schneller geht, der des Recoverns langsamer. Die
einzige Einschränkung seitens TSM ist, dass
maximal 32 inkrementelle Backups aufeinander folgen dürfen.
Benötigt man ein Datenbank Backup außer
der Reihe, verwendet man den Typ Snapshot.
Dies entspricht dem Full Backup, setzt aber im
roll-forward Fall keine Loginformationen frei.
Insbesondere im roll-forward Modus ist es
sinnvoll, das Backup per Trigger anzustoßen
Unix/Linux/Open Source
(„define dbbackuptrigger“). Das schnelle
Wachstum der Logs kann hierbei als Auslöser benutzt werden.
Doch was ist, wenn der Server „abbrennt“?
Woher bekomme ich dann die Informationen,
wo das Backup der Datenbank liegt?
Über den Parameter VOLUMEHISTORY in der
Datei dsmserv.opt kann festgelegt werden,
wohin diese (und andere) Informationen herausgeschrieben werden.
Die Ausgabe kann durch „backup volhist“
forciert werden.
Analog dazu wird der Parameter DEVCONFIG
(„backup devconfig“) verwendet, über den
die Informationen über die Gerätekonfiguration kanalisiert werden.
Konsequenterweise sollte man dann noch dafür sorgen, dass die obigen Ausgabedateien
vom Server „weg“ kommen, also z. B. auf ein
NFS-Dateisystem geschrieben werden.
3. Beobachtung der Auslastung
In der „QUERY LOG“ bzw. „QUERY DB“ wird
als letzte Spalte eine „Hochwassermarke“ ausgegeben, die die Maximalauslastung seit dem
letzten Reset enthält (siehe Abbildung 6).
In der ausführlichen Ausgabe der Queries
(Option „format=detailed“) ist auch der Zeitstempel des letzten Resets enthalten. Zurücksetzen kann man diese Zähler einfach mit
„reset LOGMAXUTILIZATION“ bzw. „reset
DBMAXUTILIZATION“.
4. Automatische Erweiterung
(Trigger-gesteuert)
Mit der Definition eines Space Triggers kann
bei der Unterschreitung des verbleibenden
Platzes des Recovery-Logs bzw. der Datenbank dieser automatisch vergrößert werden.
Beispiel:
Das aktuelle Log hat eine Größe von 44 MB.
Wenn es zu 75 % voll ist, soll es automatisch
um 30 % erweitert werden. Es soll aber auf
maximal 100 MB beschränkt bleiben (siehe
Abbildung 4).
Die richtige Datenbankgröße
Zunächst ein Wort zur Arbeitsweise: Die Speicherbereiche, die den Plattenplatz für Datenbank und LOG bereit stellen, können aus einzelnen Dateien zusammengebaut werden.
TSM verwaltet diese Dateien als „Volumes“
über einen internen Logical Volume Manager
(LVM).
(1) Bereitstellen einer Datei der Größe 101 MB.
# dsmfmt -db /tsm/tsm2/db0022 101
(2) Diese Datei als Mirror definieren.
tsm: HALIX>def dbcopy /tsm/tsm1/db002 /tsm/tsm2/db0022
[AANR2242I Database volume copy /tsm/tsm2/db0022 defined;
synchronization process started (process ID 29).
ANS8003I Process number 29 started.
(3) Während der Synchronisationsphase ist der Status „Stale“.
tsm: HALIX>select * from dbvolumes where copy2_name <> ‘’
COPY1_NAME:
COPY1_STATUS:
COPY2_NAME:
COPY2_STATUS:
COPY3_NAME:
COPY3_STATUS:
AVAIL_SPACE_MB:
ALLOC_SPACE_MB:
FREE_SPACE_MB:
/tsm/tsm1/db002
Synchronized
/tsm/tsm2/db0012
Synchronized
/tsm/tsm2/db0022
Stale
100
100
0
Abb. 2: Spiegeln von Datenbank-Volumes mit TSM-Mitteln.
(1) Full Backup der Datenbank auf Band.
tsm: HALIX>backup db devclass=dlt7000 type=full
ANR2280I Full database backup started as process 31.
ANS8003I Process number 31 started.
(2) Standardmäßig wird ein Scratch-Band verwendet.
tsm: HALIX>q proc
Process
Number
------31
Process
Status
Description
--------------- -----------------------------------Database Backup Full backup: 0 pages of 66608 backed up.
Waiting for mount of scratch volume
(6 seconds).\
(3) In der Volume History findet man das verwendete Volume.
tsm: HALIX>select * from volhistory where type = ‘BACKUPFULL’
DATE_TIME:
UNIQUE:
TYPE:
BACKUP_SERIES:
BACKUP_OPERATION:
VOLUME_SEQ:
DEVCLASS:
VOLUME_NAME:
LOCATION:
COMMAND:
2004-03-25 17:52:07.000000
0
BACKUPFULL
1
0
1
DLT7000
B0005
Abb. 3: Starten des Full Backups, Abfrage des Prozesses und Volume
Auskunft.
tsm: HALIX>define spacetrigger log fullpct=75 spaceexpansion=30
expansionprefix=/tsm/tsm1/ maximumsize=100
ANR2279I Recovery Log Space trigger defined and enabled.
tsm: HALIX>q spacetr log
LOG Full
Percentage
---------75
LOG Space Expansion Percentage
---------------30
LOG Expansion prefix
----------/tsm/tsm1/
LOG Maximum
Size (Megabytes)
---------------100
Abb. 4: Definition eines Space-Triggers mit anschließender Abfrage.
Die kleinste Einheit, mit der der LVM arbeitet, ist 4 MB groß. Zusätzlich wird pro Volume ein 1 MB großer Header für interne Zwecke
(„Restart Recovery Area“) benötigt. Das heißt, wenn man ein neues
Volume der Größe 10 MB anfordert, wird sie von TSM automatisch
31
Unix/Linux/Open Source
auf ein Vielfaches von 4 MB erhöht. Anschließend wird der Platz
auf Betriebssystemebene allokiert, plus 1 MB für den Header, also
in diesem Fall 13 MB.
Löschen eines Volumes
Achtung: Durch das Löschen eines Volumes („delete dbvolume
...“) bleibt die Datei auf Betriebssystemebene bestehen. Dies
ist zunächst nicht weiter schlimm, führt aber zu einem Fehler, wenn
man ein zuvor gelöschtes Volume erneut verwenden möchte –
selbst bei gleicher Volumegröße! Unglücklicherweise bekommt
man davon auf der Kommandozeile nichts mit, wenn man den
Job im Hintergrund laufen lässt (standard).
Der tatsächliche Speicherbedarf lässt sich abschätzen, wenn man
die Anzahl der Dateien kennt, die TSM verwalten soll.
Dies ist aber meistens nicht präzise vorher zu sagen bzw. wird
sich erst im Laufe der Zeit genauer heraus kristallisieren. Für jede
verwaltete Datei werden aber ca. 600 Byte benötigt.
Beispielrechnung Backup-Speicherbedarf
Für eine Backup-Umgebung, in der 500.000 Client-Dateien mit je
drei Versionen gesichert werden sollen, benötigt man damit
500.000 x 3 x 600 Byte = 900.000.000 Byte, also etwa 860 MB.
Hinzu kommen bis zu 25 % Overhead, so dass man für diese
Datenbank etwa 1,1 GB kalkulieren sollte.
Zusätzlich wird die Sicherungsumgebung tendenziell eher wachsen, so dass mit weiterem Platzbedarf zu rechnen ist. Mit 1,5 GB
wäre man bei diesem Beispiel also erst einmal gut gerüstet.
Zu beachten ist, dass dieses Beispiel rein für Backup-Funktionalität
durchgeführt wurde. Für Archivierung und Space Management fällt
weiterer Platzbedarf an.
TSM> define dbvol /tsm/tsm1/db003 formatsize=100 wait=yes
...
TSM> extend db 100
Abb. 5: Vergrößern der DB in 2 Schritten: Hinzufügen eines Volumes
als Vordergrundprozess. Erweitern der DB um 100 MB.
tsm: HALIX>q db
Available Assigned
Space
Capacity
(MB)
(MB)
--------- -------556
500
Maximum
Extension
(MB)
--------56
Maximum
Reduction
(MB)
--------244
Page
Size
(bytes)
------4.096
Faustregel
Ist die Anzahl der Dateien eine schwer zu
handhabende Größe, kann man sich auch mit
einer Faustregel behelfen. Diese besagt, dass
man etwa 1 - 5 % des aufkommenden Datenvolumens als resultierende Datenbankgröße
benötigt. Dies ist natürlich nur eine sehr grobe Abschätzungsmethode.
Zu beachten ist, dass Zwischenergebnisse
von SQL-Abfragen in temporären Tabellen der
Datenbank gespeichert werden und damit den
Platzbedarf weiter erhöhen.
In der Praxis haben Produktivsysteme Datenbank-Files in der Größenordnung von 3 - 15
GB. Sehr große Installationen können auch
in Bereiche von 50 - 80 GB kommen. Die Obergrenze liegt bei 5 TB.
Bei der Installation von TSM werden die interne Datenbank und das Recovery-Log als Dateien „db.dsm“ und „log.dsm“ mit einer Größe
von 17 MB bzw. 9 MB angelegt. Dies genügt,
um den TSM-Server zu starten und etwas zu
experimentieren. Für Produktivumgebungen
sind diese Werte aber viel zu gering und sollten als erstes nach der Installation angepasst
werden.
Dadurch, dass der Verwaltung der Speichereinheiten ein LVM-Konzept zugrunde liegt,
kann man problemlos im laufenden Betrieb
Änderungen vornehmen (siehe Abbildungen
5 und 6).
Die Größe des Recovery-Logs
Die Größe des Logfiles ist ebenfalls ein kritischer Parameter. Ein zu groß gewähltes Logfile ist „nur“ Platzverschwendung, ein zu klein
gewähltes kann hingegen den Server zum Ab-
Total
Usable
Pages
------128.000
Used
Pages
Util
------65.452
Pct
Util
Max.
Pct
---51,1
---51,1
tsm: HALIX> select copy1_name,avail_space_mb, alloc_space_mb, free_space_mb
from dbvolumes
COPY1_NAME
--------------/tsm/tsm1/db001
/tsm/tsm1/db002
/tsm/tsm1/db003
/tsm/tsm1/db004
/tsm/tsm1/db005
AVAIL_SPACE_MB
-------------144
100
100
200
12
ALLOC_SPACE_MB
-------------144
100
100
156
0
FREE_SPACE_MB
------------0
0
0
44
12
Abb. 6: Die Auslastung der Datenbank im Gesamtüberblick (oben) und aufgeschlüsselt nach den einzelnen Volumes (unten).
32
Unix/Linux/Open Source
sturz bringen. Daher sollten Füllgrad und Zustand des Logfiles regelmäßig beobachtet
werden.
Diese lassen sich über BUFFERPOOLSIZE bzw. LOGPOOLSIZE
einstellen. Die Auslastung der Buffer kann man sich mit „q db
f=d“ bzw. „q log f=d“ anschauen.
Da das Recovery-Log wie ein Ringspeicher
beschrieben wird, muss man wissen, mit welchem Logging-Aufkommen zu Spitzenzeiten
zu rechnen ist. Wichtige Parameter, die das
Logging-Volumen bestimmen sind
• Transaktionsvolumen
• Anzahl der Clients
• Betriebsmodus (roll-forward oder normal)
Sind hier die Werte „Cache Wait Pct.“ bzw. „Log Pool Pct.
Wait“ größer Null, kann das ein Hinweis für zu kleine Puffer sein.
Das gleiche gilt, wenn „Cache Hit Pct.“ kleiner als 98 % werden, bzw. „Log Pool Pct. Util“ größer 10 %.
Des Weiteren kann über die Eingabe einiger
Tuningparameter die Größe des RecoveryLogs beeinflusst werden (TNXGROUPMAX,
MAXSESSIONS).
Von Zeit zu Zeit kann sich eine Reorganisation der Datenbank
positiv auf die Performance auswirken. Dies trifft insbesondere
bei sehr großen Datenbanken zu. Dazu muss der Server allerdings
heruntergefahren werden, damit die Datenbank entladen werden
kann. Anschließend müssen die Volumes neu formatiert werden,
bevor die Datenbank wieder geladen werden kann.
Performance
Neben den zugrunde liegenden Dateien ist
aus Performance-Sicht auch die Größe der
entsprechenden Puffer zu berücksichtigen.
Über den Serverparameter SELFTUNEBUFPOOLSIZE kann eine
automatische Anpassung der Datenbank-Buffergrößen erreicht
werden.
In den nächsten Ausgaben folgen weitere Teile dieser Reihe.
Roger Niemeyer ([email protected]).
Seminarvorstellung: Oracle Troubleshooting
Dieser Workshop vermittelt die Analyse typischer praxisnaher Fehlersituationen im Oracle
Administrationsumfeld mit integrierter Wiederholung wichtiger theoretischer Grundlagen.
Das Seminar ist als Workshop angelegt und
sehr übungsorientiert. Vor Seminarbeginn können auch eigene Themenvorschläge angemeldet werden.
Seminarinhalte
•
Architektur:
Transaktionskonzept, Data Dictionary, SGA, Init.ora, Dokumentation, Dba_views, v$views, Oracle Prozesse, Log Files
•
Logische und physische Datenbank:
Max Extents Fehler, Next Extent Fehler, Erzeugen eines neuen
Tablespaces, Kalkulation von Plattenplatz, Erzeugen eines neuen Datafiles, lokales Extent Management, Verlagern von Tabellen und Indizes, Raw Devices, Anlegen und Verlagern von
Rollback Segmenten
•
Benutzerkonzept:
Anlegen von Benutzern, Sperren/Entsperren, Rollenkonzept,
Rechtekonzept, Rechte in Prozeduren
•
Backup und Recovery:
Offline/Online Backup, Recovery-Szenarien, Exp/Imp, LogMiner
•
SQL:
Tables, Indizes, create/rebuild/online/parallel, Constraints
(primary key/foreign key/on delete cascade), Deadlocks, Sperren, aktuelle SQL's, Top SQL, Explain plan/autotrace/tkprof,
Prozesse (intern/extern), Analyzer/Optimizer
•
SQL*Net:
Listener, Tnsnames, Database links, Global Names, Names
Server, tnsping
•
Übungen
Zielgruppe
Dieses Seminar richtet sich an fortgeschrittene Datenbankadministratoren.
Voraussetzungen
Die Teilnahme an den Seminaren „Oracle
SQL“ und „Oracle Datenbankadministration
Grundlagen“ wird zwingend vorausgesetzt.
Termine
20.09.2004 - 24.09.2004 in Wiesbaden
29.11.2004 - 03.12.2004 in Wiesbaden
Dauer: 5 Tage
Kursgebühr/Teilnehmer: 1.890 € zzgl. MwSt.
33
Datenbanken
RMAN-Integration in Backup Tools (Teil I):
RMAN-Integration in NetWorker
und Tivoli Storage Manager
Der Oracle Recovery Manager (RMAN) ist seit Oracle 8 das Oracle Standardwerkzeug für Backup und Recovery. Der folgende Artikel soll die Einbindung des RMAN in die Backup Tools Legato NetWorker und Tivoli
Storage Manager (TSM) erläutern. Die Sicherung einer Oracle Datenbank mit RMAN und Veritas Netbackup
sowie HP DataProtector (früher Omniback) wird in einer der nächsten Ausgaben der ORDIX News behandelt.
Mit diesem Artikel wollen wir unsere Erfahrungen aus verschiedenen Backup Projekten vorstellen und zum Schluss die Backup
Tools vergleichen.
RMAN und NetWorker
Das Einbinden einer Oracle Datenbank Sicherung mit dem Recovery Manager in eine NetWorker Umgebung gliedert sich in verschiedene Teilschritte, die im Folgenden beschrieben werden.
1. Installation
Der erste Schritt besteht in der Installation der NetWorker Client
Software und des NetWorker Moduls für Oracle als user root bzw.
Administrator. Dabei wird im Wesentlichen
eine Shared Library auf dem Datenbankserver
installiert, über die der RMAN mit dem NetWorker Client kommuniziert. Weiterhin wird
ein Template eines Shell Skripts installiert, das
bei der Konfiguration der Datenbank Sicherung anzupassen ist.
2. Linken
Der folgende Schritt, das Linken der installierten Shared Library mit dem Oracle Binary, ist
vom user <ORACLE_OWNER> durchzuführen. Dabei sind je nach Plattform bzw. Oracle
Release unterschiedliche Schritte durchzuführen.
Bei den verschiedenen Oracle 8.x Releases
ist libobk.so unter $ORACLE_HOME/lib auf
jeden Fall zu löschen bzw. umzubenennen.
Danach ist er durch einen Link auf /usr/lib/
libnwora.so zu ersetzen. Der Link bzw. die
Datei $ORACLE_HOME/lib/libobk.so zeigen vorher auf eine Dummy API für Band-Sicherungen.
Abb. 1: Das Zusammenspiel der einzelnen Komponenten bei RMAN
und NetWorker.
Bei älteren Oracle Releases muss der DBA
auf der einen oder anderen Plattform anschließend noch in das Verzeichnis $ORACLE_HOME/
rdbms/lib wechseln und beispielsweise folgendes Kommando absetzen:
make -f ins_rdbms.mk ioracle.
connect target <usr>/<pwd>@<target-alias>
connect catalog <usr>/<pwd>@<catalog-alias>
run {
allocate channel t1 type ’SBT_TAPE’;
send ’NSR_ENV=(NSR_SERVER=DASI_PB, NSR_DATA_VOLUME_POOL=ORDIX_DB)’;
backup full filesperset 6
(database format ‘%d_%u‘);
release channel t1;
}
Listing 1: Beispiel für ein RMAN Skript mit Anbindung an NetWorker.
34
Datenbanken
dsmi_orc_config /usr/tivoli/tsm/client/oracle/bin/dsm.opt
dsmi_log /usr/tivoli/tsm/client/oracle/bin
tdpo_node <Servername des Oracle Servers>
Listing 2: Beispiel für eine tdpo.opt Datei.
servername tdpo # Der Name, über den der TSM Server identifiziert wird
commmethod tcpip
tcpserveraddress <IP Adresse des TSM Servers>
passwordaccess prompt #Passwort-Generierung per Abfrage
Listing 3: Beispiel für die Datei dsm.sys.
Nach dem Linken bzw. dem make ist auf jeden Fall ein Neustart der betroffenen Datenbanken erforderlich.
die Sicherung ihrer archivierten Log Dateien sollte ein eigenes
Backup Command angelegt werden, da sonst alle RMAN Sessions in ein- und dieselbe msglog-Datei schreiben.
Bei Oracle 9i gibt es nach der Installation der
Oracle Software den Link $ORACLE_HOME/
lib/libobk.so nicht mehr. Deshalb ist bei
Oracle 9i nur noch der Link von /usr/lib/
libnwora.so auf $ORACLE_HOME/lib/
libobk.so zu setzen.
4. Client Konfiguration bzw. Saveset Skript
Ein Neustart der betroffenen Datenbanken ist
bei Oracle 9i nicht mehr erforderlich. Sollte
jedoch bei der Installation der Oracle Software der Legato Storage Manager mitinstalliert
worden sein, ist das Verfahren das Gleiche
wie bei Oracle 8i.
Um automatisch allokierte Channels zu überschreiben und damit
einen sicheren RZ Betrieb zu garantieren, sollte in den Sicherungsskripten die manuelle Channel Allocation genutzt werden. Dies wird
indirekt auch von den Herstellern der Backup Software empfohlen,
da alle Beispiele der Dokumentation darauf aufsetzen.
Weiterhin ist für jede Datenbank bzw. ArchiveLog Sicherung ein
Skript mit den passenden RMAN Kommandos anzulegen. Diese
wird später bei der Client Konfiguration als Saveset eingetragen.
Ein Beispielskript zur Sicherung zeigt Listing 1.
RMAN und TSM
3. Das Backup Command
Das NetWorker Backup Command ist ein Shell
Skript, in dem vom Anwender unbedingt die
Werte bestimmter Umgebungsvariablen einzutragen sind. Die wichtigsten davon sind hier
aufgezählt:
ORACLE_HOME:
Hier ist der Wert der Umgebungsvariable
$ORACLE_HOME einzutragen.
Das Einbinden einer Oracle Datenbank Sicherung mit Recovery
Manager in eine Tivoli Storage Manager Umgebung gestaltet sich
ähnlich wie die Einbindung in eine NetWorker Umgebung.
1. Installieren und Linken
Die Schritte Installation und Linken erfolgen analog den bei „RMAN
und NetWorker“ beschriebenen.
2. Anpassen der Datei tdpo.opt
PATH:
Neben dem Standard Pfad der Server ist zusätzlich der Pfad zu den Oracle Binaries einzutragen, also $ORACLE_HOME/bin. Dabei
sollte der Pfad zu den Oracle Binaries vor dem
restlichen Suchpfad stehen.
Im Verzeichnis /usr/tivoli/tsm/client/oracle/bin liegt
die Beispieldatei tdpo.opt.smp. Die tatsächliche Konfigurationsdatei muss tdpo.opt heißen. Am einfachsten kopiert man
tdpo.opt.smp nach tdpo.opt und bearbeitet diese dann. Wie
immer bei TSM darf das nur vom Administrator bzw. durch root
erfolgen.
NSR_RMAN_ARGUMENTS:
Mit dieser Variable werden diverse RMANKommandozeilen-Optionen übergeben, wie
z. B. msglog zum Mitloggen des RMAN Outputs.
Welche Einträge in der Datei enthalten sein müssen, zeigt das
Beispiel in Listing 2.
Das Template (nsrnmo) für das Backup Command liegt im Verzeichnis der NetWorker Binaries. Für jede Datenbank Sicherung bzw. für
Danach ist in demselben Verzeichnis die Datei dsm.opt anzulegen.
In dieser ist der Eintrag
servername tdpo
# Der Name, über den der TSM Server identifiziert wird
vorzunehmen.
35
Datenbanken
connect target <usr>/<pwd>@<target-alias>
connect catalog <usr>/<pwd>@<catalog-alias>
run {
allocate channel t1 type ’SBT_TAPE’
parms ’ENV=(tdpo_optfile= /usr/tivoli/tsm/client/oracle/bin/tdpo.opt)’;
backup full filesperset 6
(database format ‘%d_%u‘);
release channel t1;
}
Listing 4: Beispiel für ein RMAN Skript mit Anbindung an TSM.
3. Bearbeiten von dsm.sys
Als nächstes ist im Verzeichnis /usr/tivoli/tsm/client/api/
bin ein Link auf die Datei /usr/tivoli/tsm/client/ba/bin/
dsm.sys anzulegen. Diese Datei ist so zu editieren, dass darin
die in Listing 3 abgebildeten Zeilen enthalten sind.
4. Node registrieren
Beim nächsten Konfigurationsschritt wird der Node (Datenbank
Server) beim TSM Server registriert. Das geschieht mit dem folgenden Kommando:
REG NODE
<Servername des Oracle Servers>
password
maxnummp=2
passexp=0
das Password-File TDPO.nodename generiert.
6. Backup Skripte
Wie auch bei NetWorker empfiehlt es sich,
für jede Datenbank Sicherung bzw. für die Sicherung der dazugehörigen ArchiveLogs ein
eigenes Skript mit dem RMAN Aufruf bzw. ein
eigenes RMAN Kommando Skript anzulegen.
Das RMAN Kommando Skript für TSM (siehe
Listing 4) zeigt, dass der Unterschied zwischen einem Kommando Skript für TSM und
einem für NetWorker nur in einer Zeile liegt.
Während beim NetWorker die Parameter für
den NetWorker Server direkt im Kommando
Skript notiert werden, liegen sie bei TSM im
tdpo_optfile.
Dabei ist password das TSM Passwort für diesen Node.
5. Passwort Datei anlegen
Anschließend wird im Verzeichnis /usr/tivoli/tsm/client/
oracle/bin mit Hilfe des Kommandos tdpoconf password
Dieses Skript wird dem RMAN als Kommando beim Aufruf übergeben:
rman cmdfile ’Skriptname’
msglog ’Log-Datei’
append
Wird das ganze noch in ein Shell Skript geschrieben, in dem die Umgebungsvariablen
für Oracle gesetzt werden und wird dieses
Shell Skript vom TSM Scheduler angestoßen,
ist die Konfiguration beendet.
Fazit und Ausblick
In der nächsten Ausgabe werden wir uns mit
der Konfiguration für NetBackup und DataProtector beschäftigen und die Stärken und
Schwächen der einzelnen Tools gegenüberstellen.
Abb. 2: Zusammenspiel der einzelnen Komponenten bei RMAN und TSM.
36
Andreas Kother ([email protected]).
Unix/Linux/Open Source
Unix/Linux/Open
- TitelthemaSource
SLOX
Let’s work together!
Die SuSE Linux AG bietet eine Groupware Lösung an, die größtenteils auf
Open Source Technologien basiert und im Wettbewerb zum Microsoft Exchange Server angeboten wird. Der SuSE Linux Openexchange Server (SLOX)
stellt in der derzeitigen Version 4.1 zentrale Groupware-Funktionalitäten wie
Kalender-, Aufgaben- und Dokumentenmanagement bereit.
Architektur des Servers
SLOX besteht aus einer Reihe von integrierten Modulen. Eines davon ist z. B.
der Apache Webserver, der die Funktionalitäten des Groupware Servers auf
HTML Seiten bereitstellt.
Die gesamte Benutzerverwaltung erfolgt
über den OpenLDAP Server. Die übrigen
Daten werden in einer PostgreSQL Datenbank gespeichert. Allein die Groupware Komponente von SLOX ist eine in
Java geschriebene, proprietäre Software namens „comFire“. Grundlage ist
das mitgelieferte Betriebssystem United
Linux 1.0, was in Abbildung 1 verdeutlicht wird.
Abb. 2: Das SLOX-Portal.
Kalender und Termine
Nach dem Login über das Portal bietet SLOX
eine Übersicht über Termine, die an dem jeweiligen Tag anfallen (siehe Abbildung 2). Per
Link kann man diese auswählen. Der Benutzer gelangt dann direkt in die Maske zur Bearbeitung der Kalenderdaten. Drei verschiedene Ansichten sind einstellbar: die Tages-, Wochen- und Monatsansicht. Zusätzlich stellt eine
Teamansicht die Termine der verschiedenen
Benutzer gegenüber. Neue Termine lassen sich
mit Ort, Anfangs-/Enddatum und Beschreibung erstellen. Die Teilnehmer eines Termins
lassen sich eintragen und automatisch per EMail benachrichtigen.
Ein flexibles Berechtigungssystem ermöglicht den Teilnehmern lesenden oder schreibenden Zugriff auf die Kalendereinträge.
Terminanfrage
Möchte ein Mitarbeiter überprüfen, ob ein Teilnehmer an bestimmten Zeiten verfügbar ist, kann eine Terminanfrage erstellt werden.
Das System überprüft den Kalender des entsprechenden Teilnehmers. Anschließend werden verfügbare Termine grafisch präsentiert. Über die Maske „Serie“ lässt sich ein Termin periodisch wiederholend anlegen, z. B. täglich oder wöchentlich.
Bei Anlage des Termins erfolgt eine automatische Verfügbarkeitsprüfung aller ausgewählten Teilnehmer, sodass das System auf
potenzielle Konflikte aufmerksam macht.
Aufgaben
SLOX zeigt eine Übersicht über die eigenen Aufgaben im Portal
an. Über den Reiter Aufgaben gelangt der Benutzer in die entsprechende Aufgabenmaske. Wie bei allen Objekten im Openexchange
Server lassen sich die Aufgaben beliebig mit anderen Objekten
wie Terminen, Projekten und Dokumenten verknüpfen.
Abb. 1: Die Architektur des SLOX.
Grundsätzlich wird unterschieden zwischen Projektaufgaben und
allgemeinen Aufgaben, die keinem Projekt zugeordnet sind. Aufgaben können delegiert werden – und zwar an andere Gruppen
oder Mitarbeiter. Diese Aufgaben werden separat unter dem Reiter „delegierte Aufgaben“ angezeigt.
37
Unix/Linux/Open Source
E-Mails, Faxe und Co.
Längst wird das Telefon von einer Vielzahl von Kommunikationslösungen in Unternehmen ergänzt. Neben dem klassischen Fax
setzen inzwischen viele Unternehmen auf die Kommunikation per
E-Mail und Instant Messaging. Diese Funktionalitäten werden auch
vom SLOX bereitgestellt:
Als Mailserver verwendet Openexchange „Postfix“. Zum Senden
wird das Standard Protokoll SMTP verwendet. Die Benutzer bekommen ihre Mails entweder über das POP4 oder das IMAP Protokoll. Die Verwendung dieser Standardprotokolle ermöglicht ein
Bearbeiten der E-Mails entweder über das von SLOX bereitgestellte Webfrontend oder über E-Mail Clients, die die o. g. Protokolle
unterstützen.
Zentrale Einstellungen
Der Administrator hat die Möglichkeit, die wichtigsten Einstellungen zentral über ein Webfrontend zu verwalten. So z. B. ob der
serverseitige SPAM-Filter aktiv ist, oder ob SMTP verschlüsselt
werden soll. Außerdem lässt sich die Größe der Mailboxen einstellen. Für jeden Benutzer kann man zentral automatisierte Abwesenheitsmeldungen generieren und Weiterleitungen einrichten.
Neben diesen zentralen Einstellungen hat jeder Benutzer die Möglichkeit, selbst Abwesenheitsmeldungen zu erzeugen und auf SPAM
zu reagieren. Auch ist es möglich, Mails nach bestimmten Regeln,
z. B. nach Absender zu sortieren. Der webbasierte E-Mail Client
wirkt aufgeräumt und ist intuitiv zu bedienen. Die wichtigsten Funktionen gängiger E-Mail Clients, wie das Sortieren, Suchen und Erstellen von Verteilerlisten, werden unterstützt.
In der Adresszeile wird dann nicht die E-Mailadresse des Empfängers, sondern die Faxnummer eingetragen. War der Faxversand erfolgreich, bekommt der Benutzer eine Bestätigungs-E-Mail. Faxe lassen sich auch über einen Netzwerk-Faxdrucker versenden. Dies ist
dann sinnvoll, wenn Dokumente direkt aus
einer Anwendung heraus mit Hilfe eines Druckers gefaxt werden sollen. Administriert werden kann ferrariFAX über eine HTML-basierte Oberfläche.
Das ferrariFAX Paket ist in den SLOX integriert. Allerdings fallen bei Verwendung zusätzliche Lizenzgebühren an. Weitere Informationen gibt es auf der Homepage des Herstellers www.officemaster.de.
Kurznachrichten in Echtzeit
Zum Versenden und Empfangen von Kurznachrichten in Echtzeit kommt das Produkt der
Firma go4teams GmbH zum Einsatz. Wie das
Paket ferrariFAX ist es bereits in den SLOX integriert. Eine Nutzung von fünf Clients zur gleichen Zeit ist standardmäßig erlaubt. Zusätzliche Lizenzen müssen beim Hersteller erworben werden. Der Vorteil von Instant Messaging
ist die Echtzeitkommunikation, so dass die Benutzung oft einfacher und unmittelbarer vonstatten geht als bei E-Mail.
Nicht ohne mein Outlook!
FerrariFax integriert
Im Lieferumfang des Openexchange Servers befindet sich das
Paket „ferrariFAX“ zum Senden und Empfangen von Faxen. Der
Anwender bekommt die empfangenen Faxe per E-Mail mit beigefügter PDF-Datei. Versenden kann er seine Faxe unabhängig davon, welchen E-Mail Client er benutzt; also auch direkt über den
Webmail-Client.
SuSE liefert keine Client Komponente mit. Alle
Funktionen lassen sich über einen Web-Browser ausführen, so dass keine gesonderten Lizenzgebühren für Clients anfallen und auch
der Administrationsaufwand geringer ist. Möchte man jedoch nicht durch Webseiten klicken,
bietet „oSLOX“ die Möglichkeit, das vorhandene Outlook zu verwenden. Das hat zusätzlich den Vorteil, dass die Mitarbeiter nicht neu geschult werden müssen.
Mit oSLOX kann der Benutzer Kalenderdaten, Aufgaben und Kontakte mit dem
Openexchange Server synchronisieren.
Auch ein lokales Replizieren der Daten
ist möglich, sodass eine stetige Verbindung zum Server nicht erforderlich ist.
Sicher ist sicher
Abb. 3: Der Webmail Client.
38
Kalenderdaten oder E-Mails können
sensible Informationen des Unternehmens enthalten. Eine Absicherung der
Verbindung ist daher wünschenswert.
Der Openexchange Server stellt das
Apache ssl-Modul bereits bei der Standardinstallation bereit.
Unix/Linux/Open Source
Wenn eine verschlüsselte Verbindung gewünscht ist, kann durch Eingabe von „https://
Adresse-des-Servers“ in die Adressleiste des
Browsers signalisiert werden, dass die OpenSSL Bibliothek zur Verschlüsselung der Verbindung verwendet werden soll. Zwischen
Browser und dem Apache HTTP Server wird dann eine Verschlüsselungsmethode ausgehandelt, so dass eine
sichere Verbindung aufgebaut werden kann.
Das Projektmanagement beinhaltet Informationen über Kunden,
Teilnehmer, Start- und Enddatum, geplante Aufwände in Stunden
sowie Einnahmen.
Eine Wissensdatenbank stellt das Know-How des Unternehmens
an zentraler Stelle für alle Mitarbeiter zur Verfügung.
Fazit
SLOX zeigt sich bedienerfreundlich und übersichtlich. Das Portal verbindet alle Funktionalitäten an
zentraler Stelle. Es gibt so einen Überblick über
Aufgaben, Termine, Projekte und E-Mails. Selbsterklärende Symbole sorgen für eine intuitive Bedienung.
Weitere Features
Zusätzlich verfügt SLOX über ein Dokumentenmanagement. Dokumente
können in Ordnerstrukturen abgelegt
und mit Lese- und Schreibrechten für
Teams und einzelne Benutzer ausgestattet werden. Eine Historie und Versionierung machen Veränderungen an einem Dokument nachvollziehbar.
Über ein Diskussionsforum können sich Mitarbeiter zu unterschiedlichen Themengebieten
austauschen. Auch hier besteht die Möglichkeit, Beiträge mit Dokumenten oder Terminen
zu verknüpfen. Abonniert man einen Beitrag,
erhält der Abonnent eine Benachrichtigung per
E-Mail.
Die Verwendung von unterschiedlichen, offenen
Schnittstellen ermöglicht die Integration von
SLOX in die bestehende Unternehmens-Infrastruktur. Die Aministration wird durch ein Webfrontend erleichtert.
Flexibel ist der Benutzer in der Wahl des Clients. Sowohl ein Browser
als auch Outlook und diverse PDAs werden unterstützt.
Insgesamt bietet SuSE mit dem Openexchange Server ein gelungenes Produkt mit viel Funktionalität zu erschwinglichen Preisen
an.
Jens Stahl ([email protected]).
Seminarvorstellung: Java GUI Entwicklung mit Swing
Der Teilnehmer erlernt die Erstellung komplexer, grafischer Oberflächen mit Hilfe der Java
Bibliothek Swing. Sehr viel Wert wird dabei
auf den Praxisteil mit einer durchgehenden
Übungsaufgabe gelegt.
Seminarinhalte
•
Entstehung der Grafikbibliothek Swing und Unterschiede zu
AWT
•
Grundlegende Swing-Container und -Komponenten
•
Einfache und komplexe Layout-Manager
•
Event-Handling: Interfaces und Adapterklassen
•
Vorstellung des Model-View-Controller (MVC) Paradigmas und
dessen Umsetzung (Observer und Observable)
•
Komplexe Swing-Container und -Komponenten
Voraussetzungen
•
Nutzung einer Tabelle in Java
Teilnahme am Seminar „Java Programmierung Grundlagen“ und Kenntnisse in objektorientierter Programmierung.
•
Look and Feel
•
Internationalisierung
•
Übungen mit Hilfe einer durchgehenden Praxisaufgabe
Zielgruppe
Dieses Seminar richtet sich an alle, die GUI
Programmierung mit Java durchführen wollen
und ihre Kenntnisse aus dem Seminar „Java
Basics“ vertiefen wollen.
Termine
06.09.2004 - 10.09.2004 in Wiesbaden
25.10.2004 - 29.10.2004 in Wiesbaden
Dauer: 5 Tage
Kursgebühr/Teilnehmer: 1.590 € zzgl. MwSt.
39
Datenbanken
IBM Informix Dynamic Server 9.40 (Teil IV):
Der „Schlüssel“ zu
IBM Informix Dynamic Server
In früheren IBM Informix Datenbankversionen bestand nur die Möglichkeit der Verschlüsselung von Passwörtern (Simple Password Encryption). Mit dem aktuellen Release sind weitere wichtige Security Features
implementiert worden. Die Network Encryption und die externe Authentifizierung hält Einzug in den IBM
Informix Dynamic Server.
Network Encryption
Die Basis der Network Encryption des IBM Informix Dynamic Server 9.40 bildet der OpenSSL Standard in der Version 0.9.6g.
(www.openssl.org)
Hierbei wird nicht nur wie in früheren Versionen das Passwort verschlüsselt (simple password encryption), sondern der gesamte
Datenverkehr zwischen Client und Server. Man unterscheidet zwischen zwei Arten der Network Encryption:
1. Symmetrische Kryptographie
2. Public Key Kryptographie
Die Symmetrische Kryptographie verwendet zum Ver- und Entschlüsseln der Daten denselben Key. Das bedeutet, Sender und
Receiver verständigen sich zuerst auf einen Key. Bei der Public
Key Kryptographie werden unterschiedliche Keys verwendet.
Der IBM Informix Dynamic Sever 9.40 verwendet die symmetrische Kryptographie.
Grundlagen / Network Encryption
Zuerst müssen sich Sender und Receiver, in
dem Fall der Client und der DB-Server, auf
einen gemeinsamen Key verständigen (1).
Dieses geschieht mittels des Diffie-Hellman
Algorithmus (Shared Key Exchange). Danach
werden die Daten des Senders mittels des
vereinbarten Keys verschlüsselt (encrypt) (2).
Der Receiver entschlüsselt die Daten (decrypt)
wieder (3) (siehe Abbildung 1).
Die Network Encryption (ENC) ist im IBM Informix Dynamic Server 9.40 als „pluggable“
Communication Support Module (CSM) implementiert worden.
Im Lieferumfang des IBM Informix Dynamic
Server 9.40, sowie des IBM Informix Client SDK
(Software Development Kid) 2.81 befindet sich
eine neue Shared Library ($INFORMIXDIR/
lib/csm/iencs09a.so). Diese übernimmt
das Ver- und Entschlüsseln des gesamten
Datenverkehrs (siehe Abbildung 2).
Die Konfiguration
Abb. 1: Network Encryption.
Die Konfiguration der IBM Informix Dynamic
Server Network Encryption wird mittels einer
Konfigurationsdatei durchgeführt. Zur Identifikation dieser Datei kann man die Umgebungsvariable INFORMIXCONCSMCFG verwenden
(Angabe des vollen Pfadnamens wie bei der
Umgebungsvariablen INFORMIXSQLHOSTS).
(Default = $INFORMIXDIR/etc/concsm.cfg)
Die Konfigurationsdatei (concsm.cfg)
Die Datei concsm.cfg ist standardmäßig nicht
vorhanden und muss „neu“ angelegt werden.
Abb. 2: Beispiel einer Client → Server Verbindung.
40
Die Auflösung der Encryption Konfiguration
und des DB-Server Namens erfolgt einfach
über eine „weitere“ Spalte in der SQLHOSTS.
Datenbanken
ids940fc2_enc
ids940fc2
onsoctcp
onsoctcp
halix
halix
ids940fc2_enc
ids940fc2
csm=(ENCCSM1)
Abb. 3: SQLHOSTS-Einträge für Server und Alias mit verschlüsselter und unverschlüsselter Verbindung.
Hier wird nun die Encryption-Einstellung einem DB-Server zugewiesen.
Mittels des DB-Server Aliases besteht im
Übrigen die Möglichkeit, auf „dieselbe“ DBInstanz eine verschlüsselte Verbindung und
eine unverschlüsselte Verbindung einzurichten (siehe Abbildung 3).
ENCCSM1
(„/ifx/ids940fc2/lib/csm/iencs09a.so“,
cipher[all],
mac[levels:high,
files:/tmp/Mac_Key_1.dat],
switch[cipher:20,key:20])
Abb. 4: concsm.cfg Konfiguration.
Wie Abbildung 4 zeigt, muss die CSM Konfigurationsdatei folgenden Aufbau haben:
CONCSM.CFG:
ENCCSM1( “/ifx/ids940fc2/lib/csm/iencs09a.so“,
“/ifx/ids940fc2/etc/enccsm1.cfg“,““)
1. Name der CSM-Konfiguration
2. Pfad und Name der CSM Library
($INFORMIXDIR/lib/csm/iencs09a.so)
3. Verschlüsselungsalgorithmus (Ciphers)
ENCCSM1.CFG:
ENCCSM_CIPHTERS:
ENCCSM_MAC:
ENCCSM_MACFILES:
ENCCSM_SWITCH:
4. MAC (Message Authentication Code)
5. Switch (Änderungsfrequenz von Cipher
und MAC Keys)
Eine weitere Möglichkeit der Konfiguration
zeigt Abbildung 5.
Abb. 5: Alternatives Konfigurationsbeispiel concsm.cfg.
Ciphers
Als Cipher bezeichnet man den eigentlichen
Verschlüsselungsalgorithmus. In Abbildung 6
sind die unterstützten Verschlüsselungsmechanismen aufgelistet.
Mit der Einstellung cipher[all] lässt man alle
zur Verfügung stehenden Algorithmen zu. Des
Weiteren besteht die Möglichkeit, Verschlüsselungsalgorithmen auszuschließen bzw. sich
auf einen bestimmten Algorithmus festzulegen.
Beispiel:
cipher[allbut:bf-1]
cipher[des3]
all
high
/tmp/MacKey_1.dat
30,3
Algorithmus
Beschreibung
des
DES (64 Bit Key)
des3
Triple DES
desx
Extended DES (128 Bit Key)
bf-1
Blow Fish (64 Bit Key)
bf-2
Blow Fish (128 Bit Key)
bf-3
Blow Fish (192 Bit Key)
Modes
Beschreibung
ecb
Electronic Code Book
cbc
Cipher Block Chaining
cfb
Cipher Feedback
ofb
Output Feedback
Abb. 6: Verschlüsselungsalgorithmen/Modes.
CSM / Library
Message Authentication Codes (MAC)
Die CSM Library ist im Lieferumfang des IBM
Informix Dynamic Servers und des IBM Informix Client (SDK/Connect) enthalten. Clientseitig muss mindestens der CSDK/Connect
2.81 installiert werden.
Der MAC wird zur Kontrolle der Integrität einer Information benötigt. Dieses geschieht mit Hilfe einer „Prüfsumme“. Diese Prüfsumme wird wiederum verschlüsselt übertragen. Zur Chiffrierung der
Prüfsumme wird ebenfalls ein Key generiert.
Folgende Einstellungen können hier vorgenommen werden:
•
•
Server:
$INFORMIXDIR/lib/csm/iencs09a.so
(Windows-)Client:
%INFORMIXDIR%\lib\client\csm\
iencs09a.dll
•
•
•
off
low
medium
•
high
Keine Verwendung
Verwendung von XOR zur MAC Erstellung
wenn Nachricht > 20 Byte, wird SHA1 MAC verwendet, ansonsten XOR
Verwendung von SHA1 MAC
41
Datenbanken
tcpdump: listening on lo
18:04:52.911158 linux.local.32774 > linux.local.ncube-lm: P
1036309464:1036309500(36) ack 1029114099 win 32767 <nop,nop,timestamp 48887
47942> (DF)
0x0000
4500 0058 0115 4000 4006 3b87 7f00 0002
[email protected]@.;.....
0x0010
7f00 0002 8006 05f1 3dc4 d3d8 3d57 08f3
........=...=W..
0x0020
8018 7fff 14ef 0000 0101 080a 0000 bef7
................
0x0030
0000 bb46 0002 0000 0017 7365 6c65 6374
...F...... select
0x0040
202a 2066 726f 6d20 7379 7374 6162 6c65
.*.from.systable
0x0050
7300
s.
tcpdump: listening on lo
18:05:51.240489 linux.local.32776 > linux.local.ncube-lm: P
1086282302:1086282370(68) ack 1087587982 win 32767 <nop,nop,timestamp 54720
53782> (DF)
0x0000
4500 0078 0161 4000 4006 3b1b 7f00 0002
[email protected]@.;.....
0x0010
7f00 0002 8008 05f1 40bf 5a3e 40d3 468e
[email protected]>@.F.
0x0020
8018 7fff d23a 0000 0101 080a 0000 d5c0
.....:..........
0x0030
0000 d216 0300 0040 f776 319a 4b84 a1fb
[email protected]
0x0040
0cd5 b6e3 afe0 b67e d535 9fb7 b157 cb53
.......~.5...W.S
0x0050
6cd6
l.
Abb. 7: TCPDUMP Klartext / Chiffretext.
Der MAC Key wird wie der (Cipher) Key, der für die eigentliche
Verschlüsselung der Daten zuständig ist, ausgehandelt. Mit Hilfe
eines Shell Tools kann dieser manuell geändert werden.
($INFORMIXDIR/bin/GenMacKey)
Switch
Die Switch-Option gibt die Änderungshäufigkeit des Ciphers, also
des Verschlüsselungsalgorithmus und des MAC Keys, an. Der Wert
wird hierbei in Minuten angegeben.
Beispiel:
switch[ciphers:30,key:30]
ENCRYPT_CDR <0=keine Verschlüsselung, 1=wenn möglich nutze Verschlüsselung, 2=Verschlüsselung wird vorausgesetzt>, ENCRYPT_CIPHER,
ENCRYPT_MAC, ENCRYPT_MACFILE,
ENCRYPT_SWITCH).
In einer der nächsten ORDIX News Ausgaben werden wir Ihnen die externe Authentifizierung mittels PAM (Pluggable Authentication Method) vorstellen. Auch über Performance beim Einsatz dieser zusätzlichen Sicherheitsmodule werden wir an dieser Stelle
demnächst berichten.
Software-Voraussetzungen
Für den Einsatz der Network Encryption müssen folgende Softwareversionen installiert sein:
•
•
Server: >= IBM Informix Dynamic Server 9.40[U/F]C1
Client: >= Informix Client SDK/Connect 2.81 oder
>= JDBC 2.21JC5 (jedoch erst ab 9.40[U/F]C3
implementiert)
Haben wir Ihr Interesse geweckt? Dann steht
einer Migration auf den IBM Informix Dynamic
Server 9.40 wohl nichts mehr im Wege. Fragen Sie uns, wir helfen Ihnen gerne, den richtigen „Schlüssel“ zu finden!
Fazit
Die Implementierung der Network Encryption mittels des Communication Support Modules ermöglicht eine einfache Konfiguration. Der modulare Aufbau über die SQLHOSTS lässt verschlüsselte und unverschlüsselte Verbindungen auf denselben Datenbankserver zu.
Auch der gesamte Datenverkehr der Enterprise Replication (ER)
kann über eine sichere Verbindung replizieren (ONCONFIG:
42
Guido Saxler ([email protected]).
Unix/Linux/Open Source
ORDIX Kurzreferenz
Suchen und Ersetzen
Der
vi-Editor
/Zeichenfolge
?Zeichenfolge
n
N
www.ordix.de
Cursorpositionierung
l
h
w
W
b
B
e
E
^
0
$
k
j
+
H
M
L
<Strg>u
<Strg>d
<Strg>b
<Strg>f
}
{
nG
G
eine Position nach rechts
eine Position nach links
nächstes Wort oder Sonderzeichen
nächstes Wort
vorheriges Wort oder Sonderzeichen
vorheriges Wort
Ende des aktuellen oder nächsten Wortes oder Sonderzeichens
Ende des aktuellen oder nächsten Wortes
an den Anfang der Zeile (1. sichtbares Zeichen)
an den Anfang der Zeile (1. Zeichen)
an das Ende der Zeile
eine Zeile nach oben, gleiche Spalte
eine Zeile nach oben, zum 1. sichtbaren Zeichen
eine Zeile nach unten, gleiche Spalte
eine Zeile nach unten, zum 1. sichtbaren Zeichen
an den Anfang des Bildschirms
in die Mitte des Bildschirms
zur letzten Zeile des Bildschirms
Bildschirm um eine halbe Seite rückwärts
Bildschirm um eine halbe Seite vorwärts
vorherige Seite
nächste Seite
nächster Absatz
vorhergehender Absatz
zur Zeile n
an das Ende der Datei
Löschen, Sichern und Kopieren
dObjekt
:e+ datei
dw
dd
ndd
dG
D
x
nx
u
U
yObjekt
“ayObjekt
Y
“aY
nY
p
P
“ap
“ad
Objekt löschen
Editieren der angegebenen Datei; der Cursor steht
am Dateiende.
Wort löschen
Zeile löschen
ab Cursorposition n Zeilen löschen
Löschen ab der aktuellen Zeile bis zum Ende
Rest der Zeile löschen
Zeichen unter dem Cursor löschen
n Zeichen löschen
letzte Änderung aufheben
Änderungen in einer Zeile aufheben
Objekt im Arbeitspuffer sichern
Objekt im Puffer ‘a’ sichern
Zeile im Arbeitspuffer sichern
Zeile im Puffer ‘a’ sichern
n Zeilen ab aktueller Zeile sichern
gesicherten bzw. zuletzt gelöschten Text nach der
Cursorzeile einfügen
gesicherten bzw. zuletzt gelöschten Text vor der
Cursorzeile einfügen
gesicherten Text aus dem Puffer ‘a’ einfügen
Objekt löschen und im Puffer ‘a’ sichern
Zeichenfolge vorwärts suchen
Zeichenfolge rückwärts suchen
letztes Suchen wiederholen
letztes Suchen in umgekehrter Richtung
wiederholen
%
entsprechende Klammer ‘(..)’, ‘{..}’
oder ‘[..]’ suchen
:s/alt/neu/
die erste Zeichenfolge ‘alt’ in einer Zeile in
der Datei durch ‘neu’ ersetzen
:s/alt/neu/g
alle Zeichenfolgen ‘alt’ durch ‘neu’ in der aktuellen Zeile ersetzen
:1,$s/alt/neu/gc alle Zeichenfolgen ‘alt’ durch ‘neu’ ersetzen
mit Abfrage
Einfügen und Ersetzen
a
A
i
I
J
o
O
rx
R
cObjekt
C
s
S
.
>>
<<
<ESC>
nach dem Cursor einfügen
am Zeilenende einfügen
vor dem Cursor einfügen
am Zeilenanfang einfügen
nachfolgende Zeile an aktuelle anfügen
unter der aktuellen Zeile anfügen
über der aktuellen Zeile anfügen
einzelnes Zeichen durch ‘x’ ersetzen
Überschreibemodus bis Eingabe von <ESC>
Objekt ersetzen
restlichen Text in der Zeile ersetzen
Zeichen unter Cursor durch Eingabe
ersetzen
Zeile ersetzen
letzte Änderung wiederholen
Zeile nach rechts verschieben
Zeile nach links verschieben
Eingabemodus beenden
Dateimanipulation
vi datei(en)
ZZ
:w
:w datei
:w! datei
:q
:wq
:q!
:r datei
:r! kommando
:! kommando
:so datei
:e datei
:e!
:e+ datei
:e#
:e+n
:sh
:n
Editor aufrufen und erste Datei in den
Arbeitspuffer einlesen
Änderungen sichern und Editor verlassen
Änderungen sichern
Schreiben in die angegebene Datei
Überschreiben der angegebenen Datei
Dateibearbeitung beenden
Sichern und Dateibearbeitung beenden
Dateibearbeitung abbrechen;
Änderungen werden nicht gesichert
Einfügen der genannten Datei in die aktuelle Datei
Einfügen der Befehlsausgabe in die aktuelle Datei
Ausführen des angegebenen Unix Befehls
Befehle aus der angegebenen Datei ausführen
Editieren der angegebenen Datei
erneutes Einlesen der Datei ohne Berücksichtigung der vorgenommenen Änderungen
Editieren der angegebenen Datei Der
Cursor steht am Dateiende
Editieren der vorher bearbeiteten Datei
Editieren der Datei. Der Cursor steht auf
Zeile n
Start einer neuen Shell
Editieren der nächsten Datei aus der aufgerufenen Dateiliste
43
Datenbanken
... auf dass niemand
des anderen Sprache
verstehe
Übersetzung Genesis 11,7
„Wohlauf, lasst uns herniederfahren
und ihre Sprache daselbst verwirren,
dass keiner des andern Sprache
verstehe!“
(Genesis 11,7)
Oracle hat den (wirtschafts-)politischen Paradigmenwechsel in seiner Produktpolitik nachvollzogen. Betonte
bislang der Begriff National Language Support, dass Oracle weltweit einsetzbar ist, wird jetzt der Akzent
Globalisierung viel stärker fokussiert. Der folgende Artikel beschreibt, wie und wieweit Oracle das Arbeiten
in verschiedenen Sprachen und mit verschiedenen Zeichensystemen unterstützt und wie fehlende Möglichkeiten erweitert werden können.
Nahezu alle Zeichensätze verfügbar
Zum gegenwärtigen Zeitpunkt kann mit den Möglichkeiten der
Oracle-Datenbank jede sinnvoll denkbare Kombination von Sprachund Zeichensystemen abgebildet werden. Problematisch wird es,
wenn bereits eine Datenbank betrieben wird und nachträglich die
Notwendigkeit entsteht, auf ein anderes Zeichensystem bzw. ein
anderes Character Set zu migrieren.
Einsatzgebiete verschiedener Character
Sets
Da Umlaute oder akzentuierte Zeichen früher
kein Thema waren, arbeiten noch heute viele
ältere amerikanische Datenbanken mit ASCII,
das mit jeweils 7 Bit Breite für ein einzelnes Zeichen alle nötigen Zeichen abbildet. Insgesamt
128 Zeichen können so dargestellt werden.
Änderungen der Randbedingungen
Kulturelle oder politische Änderungen verlangen beispielsweise,
den bislang genutzten Zeichensatz auszuweiten, wie etwa die €Einführung, oder die Zusammenarbeit mit Menschen oder Firmen
jenseits des Horizonts der lateinischen Schrift (z. B. Russland, die
arabischen Staaten, aber auch das neue EU-Mitglied Zypern) stellt
neue Anforderungen an die „Sprachmächtigkeit“ der Datenbank.
Dann wird es sehr schnell nötig, Daten unterschiedlicher Sprachen zu speichern, die bei der Erstellung der Datenbank noch
nicht vorgesehen waren und die das bei der Installation gewählte
Character Set möglicherweise nicht abbilden kann.
Die heutigen, darüber hinausgehenden Anforderungen der europäischen Sprachen, z. B.
akzentuierte Buchstaben, führten zu einigen
Character Sets, die mit 8 Bit Breite alle nötigen
Zeichen (insgesamt 256) der verschiedenen
europäischen Sprachen abbilden – die von
ASCII abgebildeten Zeichen als Untermenge
(Sub Set).
Multi Byte Character Sets
Die silbenorientierte Welt der asiatischen Sprachen ist mit den Möglichkeiten eines 1 Byte
breiten Zeichensatzes nicht mehr abzubilden
und führte zur Entstehung der Multi Byte Character Sets, die wiederum als Untermenge
ASCII mit abbilden.
Die Auswahl des Character Sets bildete bei
der Erstellung der Datenbanken immer das
möglichst beste Mittel zwischen Vielfalt der
Darstellung und Performance: ein Single Byte
Character ist natürlich schneller verarbeitet als
ein Character, der mehrere Byte groß ist.
Abb. 1: Probleme der Zeichenauflösung.
44
Sollen verschiedene Datenbanken zusammenarbeiten, die mit unterschiedlichen Character
Sets installiert wurden, wäre die Migration auf
ein Character Set notwendig, das alle Zeichen
der zuvor verwendeten Zeichensätze enthält,
also für diese Zeichensätze ein Super Set darstellt.
Datenbanken
Auswahl des richtigen Character Sets
Es gibt bei der Vielfalt der Character Sets immer verschiedene Möglichkeiten. Wenn aber
die Migration durchgeführt wird, sollte so entschieden werden, dass mit dieser Migration
auch zukünftige Entwicklungen und mögliche
Anforderungen weitgehend abgebildet werden
können. Wenn also in Aussicht steht, dass weitere Sprachen unterstützt werden sollen, sollten diese möglichst schon im ausgewählten
Character Set vorhanden sein.
Exkurs: à la Recherche du € perdu
Single Byte Character Sets bieten bessere Performance und brauchen weniger Speicherplatz
als Multi Byte Character Sets, begrenzen aber
die Anzahl der verfügbaren Zeichen und damit die Bandbreite der zur Verfügung stehenden Sprachen.
Wenn bei einer Abfrage das Character Set der Datenbank und das des Client nicht identisch sind, konvertiert
Oracle die Zeichen in die passenden Werte. Deshalb
muss in der Registry-Variable in HKEY_LOCAL_MACHINE\
SOFTWARE \ORACLE\NLS_LANG unter Windows 2000
und unter Unix in der Umgebungsvariable NLS_LANG
das Character Set des Client-Rechners eingetragen sein
- für Windows-Rechner ist das zumeist WE8MSWIN1252.
Konvertierungen
Zu bedenken ist auch, dass es bei Clients mit
verschiedenen Character Sets zu Konvertierungen kommen kann. Da eine solche Konvertierung Performance kostet, sollten bei
solchen Konstellationen möglichst Character
Sets ausgewählt werden, die solche Konvertierungen unnötig machen und die effektivste
Verschlüsselung für alle genutzten Sprachen
oder Zeichensätze bieten. Deshalb sollte ein
Character Set gewählt werden, das den Anforderungen der verschiedenen Clients möglichst
ohne Konvertierung begegnet.
Zudem sollte das Character Set Super Set für
die vorher genutzten Character Sets sein, also
für jedes Zeichen ein Äquivalent bieten. Ansonsten besteht die Gefahr des Datenverlustes. Das Character Set der Datenbank sollte
möglichst für alle von den Clients verwendeten Character Sets Super Set sein.
Wird nur ein Teil der Zeichen eines Character
Sets eines Clients genutzt, sollte dieser Teil im
Character Set der Datenbank abgebildet sein.
Insbesondere dann, wenn z. B. die Character
Sets sehr ähnlich sind, wie WE8MSWIN1252
und WE8ISO8859P1.
Wenn man das €-Symbol nicht braucht, kann
ohne Datenverlust von WE8MSWIN1252 zu
WE8ISO8859P1 konvertiert werden. Jedes
nicht in WE8ISO8859P1 verfügbare Zeichen
konvertiert Oracle in ein Ersatzzeichen (siehe nebenstehender Exkurs).
Wenn alle Clients das gleiche Character Set
nutzen, ist dieses Character Set oder ein entsprechendes Super Set die beste Wahl. Für
Clients mit verschiedenen Character Sets soll
Das Character Set, das Oracle verwendet, ist unabhängig vom Betriebssystem, auf dem die Datenbank läuft.
Eine Oracle-Datenbank, die von einem russischen Client
angesprochen wird, kann auf einem rein englischen Windows laufen: die Globalisierung liefert Oracle intern. Nur
das Betriebssystem, auf dem der Client läuft, muss Kyrillisch „können“ – d. h. mit einer entsprechenden Codepage des Betriebssystems diese Sprache unterstützen.
Falscheintrag
Ein falscher Eintrag in dieser Variable kann zu erheblichen Darstellungsproblemen führen (siehe Abb. 1):
In unserem Beispiel arbeitet die Datenbank mit dem Character Set WE8ISO8859P1, das kein €-Zeichen enthält.
Der Client, für den in die NLS_LANG-Variable fälschlich
WE8ISO8859P1 eingegeben wurde, um scheinbar der
Datenbank zu genügen, läuft auf NT. Vom Client aus wird
€ in die Datenbank eingegeben. Da bei Client und Server
die Character Sets gleich sind, findet keine Konvertierung
statt.
Zeichen, die nicht im Character Set enthalten sind, ersetzt Oracle mit einem Ersatzzeichen, HEX 80. Wenn der
Client den Inhalt der entsprechenden Zelle wieder ausliest, wird wiederum nicht konvertiert, der Client erhält HEX
80 zurück und löst es zu € auf.
Ein anderer Client, auch unter NT, ist mit WE8ISO8859P15
oder WE8MSWIN1252 konfiguriert, weil er damit die Microsoft Code Pages den Anforderungen entsprechend nutzen kann. Beide enthalten das €-Zeichen.
Er fragt den Inhalt der Zelle ab, der Wert HEX 80 wird in
diesem Fall konvertiert, und der Client stellt das Zeichen
š dar. Obwohl der P1-Client scheinbar mit € arbeiten konnte, kommt dieses Zeichen in der Datenbank nicht vor: Bei
systemübergreifendem Arbeiten kommt es somit zu Inkonsistenzen.
Die Clients müssen also passend zu ihrer Betriebssystemumgebung und den damit zusammenhängenden
Code Pages konfiguriert werden, damit die sachgemäße
Konvertierung beim Eingeben, Ändern oder Lesen von Daten stattfinden kann.
45
Datenbanken
te das neue Character Set für alle schon vorhandenen Super Set
sein.
•
Ändert sich der Code des Characters in
dieser Zeile, wenn die Datenbank auf ein
neues Character Set umgestellt wird?
•
Kann die Datenzeile erfolgreich in das
neue Character Set konvertiert werden?
•
Passen die Daten nach der Konvertierung
in die gegenwärtige Größe der Spalte?
UNICODE als neues Character Set
Wenn in einer Oracle-Datenbank mit Daten aus verschiedenen
Sprach- und Zeichensystemen gearbeitet wird, empfiehlt Oracle
als Character Set UNICODE.
UNICODE ist ein universales Character Set, in dem die Zeichen jeder
Sprache abgebildet sind. Für jedes
Zeichen bietet UNICODE einen eindeutig zugeordneten, binären Wert
in verschiedenen Längen – also zum
Teil Single Byte, zum Teil Multi Byte.
In einer Datenbank mit dem Character Set UNICODE können Daten in
den verschiedensten Sprachen vorgehalten, verarbeitet und von verschiedensprachigen Clients abgefragt werden.
Die jeweils neueste Version von CSSCAN
kann im Oracle technet für die entsprechende Plattform heruntergeladen werden.
CSSCAN benötigt das Schema CMIG in der
Datenbank. Dafür liefert Oracle das Skript
cminst.sql. Nach erfolgreichem Durchlaufen
des Skriptes sind die Voraussetzungen für
einen Einsatz von CSSCAN gegeben.
CSSCAN kann auf drei verschiedene Arten
aufgerufen werden:
•
UNICODE bildet für alle in Oracle möglichen Character Sets ein
Super Set und ist damit für Globalisierung oder Konsolidierung
verschiedener Datenbanken eine sinnvolle Wahl.
•
•
Angabe einer Parameter-Datei, die alle
Optionen beinhaltet
In der Kommandozeile mit allen nötigen
Parametern
Interaktiv
Performance
Hinsichtlich der Performance gibt Oracle als ungefähre Größe einen Overhead von 10 % gegenüber einer Datenbank mit einem
Single Byte Character Set an. Das kann abhängig von der Art und
Anzahl der SQL-Funktionen, die den Datenbankbetrieb ausmachen, noch ansteigen.
Sollen verschiedene Zeichensätze, vor allem auch aus dem asiatischen Sprachraum, abgedeckt werden, gibt es zu UNICODE aber
wohl keine Alternative.
Wenn nicht alle Daten in UNICODE gespeichert werden sollen,
bietet Oracle mit dem NCHAR-Datentyp ab Oracle 9i die Möglichkeit, nur ausgewählte Daten als UNICODE zu speichern.
Wenn nur bestimmte Spalten UNICODE als Character Set benötigen, können diese Spalten mit ALTER TABLE MODIFY COLUMN
von CHAR auf NCHAR geändert werden. Das wäre ein sinnvoller
Kompromiss zwischen Performance und Breite der Darstellungsmöglichkeiten.
Mit CSSCAN mögliche Migrationsauswirkungen testen
Mit dem Character Set Scanner (CSSCAN) liefert Oracle ein Programm, mit dessen Hilfe die Auswirkungen einer Änderung des
Character Sets einer Datenbank prognostiziert werden können.
CSSCAN bietet die Möglichkeiten, die komplette Datenbank, ein
Schema oder einzelne Tabellen zu scannen.
Der Scanner liest für den vorgegebenen Bereich alle Daten mit
der Eigenschaft „character“ und testet jede Datenzeile auf die folgenden Bedingungen:
46
Der folgende Kommandozeilenaufruf testet
die Tabelle books auf die Auswirkungen einer
Migration von US7ASCII zu WE8ISO8859P15.
Wenn der Parameter fromchar nicht angegeben wird, wird als Default der Character Set
der Datenbank angenommen:
csscan system/**** \
table=books \
fromchar=US7ASCII \
tochar=WE8ISO8859P15 \
array=40960 process=1
Das Character Set der Datenbank kann mit
der Abfrage
SELECT * FROM sys.props$
WHERE name LIKE ‘NLS%’;
ausgelesen werden.
Die Ergebnisse der Simulation gibt Oracle in
Dateien aus. Die wichtigsten Details enthält
scan.txt:
[Scan Summary]
All character type application data
remain the same in the new character set
Dieses Ergebnis bedeutet, dass durch die
Migration des Character Sets keine Daten
geändert werden. In diesem Fall sollte die
Migration problemlos mit dem Kommando
ALTER DATABASE CHARACTER SET durchgeführt werden können.
Datenbanken
Gibt CSSCAN den folgenden Satz aus:
[Scan Summary]
Some character type application data
are not convertible to the new character set
ist damit zu rechnen, dass es bei einer Migration des Character Sets zu Problemen kommen wird. Der CSSCAN teilt die Daten in 4
verschiedene Kategorien ein:
•
•
•
•
Changeless
Convertible
Truncation
Data Loss
Die Länge der Datentypen VARCHAR2 und CHAR wird in Bytes
angegeben, bei Multi Byte Character ist das nicht die Anzahl der
Zeichen. Ändert sich durch die Veränderung die Länge eines Zeichens (siehe Abbildung 2), gehen in der Datenbank gespeicherte
Werte mit ihrem Speicherbedarf über das hinaus, was der definierte Datentyp einer Tabelle gestattet.
Stellt CSSCAN solche Probleme fest, müssen vor der Änderung
des Character Sets die Spaltenbreiten für die betroffenen Bereiche verändert werden, da sonst ein Datenverlust eintritt. Ab Oracle
9i bestehen zwei alternative Möglichkeiten, die Längendefinition
für eine Spalte zu definieren:
1. mit byte semantics, also einer festen Anzahl von Bytes, oder
2. dynamisch mit character semantics und damit einer Anzahl
von Zeichen gleich welcher Länge.
Changeless
Data Loss
Daten, die durch die Migration nicht verändert
werden, werden als Changeless (Daten ohne
Veränderung) bezeichnet. Die binäre Repräsentation bleibt die gleiche. Das ist dann der
Fall, wenn das alte Character Set hinsichtlich
der vorhandenen Zeichen und den ihnen zugeordneten binären Werten Sub Set des neuen Character Sets ist. Das ist der ideale Ausgangspunkt einer Migration.
Convertible
Convertible umfasst die Menge der Daten, für
die es eine eindeutige Konvertierung gibt und
die deshalb bei einer Migration erfolgreich konvertiert werden können. Convertible ist zum Beispiel der Buchstabe ‘A’, wenn er in US7ASCII
mit 0x41 repräsentiert wird und nach der Migration in WE8EBCDIC37C mit 0xc1. Alle Zeichen des alten Character Sets sind auch im
neuen enthalten, wenn auch nicht mit der gleichen Zuordnung der binären Werte: ein logisches Sub Set.
Truncation
tritt dann ein, wenn es keinen gleichen Buchstaben nach der Migration gibt. Kann ein Zeichen nicht ersetzt werden, tritt ein DefaultZeichen an seine Stelle. Nach der Migration ist es dann unmöglich, die verschiedenen, nicht konvertierten Zeichen aus einem
Default-Character zu konvertieren.
Wenn CSSCAN diesen Fall meldet, ist eine manuelle Änderung
in der Datenbank unumgänglich.
Aus diesem Grund sollte das Ziel-Character Set immer ein binäres oder logisches Super Set des Ausgangs-Character Sets sein.
Andernfalls werden die im Ziel-Character Set nicht verfügbaren
Zeichen von Oracle zu Ersatzzeichen konvertiert, etwa „?“, „¿“ o.
ä. Aus diesem Grund empfiehlt Oracle immer wieder die Migration zu UNICODE, da UTF8 Super Set für die meisten gebräuchlichen Character Sets ist.
Fazit
Gerade „historisch gewachsene“ Oracle-Datenbanken sollten überprüft werden, ob das bei der Installation gewählte Character Set
noch den Anforderungen entspricht. Das Werkzeug CSSCAN erlaubt es, durch Simulation mögliche Probleme einer Migration des
Character Sets im Vorfeld zu erkennen.
Truncation tritt dann auf, wenn nach der Migration die Spalte nicht breit genug ist, um die
Daten der Zelle aufzunehmen. Etwa nach der
Migration von einem Character Set mit Single
Byte zu UNICODE, bei der sich die Zeichen
von einem auf zwei oder mehr Byte ausdehnen. Hier muss eine Vergrößerung der Spalten vorgenommen werden, ansonsten gehen
Daten verloren.
Char
WE8MSWIN1252
UTF8
ä
ö
©
€
E4
F6
A9
80
C3 A4
C3 B6
C2 A9
E2 82 AC
Abb. 2: Größenveränderung von Zeichen.
Uwe Rübesamen ([email protected]).
47
Herunterladen