Archive for April, 2010
Erstes DB2 und BS1 Praktikum

Die ersten Praktikaabnahmen in den Fächern DB2 und BS1 liegen erfolgreich hinter mir. Die Aufgaben der Praktika und die entsprechenden Lösungen präsentiere ich euch in diesem Artikel.

Das erste Datenbank 2 Praktikum beinhaltete insgesamt 6 Aufgaben, die jeweils wieder Teilaufgaben enthielten. Die erste Aufgabe in diesem Zusammenhang bezog sich noch auf den Themeninhalt der im letzten Semester statt gefundenen Vorlesung Datenbanken 1.

  • 1. Transaktionen
    1. Einfügen von zwei Datensätzen mittels SQL-DML-Befehlen in zwei Tabellen.
    2. Verändern von gespeicherten Daten, so dass ein Integritätsfehler für den Primärschlüssel auftritt.
    3. Prüfzeitpunkt eines anderen Primärschlüssels auf INITIALLY DEFERRED ändern.
    4. Mittels SQL-DML-Befehlen Testdaten erstellen und sich jeweils nach der Aktion die Tabellen ausgeben lassen.
    5. Datensätze in der Reihenfolge Subtyp dann Supertyp hinzufügen / Datensätze in der Reihenfolge Supertyp dann Subtyp löschen.

Die Zusammenhänge und die jeweiligen Reaktionen/Aktionen des Systems/der Befehle müssen dabei erklärt werden können

  • 2. PL/SQL-Funktion: Datumsfunktion
    1. Das aktuelle Tagesdatum soll entweder in deutscher oder amerikanischer Schreibweise ausgegeben werden. Das Kennzeichen wird dabei an die Funktion beim Aufruf übergeben.
  • 3. PL/SQL-Prozedur im Theater: Namen trennen
    1. Ein an die Prozedur übergebener Name soll getrennt nach Vorname, 2. Vorname und Nachname zurückgegeben werden. (Der Name besteht wenigstens aus zwei Teilen und maximal aus drei Teilen.)
  • 4. PL/SQL-Prozedur im Theater: Dichter ohne Inszenierung
    1. Es sollen dabei folgende Daten aus der Datenbank ermittelt werden:
      1. Dichter und zugehörigen Dramen, für die es keine Inszenierung gibt.
      2. Dichter für die kein Drama in der Datenbank hinterlegt ist.
    2. Die Sortierung soll aufsteigend nach dem Namen der Dichter und der Titel erfolgen.
  • 5. PL/SQL-Prozedur im Theater: Dichter mit den meisten Inszenierungen
    1. Die Dichter mit den meisten Inszenierungen in dem angegebenen Suchintervall (z.B. 2008-2009) sollen ausgegeben werden. Fehlt die erste Jahreszahl, so wird automatisch die kleinste Jahreszahl einer Inszenierung gesetzt. Genau umgekehrt verhält es sich für die letzte Jahreszahl.
  • 6. PL/SQL-Prozedur im Theater: Package-Prozeduren
    1. Es soll ein Package aus den Aufgaben 3, 4 und 5 erstellt werden.
    2. Aufgabe 3 soll eine private Prozedur im Package sein.
    3. Aufgabe 4 soll so angepasst werden, dass die private Prozedur zur Namensausgabe der Dichter verwendet wird.

Praktikum_1_DB_2

Das Praktikum in Betriebssysteme und verteilte Systeme 1 bestand im Gegensatz zum Datenbank 2 Praktikum nur aus 4 Aufgaben. Zu der ersten Aufgabe existieren einige Lösungen im Internet, so dass ich auf diese schriftliche Ausarbeitung nicht weiter eingehen werde. Sondern mich direkt den Aufgaben 2, 3 und 4 widme.

Aufgabe 2:
Hier sollte ein Shell-Script und ein C-Programm implementiert werden. Das C-Programm soll dabei nach einer bestimmten Anzahl Sekunden folgenden Text ausgeben: “./p1 nach der 1. Schlafzeit” und nochmals “./p1 nach der 2. Schlafzeit”. Dabei werden der Name des C-Programms (p1) und die Anzahl der Sekunden über das Shell-Script eingelesen und dann an das Programm übergeben. Mittels symbolischen Link soll der zweite Aufrufname p2 erzeugt werden. Beide Programmaufrufe sollen durch die Shell in den Hintergrund geschickt und zusätzlich  eine ausführliche Prozessliste ausgegeben werden.

C-Programm: p1

#include<stdio.h>
#include<stdlib.h>

void main(int argc, char* argv[]) {
    int x = 0,
         i = 1;
    if (argc==1)
        printf(“ERROR: Kein Paramter!\n”);
    else {
        x = atoi(argv[1]);
        while(i<3) {
            sleep(x);
            printf(“%s nach der %d. Schlafzeit. \n”, argv[0], i++);
        }
    }
}

Der symbolische Link wird mittels ln –s ./p1 ./p2 auf der Konsole erzeugt.

Shell-Script:

#! /usr/bin/sh
echo “Programm?”
read progr
echo “Zeit?”
read zeit
./$progr $zeit &
jobs -l
ps -ef | grep $USER

Aufgabe 3:
Bei Aufgabe 3 sollte ein Shell-Script implementiert werden, welches Dateien aus einem Verzeichnis löscht. Die zu löschenden Dateien werden als Parameter an das Script übergeben. Das Script fragt bei jeder Datei, ob diese gelöscht werden soll oder nicht. Eine entsprechende Rückmeldung sowie Fehlermeldungen, wenn die Datei nicht exitiert, müssen auch implementiert werden. Die Verarbeitung der Parameterliste soll dabei nicht unterbrochen werden.

#! /usr/bin/sh
for i in $*
do if test -r $i
    then echo “Delete $i? (y/n)”
    read a
    if [$a == y]
        then rm $i
        echo –Datei $i wurde geloescht.–
    else echo –Datei $i nicht geloescht.–
    fi
else echo –Datei $i nicht gefunden.–
fi
done
echo DONE.

Aufgabe 4:
Hier erfolgt die Ausgabe der 10 häufigsten Vornamen der Benutzer auf dem Rechner advbs08.

#! /usr/bin/sh
ypcat passwd |
cut -d : -f 5 |
cut -d ‘ ‘ -f 1 |
sort |
uniq -c |
sort |
grep -v Samba |
grep -v Dr. |
sort -r |
head

 

Die Praktika wurden zusammen von meinen Kommilitionen und mir bearbeitet.
MCTS: Windows Server 2008 R2, Client Virtualization

Am Mittwoch erhielt ich die Benachrichtigung, dass ich die Beta Zertifizierung zum MCTS: Windows Server 2008 R2, Client Virtualization bestanden habe. :-) Gestern absolvierte ich erfolgreich dann die Prüfung zum MCTS: Windows Server 2008 Active Directory, Configuration, so dass für dieses Jahr noch folgende weitere Zertifizierungen geplant sind: 70-685, 70-659 und die 70-693. Mal schaun vielleicht kommt die ein oder andere auch noch hinzu. ;-)

 

Grundstudium abgeschlossen

Heute habe ich erfahren, dass ich Mathematik 2 bestanden habe. Im gleichen Zug ist somit auch mein Grundstudium abgeschlossen. Besser kann man gar nicht in das 4. Semester starten. :)

MED-V Demoumgebung – Serverkonfiguration

Ich beschäftige mich schon seit einiger Zeit mit Microsofts MED-V und werde daher in der nächsten Zeit einige Artikel dazu schreiben. Heute beginne ich mit der Konfiguration der Serverkomponenten, so dass die Basis für MED-V geschaffen wird.
Als System kommt bei mir eine VM mit 2GB RAM und 2 vCPUs zum Einsatz. In dieser VM habe ich zuerst Windows Server 2008 R2 installiert, da mit dem erst kürzlich erschienenen MDOP 2010 Refresh der Windows Server 2008 R2 und Windows 7 unterstützt wird. Nachdem das Betriebssystem installiert ist, sollten folgende Dienste auf dem Server installiert werden:

  • Internet Information Services
  • BITS IIS Server Extension
  • SQL Server Express Edition

Ich habe als erstes den IIS auf dem Server installiert, dabei braucht man nur die Rolle Web Server (IIS) hinzufügen. Unter den Rollendiensten sollte man noch die Basisauthentifizierung, sowie die Windows-Authentifizierung auswählen. Es werden keine weiteren Komponenten benötigt.

 

Als nächstes wird das Feature BITS IIS Server Extension installiert, da dieses für den Upload der erstellten VMs für MED-V benötigt wird.

 

Sind der IIS und die BITS IIS Server Extension installiert, so kann man direkt dazu übergehen den IIS zu konfigurieren. Durch das MED-V Setup wird später der Ordner für die VM Images angelegt, diesen kann man allerdings schon jetzt unter C:\ anlegen. Die Namensgebung sollte in diesem Falle “MED-V Server Images” lauten. Hat man den Ordner erstellt, so legt man unter der Default Website des IIS ein neues virtuelles Verzeichnis an. Dieses Verzeichnis verweist auf den eben unter C:\ erstellten Ordner. Der letzte Schritt der noch erledigt werden muss, bevor der IIS fertig konfiguriert ist, ist die Aktivierung des BITS Uploads.

Nachdem der IIS fertig konfiguriert ist, folgt nun der SQL Server, so dass die Reporting Funktionen des MED-V Servers genutzt werden können. Bei der Installation des SQL Servers sind einige Dinge im Laufe der Installation zu beachten.
Von den Features werden nur die Database Engine Services und die Management Tools – Basic benötigt. Im nächsten Schritt wird der Instanzname festgelegt. Diesen benötigt man später bei der Anbindung des MED-V Servers an den SQL Server. Für den Dienst “SQL Server Database Engine” wählt man folgendes Dienstkonto aus unter dem der Dienst laufen soll: NT Authority\System. Jetzt muss nur noch der derzeitig angemeldete Benutzer der Gruppe der SQL Server Administratoren hinzugefügt werden.

Nach der Installation des SQL Servers müssen noch zwei Regeln für die Windows Firewall angelegt werden. Beide betreffen eingehende Verbindungen. Damit auf den SQL Server zugegriffen werden kann, muss der TCP Port 1433 für eingehende Verbindungen in der Firewall freigegeben werden. Dasselbe gilt für den UDP Port 1434, so dass der SQL Server Browser erreichbar ist und der zur Verfügung stehende SQL Server gefunden werden kann. Ist dieser Schritt erledigt, muss nur noch der SQL Server Browser Dienst auf den Starttyp automatisch gesetzt werden. Standardmäßig ist dieser nämlich deaktiviert.

Alle benötigten Komponenten sind jetzt installiert, so dass das Setup des MED-V Server aufgerufen werden kann.

Nach der Installation sind nur noch wenige Konfigurationsschritte nötig, bevor der MED-V Server einsatzbereit ist. Im MED-V Server Configuration Manager wird unter dem Reiter “Images” die VMs URL hinterlegt, die dann auf das Verzeichnis der Images verweist: http://Servername/virtuelles_Verzeichnis. Zum Abschluss wird der MED-V Server mit dem SQL Server verbunden. Dies geschieht unter dem Reiter “Reports”. Hier editiert man den Connection String folgender Maßen:

Data Source=Servername\Datenbankname;Initial Catalog=medv;Integrated Security=True

Danach ist der MED-V Server fertig konfiguriert und kann für seine Aufgabe verwendet werden.

Linux Integration Services v2.1 – Beta

Seit dem 31.03.2010 steht unter http://connect.microsoft.com die Beta Version der Linux Integration Services v2.1 für Hyper-V zum Download bereit. Die Integration Services bringen folgende Neuerungen mit sich:

  • Unterstützung für bis zu vier virtuelle CPU-Kerne für die virtuelle Linux Maschine
  • Zeitsynchronisation mit dem Hostsystem
  • Unterstützung zum direkten Herunterfahren der VM mittels Hyper-V UI oder WMI Interface

Für die nächste Zeit habe ich ein HowTo zu MED-V SP1 geplant. Der erste Artikel dazu dürfte in der nächsten Woche online gehen. Außerdem beginnt in einer Woche mein neues Semester, so dass es auch wieder Informationen rund um meinen Studienverlauf geben wird.