%
% Achtung: Dateien muessen mit latin1-Encoding gespeichert werden!
% Attention: Files must be saved using latin1 encoding!
%

\chapter{Der Firebird SQL Server 1.5.2}
 
\emph{Ab Version 1.0.0 - Stand 07.01.2005\\ 
(c) Jens Vehlhaber  <jvehlhaber@buchenwald.de>}
  
\section{Allgemeines }
Firebird ist eine Weiterentwicklung der professionellen Datenbanksoftware Interbase, welche am 25. Juli 2000 von Borland unter der ''InterBase Public License v.1.0'' ver"offentlicht wurde. Damit er"offnete sich der Open Source Gemeinschaft die M"oglichkeit, eine Datenbank weiter zu entwickeln, die sich in ihren Leistungsparametern hinter den etablierten Produkten von Oracle, Microsoft und anderen Herstellern nicht zu verstecken braucht.
Das Firebird-Paket erm"oglicht den Einsatz dieses leistungsf"ahigen Datenbanksystems auf der EISFAIR Serverplattform.
\\

\section{Installation}
Das Installationsscript erkennt automatisch, ob bereits ein Firebird SQL Server installiert ist. Sollen die Benutzernamen und Passw"orter "ubernommen werden, so ist die Frage nach der Erstellung einer neuen Security Database mit ''No'' zu beantworten. Wird hier ''Yes'' angegeben, werden alle Firebird Datenbankbenutzereintr"age gel"oscht und der Administrator SYSDBA wieder auf sein Anfangspasswort ''masterkey'' gesetzt. Vorhandene Datenbanken, au"ser den Demodatenbanken, werden in keinem Fall ver"andert oder automatisch konvertiert. Beim Update von Version 1.0.x auf 1.5.x sollten alle Datenbanken vorher gesichert und die Hinweise unter ''\jumplabel{Import "alterer Firebird und Interbase Datenbanken}{SECTIMPORT}'' beachtet werden.


\section{Allgemeine Konfiguration}
Die Konfiguration kann "uber den Men"upunkt ''Edit Configuration'' ge"andert werden.
Nach Beendigung des Editors wird die Konfiguration automatisch auf Fehler "uberpr"uft. Werden Fehler festgestellt, so sollten die entsprechenden Eintr"age in jedem Fall korrigiert werden.\\
Sind zu diesem Zeitpunkt Benutzer mit der Datenbank verbunden, so erfolgt eine Hinweismeldung. Alle "Anderungen werden gespeichert, ein Neustart erfolgt jedoch nicht.

\begin{description}

\config{START\_FIREBIRD}{START\_FIREBIRD}{STARTFIREBIRD} 
{Legt fest, ob der Firebird SQL Server automatisch gestartet wird.

G"ultige Werte: \emph{yes,no}}


\config{FIREBIRD\_DATA\_DIRECTORY}{FIREBIRD\_DATA\_DIRECTORY}{FIREBIRDDATADIRECTORY} 
{Hier wird das Standard-Datenbankverzeichnis eingetragen.

Beispiel: \emph{/var/firebird}}

\config{FIREBIRD\_SECURE\_PATH\_ACCESS}{FIREBIRD\_SECURE\_PATH\_ACCESS}{FIREBIRDSECUREPATHACCESS} 
{Mit diesem Parameter l"asst sich der Zugriff auf die Serververzeichnisse einschr"anken.
In der Option ''Restrict'' k"onnen nur noch Datenbanken genutzt und erstellt werden, die entweder im Verzeichnis: /usr/local/firebird/examples oder in dem unter FIREBIRD\_DATA\_DIRECTORY eingetragen Verzeichnis gespeichert sind.
Die Option ''Full'' erlaubt einen nahezu beliebigen Speicherort der Datenbanken.

G"ultige Werte: \emph{Full,Restrict}}

\config{FIREBIRD\_BACKUP\_CRON\_SCHEDULE}{FIREBIRD\_BACKUP\_CRON\_SCHEDULE}{FIREBIRDBACKUPCRONSCHEDULE} 
{Der Eintrag gibt den Startzeitpunkt und die Anzahl der Datei"uberpr"ufungen des \jumplabel{Auto-Backup}{Auto-Backup} System an. Die 5 Werte stehen f"ur: Minute, Stunde, Tag, Monat, Wochentag.\\
Die Voreinstellung - einmal t"aglich 01:15 Uhr - hat sich in der Praxis als brauchbar erwiesen. 

Beispiel t"aglich 01:15 Uhr: \emph{15 1 * * *}}

\config{FIREBIRD\_BACKUP\_TARGET}{FIREBIRD\_BACKUP\_TARGET}{FIREBIRDBACKUPTARGET} 
{Hier wird das Zielverzeichnis f"ur die Backupvorg"ange eingetragen.
Alle vom Auto-Backup System erstellten Dateien werden dort abgelegt.

Beispiel: \emph{/var/firebird}}

\config{FIREBIRD\_BACKUP\_N}{FIREBIRD\_BACKUP\_N}{FIREBIRDBACKUPN} 
{Definiert die Anzahl der eingetragenen, mit Auto-Backup zu "uberwachenden, Dateien.

Beispiel: \emph{2}}

\config{FIREBIRD\_BACKUP\_x\_FILE}{FIREBIRD\_BACKUP\_x\_FILE}{FIREBIRDBACKUPxFILE} 
{Dateiname inklusive Pfadangabe der zu "uberwachenden Datenbankdatei. 

Beispiel: \emph{/var/firebird/employee.fdb}}

\config{FIREBIRD\_BACKUP\_x\_MAX}{FIREBIRD\_BACKUP\_x\_MAX}{FIREBIRDBACKUPxMAX} 
{Maximale Anzahl der gespeicherten Backups der Datenbank. Beim "uberschreiten des Wertes wird die jeweils "alteste Backupdatei gel"oscht. Wird dieser Wert auf ''0'' gesetzt, erfolgt kein Backupvorgang f"ur diese Datei.

Beispiel: \emph{7}}

\config{FIREBIRD\_BACKUP\_MOUNT}{FIREBIRD\_BACKUP\_MOUNT}{FIREBIRDBACKUPMOUNT}
{Erm"oglicht das ausf"uhren eines Kommandos vor dem Starten des Backup- oder Restorevorganges. Das kann z.B. das Mounten eines MO-Disk Datentr"agers sein.
    
Beispiel: \emph{mount /mo}}    

\config{FIREBIRD\_BACKUP\_UMOUNT}{FIREBIRD\_BACKUP\_UMOUNT}{FIREBIRDBACKUPUMOUNT}
{Erm"oglicht das Ausf"uhren eines Kommandos nach Abschluss des Cron-Autobackups. So kann z.B. ein Umount Befehl f"ur einen MO-Disk Datentr"ager ausgef"uhrt werden.
    
Beispiel: \emph{umount /mo}}

\end{description}

\subsection{Spezielle Konfiguration}
Die folgenden Parameter sollten nur bei Bedarf ver"andert werden.

\begin{description}

\config{FIREBIRD\_MSG\_LANGUAGE}{FIREBIRD\_MSG\_LANGUAGE}{FIREBIRDMSGLANGUAGE} 
{Ver"andert die Sprache der Fehler- und Hinweistexte. Sie sind aber zur Zeit noch nicht vollst"andig "ubersetzt, so das der gr"o"ste Teil der Meldungen auch weiterhin in Englisch ausgegeben wird. 

G"ultige Werte: \emph{de,en,fr}}


\config{FIREBIRD\_CONNECT\_PORT}{FIREBIRD\_CONNECT\_PORT}{FIREBIRDCONNECTPORT} 
{Hier wird der Kommunikations-Port des Servers eingetragen. Clientsoftware erwartet hier, von Ausnahmen abgesehen, den Port 3050 des TCP-Protokolls.

Standardeinstellung: \emph{3050}}

\config{FIREBIRD\_BIND\_IP\_ADDRESS}{FIREBIRD\_BIND\_IP\_ADDRESS}{FIREBIRDBINDIPADDRESS} 
{Diese Option wird dann ben"otigt, wenn mehrere Netzwerkkarten im Server verwendet werden und nicht von allen ein Zugriff auf den Firebird Server erlaubt sein soll. Die IP-Adresse der f"ur die Servernutzung freigegebenen Netzwerkkarte wird dann hier eingetragen. 

Beispiel: \emph{192.168.6.10}}

\end{description}

\section{Die Men"us des Firebird-Paket}

\subsection{Das Firebird Hauptmen"u}
Das Firebird Hauptmen"u ist "uber den Men"upunkt ''Service administration'' im zentralen Setup-Programm zu erreichen. Es ist wie folgt aufgebaut: 

\begin{itemize}

\item View documentation\\
        Zeigt die Dokumentation des Firebird-Paketes an.
\item Edit configuration\\
        Damit kann die Konfigurationsdatei des Firebird-Paket bearbeitet werden.
\item Advanced configuration file handling\\
        Erm"oglicht eine Versionsverwaltung der Firebird-Konfigurationsdatei 
\item Start Firebird\\
        Hier kann der Firebird Daemon gestartet werden.
\item Stop Firebird\\ 
        Hier wird der Firebird Daemon angehalten. Dabei werden alle laufenden Datenbankzugriffe
        ohne Warnung vom Server getrennt. Deshalb sollte man sich vorher unter dem Men"upunkt ''Show status and connects''
        "uber gerade laufende Zugriffe informieren und eventuelle Benutzer warnen. 
\item Show status and connects\\
        Zeigt den Status des Firebird Daemon und alle aktuellen Zugriffe auf den Firebird Server an.
\item Rebuild database aliases\\
        Hierdurch wird die Alias-Datei aktualisiert. Durchsucht werden dabei:\\
        /usr/local/firebird/examples und das unter FIREBIRD\_DATA\_DIRECTORY eingetragene Verzeichnis. 
        Der Firebird Daemon muss f"ur diesen Vorgang nicht angehalten zu werden.\\
        "Uber das Alias-System k"onnen Datenbanken, ohne Nennung des kompletten Verzeichnisses, extern aufgerufen werden. 
\item Firebird Tools\\ 
        Untermen"u zu den weiteren Funktionen
\end{itemize}

\subsection{Die Firebird Tools}

Das Firebird Toolmen"u ist wie folgt aufgebaut:

\begin{itemize}
\item List Firebird user\\
        Firebird verf"ugt "uber eine eigene Datenbank Benutzerverwaltung. Diese wird in der Datei security.fdb im
        Basisverzeichnis des Servers gespeichert. Dieser Men"upunkt zeigt alle eingetragenen Benutzer an.
\item Add Firebird user\\
        Hiermit werden ein neuer Benutzer und sein Passwort an die Benutzerdatenbank angef"ugt.
\item Remove Firebird user\\
        Nicht mehr ben"otigte Benutzereintr"age lassen sich hiermit l"oschen.
\item Change Firebird user password\\
        Hier kann das Password alle Firebird Benutzer, inklusive des Administrators SYSDBA, ver"andert werden.
\item Database backup\\
        Ein Dateiauswahldialog listet alle Datenbanken (fdb und gdb) des FIREBIRD\_DATA\_DIRECTORY und des
        /usr/local/firebird/examples Verzeichnisses auf. Durch die Auswahl einer Datei wird ein Backup unter 
        gleichem Dateinamen mit der Dateiendung gbk im Verzeichnis FIREBIRD\_BACKUP\_TARGET erstellt. 
        Der Backup Vorgang kann im laufenden Betrieb erfolgen.\\
        Eine bereits existierende Backup-Datei mit gleichen Namen wird ohne Warnung "uberschrieben. 
\item Database restore\\
        Ein Dateiauswahldialog listet alle Backup Dateien (gbk) der Verzeichnisse FIREBIRD\_BACKUP\_TARGET,
        FIREBIRD\_DATA\_DIRECTORY und /usr/local/firebird/examples auf. Die Auswahl einer Datei startet den 
        R"ucksicherungs-Vorgang. Soll eine bestehende Datenbank "uberschrieben werden, so darf sie zu 
        diesem Zeitpunkt nicht in Benutzung sein. Die durch das Auto-Backup entstandenen um Datum und 
        Stunde erweiterten Dateinamen werden automatisch in den urspr"unglichen Namen zur"uck konvertiert.
\item Database check\\ 
        "Uber diesen Men"upunkt wird die Korrektheit der Datenbankdatei "uberpr"uft. Die Ausf"uhrung kann aber
        nur erfolgen, wenn kein Benutzer zu diesem Zeitpunkt auf die Datenbank zugreift. Die Auswahl der Datenbank
        erfolgt men"ugest"utzt. 
\item ISQL database access tool 
        Hier wird der Zugriff auf alle Datenbanken "uber ein SQL-Kommandozeilen-Tool erm"oglicht. Eine Kurzhilfe
        wird auf Wunsch vor dem Starten des ISQL-Tools angezeigt. Die Datenbankdateiauswahl erfolgt men"ugest"utzt. 
\end{itemize}

\marklabel{Auto-Backup}{\section{Auto-Backup}}
Da Firebird "uber die M"oglichkeit verf"ugt, im laufenden Datenbankbetrieb (ohne Anhalten des SQL-Servers) 
Backups zu erstellen, wurde eine Auto-Backup-Funktion integriert.\\
Ein Cron Job fragt in bestimmten Abst"anden das "Anderungsdatum der zu "uberwachenden SQL Datenbanken ab.
Hat sich die Uhrzeit der Datenbankdatei seit dem letzten Backup ge"andert, so wird mit dem Firebird internen
gbak-Prozess eine Backup Datei erstellt. Der Backup-Dateiname wird um die zus"atzliche Datums- und Stundeninformation
des letzten Datenbankzugriffes im Format: -JJJJMMTT-HH erweitert. So kann theoretisch bis zu einmal st"undlich ein
Backup erstellt werden. Voreingestellt ist das Backup auf einmal t"aglich 01:15 Uhr. Die Anzahl der gespeicherten 
Backups pro Datenbank kann mit dem Parameter FIREBIRD\_BACKUP\_x\_MAX begrenzt werden. Beim "uberschreiten dieses 
Wertes wird die "alteste Backupdatei gel"oscht.\\
Beispiel:
\begin{description}
\item employee.fdb\\ 
|\\
|--> employee-20030603-10.gbk\\
|--> employee-20040410-17.gbk\\
|--> employee-20040411-12.gbk\\
\end{description}
Der Erfolg oder Misserfolg durchgef"uhrter Auto-Backup-Operationen, wie Backup erstellen oder l"oschen der "altesten Backup Datei, wird in der Systemlogdatei protokolliert.

\marklabel{SECTIMPORT}{\section{Import "alterer Firebird und Interbase Datenbanken}}
Die Datenbankstruktur zwischen den Firebird Versionen ist zwar weitestgehend identisch, dennoch empfehlen die Entwickler wichtige Datenbanken "uber das gbk-Backup-Format zu "ubernehmen. Dazu bitte:\\
\begin{itemize}
\item Unter der alten Firebird/Interbase Version die Datenbanken mit gbak exportieren. Bei der EISFAIR
        Firebird Version ist dazu im Men"u ''Firebird Tools''das ''Database Backup'' f"ur die entsprechenden Dateien
        auszuf"uhren. 
\item Firebird 1.5 installieren. Dabei die Abfrage zur Erzeugung einer neuen Security Datenbank unbedingt mit 
        ''No'' beantworten. 
\item Unter Firebird 1.5 im Men"upunkt ''Firebird Tools'' - ''Database Restore'' die entsprechenden Datenbanken
        im 1.5er Format zur"ucksichern. 
\item Anpassen der Dateinamen in den Einstellungen unter \jumplabel{FIREBIRD\_BACKUP\_x\_FILE}{FIREBIRDBACKUPxFILE} auf
        die neue Dateiendung fdb.
\end{itemize}

