Zur Arbeit mit DB2 in der Arbeitsgruppe Technologie der

Transcription

Zur Arbeit mit DB2 in der Arbeitsgruppe Technologie der
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
Datenbank UEBUNG.
in der Version 9.1 und verschiedene Datenbanken, z.B. die
Der Zugri 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
dbmsXX
(wobei
XX
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 Zugrismöglichkeit wird über eine WWW-Datenbankschnittstelle unter der
Adresse
https://elara.is.informatik.uni-kiel.de:8075/dbs realisiert. Die Da-
tenbankschnittstelle ist von jedem Rechner mit Internetanschluss aus verfügbar.
Nach Aufruf der Adresse
https://elara.is.informatik.uni-kiel.de:8075/dbs
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 bendet man sich im Hauptmenü, siehe Abbildung 1. 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
Abbildung 1: Das Hauptmenü
•
[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.
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
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 önet man eine Remote Desktop-Verbindung
(RDP) zum zentralen Terminalserver der Arbeitsgruppe. Der beim RDP-Client hinterlegte Login ist hier zu verwenden.
Sie nden auf dem Desktop einen Shortcut DB2-Steuerzentrale. Nachdem Starten der Steuerzentrale und der Auswahl des zu verwendenden Schemas werden Sie
aufgefordert, die Daten Ihres dbmsXX-Logins einzugeben.
Sie können hier einzelne sowie mehrere durch Semikolon getrennte SQL-Statements
absetzen. Vergessen Sie nicht, diese Statements in einer eigenen Datei zu sammeln.
Mittels des vorhandenen Programmes SFTP können Sie die erstellten Dateien in
Ihrem dbms-Account hinterlegen.
Der anzusprechende Server ist
eris.is.informatik.uni-kiel.de.
3 Ändern des Passworts
DB2 delegiert die Authentizierung des Nutzers an das Betriebssystem. Aus diesem
Grund steht per Weboberä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
passwd zum Ändern des Passworts. Das
Anmelden kann entweder lokal im Raum 409 oder über ssh erfolgen:
ssh dbmsXX@eris.is.informatik.uni-kiel.de
Notwendig ist ein ssh-Client; unter Windows z.B. PuTTY oder OpenSSH über
Cygwin oder Bitvise Tunnelier.
Diese ssh-Clients bringen ebenfalls einen sftp-Client für die Übertragung von Dateien zu den Servern der Arbeitsgruppe mit.
4 Direkter Datenbankzugri
Das Ausführen von SQL-Skripten kann direkt mit den Kommandozeilentools von
elara an. Falls Sie von zuhause
aus arbeiten, wählen Sie sich zunächst auf dem Server eris.is.informatik.uni-kiel.de
ein und von dort auf dem Server elara:
DB2 erfolgen. Melden Sie sich dazu auf dem Server
ssh dbmsXX@eris.is.informatik.uni-kiel.de
ssh dbmsXX@elara
Auf
elara
starten Sie die DB2-Kommandozeile durch Eingabe von
db2 -t.
Falls
dies zu einem Fehler führt, melden Sie sich bitte beim Administrator der Arbeitsgruppe (R 411), damit dieser ihre Konguration prüfen kann.
3
Nach Eingabe von
db2 -t
Kommandozeile. Mit Hilfe des
benden Sie sich im interaktiven Modus der DB2-
connect to-Befehls
verbinden Sie sich zu einer Da-
tenbank.
connect to UEBUNG;
verbindet Sie mit der Datenbank
UEBUNG. Nachdem die Verbindung erfolgreich her-
gestellt 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.
select * from SYSIBM.SYSDUMMY1;
Sie beenden die Verbindung, indem Sie
terminate;
eingeben. Danach benden Sie sich wieder in der normalen Shell.
Wer ein SQL-Skript ausführen will (z.B. die Datei
skript.sql), kann in der Shell
folgendes Kommando eingeben:
db2 -tf skript.sql
Mittels der Anweisung
db2 -tf skript.sql > out.txt
werden alle bei der Ausführung des Skriptes anfallenden Meldungen in der Datei
out.txt
gespeichert.
Das Skript sollte die
connect to-
und
terminate-Anweisungen enthalten.
skript.sql beispielhaft dargestellt.
Im folgenden sei der Aufbau des Skriptes
-- Verbindung zum DB-Schema
connect to UEBUNG;
-- Absetzen von SQL-Statements
select * from SYSIBM.SYSDUMMY1;
-- Trennen der Verbindung
terminate;
Wenn das Skript diese Anweisungen nicht enthält, kann man auch Folgendes in der
Shell eingeben (angenommen, man möchte in der Datenbank UEBUNG arbeiten):
db2 connect to UEBUNG
db2 -tf skript.sql
db2 terminate
4
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:
dos2unix skript.sql > skript.sql.unix
Anschlieÿend wird mit
skript.sql.unix
weitergearbeitet.
5 Arbeit mit lokaler Datenbankverbindung
Wer von zuhause aus mit DB-Entwurfstools arbeiten möchte, kann auch eine direkte
Verbindung zum DBMS herstellen. Dazu ist der Port
elara:50000 durch die Firewall
des Lehrstuhlnetzes zu tunneln:
ssh -L 50000:elara:50000 dbmsXX@eris.is.informatik.uni-kiel.de
Anschlieÿend kann man über den lokalen Port (localhost) 50000 mit dem DBMS
kommunizieren. Wer per JDBC auf die Datenbanken zugreifen möchte, benutzt bitte
den DB2-JCC-Treiber. Der alte Treiber (db2java.zip) ist nicht mit dieser DB2Version kompatibel.
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 Rund-um-die-Uhr-Zugri auf die Server der Arbeitsgruppe über
ein Webinterface wurde eingeführt, um die Übungen angenehmer und ezienter zu
gestalten. Ein echter 24/7-Betrieb bindet aber personelle und nanzielle 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 Angri 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 Unixsystemen ist, sollte seine Aufgaben während der üblichen Dienstzeiten im Rechnerraum der Arbeitsgruppe
(HRS3, Raum 409) erledigen.
5
4. Wenn Ihnen einmal ein Fehler passiert (der zu einem Ausfall führt) oder Sie
einen Systemausfall bemerken, dann benachrichtigen Sie den Administrator
der Arbeitsgruppe (Steen Gaede) und ihren Übungsleiter mit einer E-Mail an
dbs2@is.informatik.uni-kiel.de.
Wir werden uns um das Problem küm-
mern. 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 identizieren. Dadurch sorgen Sie dafür, dass
es schneller behoben wird. Versuchen Sie folgendes und schildern Sie bei ihrer
Fehlermeldung ihre Erkenntnisse. Nennen Sie bitte jedesmal 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
ssh auf eris.is.informatik.uni-kiel.de anmelden?
ssh dbmsXX@eris.is.informatik.uni-kiel.de
i. Wenn nicht: welche Ausgabe erzeugen folgende Befehle:
ping eris.is.informatik.uni-kiel.de
ping www.google.de
ii. Wenn ja: versuchen Sie mit den Kommandozeilentools zu arbeiten:
ssh dbmsXX@elara
db2 -t
connect to UEBUNG;
select * from SYSIBM.SYSDUMMY1;
terminate;
Kommen Fehlermeldungen?
6