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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected]. 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 [email protected] 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