Zur Arbeit mit DB2 in der Arbeitsgruppe Technologie der

Werbung
Zur Arbeit mit DB2 in der Arbeitsgruppe
Technologie der Informationssysteme
Die SQL-Aufgaben, die in den Übungen zu den Vorlesungen der Arbeitsgruppe bearbeitet
werden, können (und sollten auch) anhand einer realen Datenbank ausprobiert werden. Für
diese Übung verwenden wir das Datenbankmanagementsystem DB2 Universal Database in
der Version 10.1 und verschiedene Datenbanken, z.B. die Datenbank UEBUNG.
Der Zugriff auf diese Datenbank ist auf verschiedene Art und Weise möglich. In der Übung
werden Accounts verteilt. Jeder Account besteht aus einem Nutzerkennzeichen der Form
GEPV;; (wobei ;; eine zweistellige Nummer darstellt) und einem Passwort. Mit diesem
Account kann man nicht nur auf die Datenbankschnittstelle zugreifen, sondern sich auch auf
den Servern der Arbeitsgruppe anmelden und die dort installierte Software nutzen.
1 Webschnittstelle
Eine Zugriffsmöglichkeit wird über eine WWW-Datenbankschnittstelle unter der Adresse
KWWSVZZZLVLQIRUPDWLNXQLNLHOGHGEV realisiert. Die Datenbankschnittstelle ist von
jedem Rechner mit Internetanschluss aus verfügbar.
Nach Aufruf der Adresse KWWSVZZZLVLQIRUPDWLNXQLNLHOGHGEV im Browser
erscheint zunächst ein Login-Formular. Hier gibt man die Daten seines Accounts ein.
Wichtig ist die Auswahl des zu verwendenden Datenbankschemas.
Jeder Account arbeitet auf einer eigenen Kopie der Daten, so dass sich das Einfügen und
Löschen von Daten und Tabellen nicht auf andere Studenten auswirkt.
Nach dem erfolgreichen Anmelden befindet man sich im Hauptmenü, siehe . Es stehen
folgende Funktionen zur Verfügung:
„Neues Statement“: Eingabe von SQL-Anweisungen
„Anzeige aller Tabellen“: Alle Tabellen und Sichten, die momentan in der Datenbank
vorhanden sind, werden inkl. der Daten angezeigt.
• „logout“: Rückkehr zum Login-Formular
• „[Schema] wiederherstellen“: Falls Daten geändert/gelöscht werden, dann kann durch
Drücken dieses Buttons die Datenbank wieder in ihren ursprünglichen Zustand versetzt
werden. Nach dem ersten Anmelden kann man sich durch Drücken dieses Buttons die
Tabellen anlegen lassen.
Falls der Browser zu restriktiv eingestellt ist und nur absolut sichere Serverzertifikate zulässt,
ist der Zugriff auch über https://merkur-db2.is.informatik.uni-kiel.de:8075/dbs möglich.
•
•
1.1 SQL-Anweisung
Durch Drücken des „Abschicken“-Buttons im Bereich „Neues Statement“ wird die Anweisung
ausgeführt und das Ergebnis angezeigt. Bei falschen Eingaben wird die Fehlermeldung des
DBMS angezeigt. Das Webinterface nimmt keine Interpretation der Fehlermeldung vor, die
Daten werden so angezeigt, wie sie vom DBMS gemeldet werden. Nicht immer sind diese
Fehlermeldungen hilfreich. Unter Umständen ist in den im WWW verfügbaren Handbüchern
nach dem Fehlercode zu suchen. Innerhalb des Eingabebereichs kann die SQL-Anweisung
beliebig durch Einrückungen und Zeilenumbrüche formatiert werden.
Hinweis: Schließen Sie die SQL-Anweisung nicht mit einem Semikolon ab. Auch wenn DB2
in dieser Beziehung kulant ist, kann ein Semikolon Probleme verursachen. Das Webinterface
ist darauf ausgelegt, immer genau ein SQL-Statement zu bearbeiten.
2 Arbeit im Rechnerraum HRS3 R409
Es stehen in der HRS3 R409 Clients für die Arbeit mit DBs zur Verfügung. Nach dem
Einschalten des Rechners öffnet man eine Remote-Verbindung mit dem Programm X2Go
Client zum zentralen Terminalserver jupiter der Arbeitsgruppe. Die Login-Daten sind die des
dbms-Accounts.
Sie finden auf dem Desktop unter „Applications/IBM Data Studio“ einen Shortcut „Data
Studio Client“. Nach dem Starten der Steuerzentrale kann eine Datenbankverbindung zum
DB2-Server merkur-db2 eingerichtet werden (mehr dazu im Anhang).
Sie können hier einzelne sowie mehrere durch Semikolon getrennte SQL-Statements absetzen.
Vergessen Sie nicht, diese Statements in einer eigenen Datei zu sammeln. Die erstellten
Dateien können Sie in Ihrem GEPV;;-Account hinterlegen. Für einen Datei-Manager gehen
Sie auf „Places/Home Folder“.
3 Ändern des Passworts
DB2 delegiert die Authentifizierung des Nutzers an das Betriebssystem. Aus diesem Grund
steht per Weboberfläche keine direkte Funktion zum Ändern des Passworts bereit. Wer sein
Passwort ändern möchte, meldet sich bitte auf einem der Server der Arbeitsgruppe an und nutzt
das Kommando SDVVZG zum Ändern des Passworts. Das Anmelden kann entweder lokal im
Raum 409 über PuTTY auf dem TerminalClients oder über 66+ aus der Ferne erfolgen:
VVKGEPV;;#HULVLVLQIRUPDWLNXQLNLHOGH
Notwendig ist ein 66+-Client; unter Windows z.B. PuTTY oder OpenSSH über Cygwin oder
Bitvise Tunnelier. Diese 66+-Clients bringen ebenfalls einen 6)73-Client für die
Übertragung von Dateien zu den Servern der Arbeitsgruppe mit.
4 Direkter Datenbankzugriff
Das Ausführen von SQL-Skripten kann direkt mit den Kommandozeilentools von DB2
erfolgen. Melden Sie sich dazu auf dem Server PHUNXUGE an. Falls Sie von zuhause aus
arbeiten, wählen Sie sich zunächst auf dem Server HULVLVLQIRUPDWLNXQLNLHOGH ein und von
dort auf dem Server PHUNXUGE:
VVKGEPV;;#HULVLVLQIRUPDWLNXQLNLHOGH
VVKGEPV;;#PHUNXUGE
Auf PHUNXUGEstarten Sie die DB2-Kommandozeile durch Eingabe von GEW. Falls dies zu
einem Fehler führt, melden Sie sich bitte beim Administrator der Arbeitsgruppe (R 411), damit
dieser ihre Konfiguration prüfen kann.
Nach Eingabe von GEW befinden Sie sich im interaktiven Modus der DB2- Kommandozeile.
Mit Hilfe des FRQQHFWWR-Befehls verbinden Sie sich zu einer Datenbank.
FRQQHFWWR8(%81*
verbindet Sie mit der Datenbank 8(%81*. Nachdem die Verbindung erfolgreich hergestellt
wurde, können Sie ihre SQL-Befehle eingeben. Schließen Sie jedes Statement mit einem
Semikolon ab. Eine Anfrage, die immer funktioniert, ist z.B.
VHOHFWIURP6<6,%06<6'800<
Sie beenden die Verbindung, indem Sie
WHUPLQDWH
eingeben. Danach befinden Sie sich wieder in der normalen Shell. Wer ein SQL-Skript
ausführen will (z.B. die Datei VNULSWVTO), kann in der Shell folgendes Kommando eingeben:
GEWIVNULSWVTO
Mittels der Anweisung
GEWIVNULSWVTO!RXWW[W
werden alle bei der Ausführung des Skriptes anfallenden Meldungen in der Datei RXWW[W
gespeichert.
Das Skript sollte die FRQQHFWWR- und WHUPLQDWH-Anweisungen enthalten.
Im Folgenden sei der Aufbau des Skriptes VNULSWVTO beispielhaft dargestellt.
9HUELQGXQJ]XP'%6FKHPD
FRQQHFWWR8(%81*
$EVHW]HQYRQ64/6WDWHPHQWV
VHOHFWIURP6<6,%06<6'800<
7UHQQHQGHU9HUELQGXQJ
WHUPLQDWH
Wenn das Skript diese Anweisungen nicht enthält, kann man auch Folgendes in der Shell
eingeben (angenommen, man möchte in der Datenbank 8(%81* arbeiten):
GEFRQQHFWWR8(%81*
GEWIVNULSWVTO
GEWHUPLQDWH
Hinweis: DB2 ist allergisch gegen Textdateien, die unter Windows erstellt wurden und
dadurch eine Windows-Zeilenendekennung besitzen. Falls das Skript unter Windows erzeugt
wurde, sollte die Datei vor Aufruf der Befehle konvertiert werden:
GRVXQL[VNULSWVTO!VNULSWVTOXQL[
Anschließend wird mit VNULSWVTOXQL[ weitergearbeitet.
5 Arbeit mit lokaler Datenbankverbindung
Wer von zuhause aus mit DB-Entwurfstools arbeiten möchte, kann auch eine direkte
Verbindung zum DBMS herstellen. Da sich jedoch PHUNXUGE im abgesicherten Bereich der
Arbeitsgruppe befindet, ist ein „Umweg“ notwendig, um eine Verbindung aus dem WWW
heraus aufzubauen. Dazu verwendet man HULVLVLQIRUPDWLNXQLNLHOGH als „Tor“ zu dem
internen Netzwerk der Arbeitsgruppe und baut über diesen einen SSH-„Tunnel“ zwischen dem
eigenen Rechner und PHUNXUGE auf. Die Arbeitsweise des dann aufgebauten SSH-Tunnels
wird durch Abbildung 2 veranschaulicht.
Abbildung 2: Workflow mit einem SSH-Tunnel
Anfragen, die an das DBMS gerichtet werden sollten, werden bei erfolgreich aufgebautem
Tunnel an ORFDOKRVW gestellt (z.B. an Port 50000). Der SSH-Dienst nimmt diese entgegen,
leitet sie an HULVLVLQIRUPDWLNXQLNLHOGH weiter, der sie seinerseits an PHUNXUGE, Port
50000 weiterleitet, wo sie von dem DBMS entgegengenommen und weiterverarbeitet werden
können. Dieser Vorgang kann etwa als die Weiterleitung eines lokalen Ports an dem Port eines
entfernten Rechners (in diesem Fall PHUNXUGE) illustriert werden.
Hinweis: Der Port des lokalen Rechners muss nicht zwangsläufig 50000 sein; diesen kann
jeder je nach geltenden Sicherheitsrichtlinien selbst wählen. Aber der Port 50000 von PHUNXU
GE ist zwingend, da dieser der Port ist, an dem das DBMS „lauscht“.
Der generische SSH-Befehl zum Aufbauen eines SSH-Tunnels ist dann
VVK/SRUW!PHUNXUGEGEPV;;#HULVLVLQIRUPDWLNXQLNLHOGH
wobei SRUW! mit dem gewünschten lokalen Port zu ersetzen ist. Je nach Gegebenheiten, wie
z.B. verwendeter „Tunnel-Client“, Betriebssystem oder Sicherheitsfreigaben, kann der obige
Befehl geändert werden.
5.1 JDBC
Wer per JDBC auf die Datenbanken zugreifen möchte, benutzt bitte den DB2-JCC-Treiber.
Der „alte“ Treiber (GEMDYD]LS) ist nicht mit dieser DB2-Version kompatibel.
An dieser Stelle sei nochmals hingewiesen, dass zurzeit die Verbindung mit PHUNXUGE nur
indirekt über einen SSH-Tunnel geschehen kann. Zu diesem Zweck ist, nach erfolgreichem
Tunnel-Aufbau, die JDBC-Verbindungsurl entsprechend zu setzen:
MGEFGEORFDOKRVWSRUW!GDWDEDVH!SDUDPHWHU!
wobei SRUW! der lokale, an PHUNXUGE „weitergeleitete“ Port ist, GDWDEDVH! der Name
der gewünschten Datenbank und SDUDPHWHU! die Verbindungsparameter, wie z.B.
Benutzer-name und Passwort. Für eine ausführliche Einführung in JDBC sei hiermit auf
http://www.is.informatik.uni-kiel.de/~fiedler/teaching/ss2007/dbs1/JDBC.pdf
verwiesen.
5.2 DB2 Server Client
Werkzeuge zum Abfragen von DB2-Datenbanken, Anzeigen von Ausführungsplänen etc.
werden von IBM zur Verfügung gestellt und können auf Ihrem privaten Rechner installiert
und benutzt werden. Dazu ist die DB2-Client-Software unter
!"#$!%&$'&()*+*&,-%',+,))'-,"&
herunterzuladen und zu installieren. Laden Sie von der oben genannten Seite das IBM Data
Studio herunter.
Für die Client-Installation werden Administrator-Rechte benötigt.
Nach erfolgreicher Installation des DB2-Clients ist dieser mit dem Datenbanksystem am
Lehrstuhl zu verbinden. Der im Folgenden beschriebene Weg dafür ist sicherlich nicht der
Einzige, doch er ist intuitiv und führt mit wenig Aufwand zum Erfolg.
1. Die erfolgreiche Benutzung einer Datenbank durch den DB2-Client setzt voraus, dass
diese erst „katalogisiert“ wird. Dazu muss dem Client mitgeteilt werden, wo die Datenbank zu finden ist. Dazu
a. Bauen Sie bitte einen SSH-Tunnel wie oben beschrieben auf und vergewissern
Sie sich, dass dieser ordnungsmäßig funktioniert.
b. Teilen Sie dem Client mit, welchen DB2-Server Sie benutzen möchten und wo
sich dieser befindet – siehe Anhang.
Dabei bezeichnet SRUW! wieder den lokalen Port, der durch den SSH-Tunnel
an PHUNXUGE weitergeleitet wird und <host> der localhost.
Sind alle DB2-Server (als Knoten) und alle DB2-Datenbanken, die Sie verwenden möchten,
angebunden, so brauchen Sie vor jeder Benutzung der Datenbanken nur noch einen SSHTunnel mit PHUNXUGE aufzubauen und die graphische Oberfläche des DB2-Clients zu
starten.
6 Hilfe, ich kann nicht auf die Datenbank zugreifen!
Wo gehobelt wird, da fallen Späne - dies gilt auch für den Übungsbetrieb. Die große Anzahl an
relativ unerfahrenen Benutzern ist eine große Herausforderung für jedes System. Der Rundum-die-Uhr-Zugriff auf die Server der Arbeitsgruppe über ein Webinterface wurde eingeführt,
um die Übungen angenehmer und effizienter zu gestalten. Ein echter 24/7-Betrieb bindet aber
personelle und finanzielle Ressourcen, die sich für den Übungsbetrieb nicht rechtfertigen
lassen. Außerdem würden einige Anfragen, die von Studenten aus Unwissenheit an die
Systeme gestellt werden, im realen Produktivbetrieb als „Angriff“ gewertet werden. Deshalb
kann es immer wieder zu Systemausfällen kommen. Um einen vernünftigen Übungsbetrieb
sicherzustellen, sollte deshalb Folgendes beachtet werden:
1. Seien Sie auf Systemausfälle gefasst! Lösen Sie ihre Übungsaufgaben nicht erst 5 min
vor dem Abgabetermin, sondern nutzen Sie die gesamte Bearbeitungszeit.
2. Support von Seiten der Arbeitsgruppe wird nur während der üblichen Dienstzeiten
gewährt.
3. Wer unsicher im Umgang mit SQL und/oder Linux-Systemen ist, sollte seine Aufgaben
während der üblichen Dienstzeiten im Rechnerraum der Arbeitsgruppe (HRS3, Raum
409) erledigen.
Wenn Ihnen einmal ein Fehler passiert (der zu einem Ausfall führt) oder Sie einen
Systemausfall bemerken, dann benachrichtigen Sie den Administrator der Arbeitsgruppe
(Steffen Gaede) und ihren Übungsleiter mit einer E-Mail an GEV#LVLQIRUPDWLNXQLNLHOGH
Wir werden uns um das Problem kümmern. Keiner muss Angst haben, dass Bedienfehler
negativ angerechnet werden. Es ist schlimmer, ein Problem zu vertuschen.
Wichtig: „Nichts geht mehr“ ist keine vernünftige Fehlermeldung. Versuchen Sie, das
konkrete Problem zu identifizieren. Dadurch sorgen Sie dafür, dass es schneller behoben wird.
Versuchen Sie folgendes und schildern Sie bei ihrer Fehlermeldung ihre Erkenntnisse. Nennen
Sie bitte jedes mal unbedingt Ihren Account.
a) Können Sie sich per Webschnittstelle zu einer der anderen Datenbanken verbinden?
b) Falls das Webinterface überhaupt nicht erreichbar ist: können Sie sich per VVK auf
HULVLVLQIRUPDWLNXQLNLHOGH anmelden?
VVKGEPV;;#HULVLVLQIRUPDWLNXQLNLHOGH
L Wenn nicht: welche Ausgabe erzeugen folgende Befehle:
SLQJHULVLVLQIRUPDWLNXQLNLHOGH
.
LL
/
SLQJZZZJRRJOHGH
Wenn ja: versuchen Sie mit den Kommandozeilentools zu arbeiten:
VVKGEPV;;#PHUNXUGE
GEW
FRQQHFWWR8(%81*
VHOHFWIURP6<6,%06<6'800<
WHUPLQDWH
Kommen Fehlermeldungen?
7 Anhang – Einrichtung Datenbankverbindung im Data Studio
Zur Einrichtung einer Datenbankverbindung zum DB2-Server über das Data Studio klicken
Sie zunächst auf „Neue Verbindung zu Einer Datenbank“
In den Verbindungsparametern wählen Sie DB2 für Linux, Unix und Windows, in den
Eigenschaften die Datenbank, den Server merkur-db2 und Ihren dbmsXX-Account und das
dazugehörige Kennwort.
0
Wenn die Verbindung erfolgreich mit „Verbindung testen“ war, klicken Sie auf „Fertig
stellen“. Im nächstem Schritt ändern Sie die Aktivität von „Datenbanken verwalten“ auf „SQL
ausführen“:
Zunächst stellen Sie eine Verbindung zu Ihrem Datenbankprofil her
Klicken Sie auf „Fertigstellen“, nach Auswahl des richtigen Profils.
12
Nun können im Editor einzelne oder mehrere Befehle eingegeben werden. Zum Abschluß den
Play-Button drücken.
Die Rückantworten tauchen zu jeder Anweisung in Register „Status“ auf, und falls eine
Ergebnismenge zurückgegeben wurde, taucht zu der Anweisung ein Register „Ergebnis“ auf.
Mehr Fragen zum Data Studio, werden im IBM Blog zum Data Studio unter
„https://www.ibm.com/developerworks/community/blogs/59a36a54-50c8-4de0-a587ec9eb47ceb5f?lang=en“ beantwortet.
11
Herunterladen