FirebirdSQL: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Keine Bearbeitungszusammenfassung |
|||
Zeile 2: | Zeile 2: | ||
== Installation == | == Installation == | ||
[[Linux.firebird.winxpsp2|Windows XP Service Pack 2]] | |||
<b>Infos über verbundene Clients erhalten</b> | |||
netstat --numeric -p | grep fb_inet // anzeigen aller an firebird connectierten | |||
// (eigentlich fb_inet_server, jedoch wird der volle Name oft durch | |||
// netstat abgeschnitten) | |||
ps -A | grep fb // anzeigen aller firebird - Prozesse | |||
lsof <firebirddatenbankdatei> // anzeigen aller User auf einer firebird Datenbank | |||
lsof -p <PID eines fb_inet_servers> // anzeigen der Dateien, die der Prozess offen hat | |||
// es wird auch angegeben wer (welcher remote) connectiert ist. | |||
<b>firebird SQL Server installieren </b><br> | |||
(als (Benutzernamen=)root eingelogged?!) | |||
1a) Besonderheit bei SuSE 8.1 | |||
========================= | |||
leider funktioniert die Installation hier nicht mehr. Ursache ist die | |||
Datei /etc/rc.config, die in SuSE 8.1 nicht mehr existiert (enthielt auch | |||
bei 8.0 kaum noch etwas und wurde durch /etc/sysconfig/* ersetzt) | |||
Wenn wir vor der Installation mit | |||
touch /etc/rc.config | |||
eine leere Datei anlegen, funktioniert auch die Installation des Servers | |||
wieder! | |||
Download und Installation | |||
========================= | |||
Installations-Package vom Internet downloaden | |||
den aktuellen "superServer" als rpm von | |||
http://sourceforge.net/projects/firebird | |||
downloaden. Im aktuellen Fall ist das: | |||
Firebird-1.0.1.821-0-SS.i386.rpm | |||
Mit dem "KDE-Filemanager" (Quick-Browser->Root Directory->"/"->Open In FileManager) | |||
Sucht man die *.rpm datei. Es reicht nun diese Datei anzuklicken. | |||
Es wird der Paketmanager gestartet. Man kann diesen auch über die shell starten mit | |||
dem Befehl: "kpackage". | |||
ev. [x] replace all noch anklicken, und auf "install" klicken! | |||
!! Beobachtung zum Update-Fall: Ich musste !immer! erst den alten firebird deinstallieren | |||
bevor ich einen neuen installieren konnte. Das "upgrade" hat bei mir nie funktioniert | |||
auch durch einen reboot wurde firebird nicht wieder gestartet. | |||
!! "rcfirebird status" ging nicht, das script wude nicht gefunden! | |||
Erster Start | |||
============ | |||
in einem Terminal-Fenster einfach mal prüfen, ob die Installation geklappt | |||
hat. | |||
rcfirebird status | |||
Wenn hier etwas vernünftiges angezeigt wird (unused oder so) kann der Server | |||
gestartet werden: | |||
rcfirebird start | |||
2) Autostart des firebird-Servers: | |||
historisch: | |||
/opt/interbase/bin/ibmgr -shut -user "SYSDBA" -password "masterkey" | |||
/opt/interbase/bin/ibmgr -start -forever | |||
7.3 (damals noch mit RC2.rpms) | |||
=== | |||
editieren von "/etc/rc.d/boot.local" eintragen von: | |||
/etc/rc.d/firebird start | |||
editieren von "/etc/rc.d/halt.local" eintragen von: | |||
/etc/rc.d/firebird stop | |||
8.0,8.1 (jetzt mit dem 1.0 rpms) | |||
======= | |||
a) | |||
Kontrollzentrum->YaST2 Module->System->Runlevel Editor->Runlevel eigenschaften-> | |||
firebird in der Liste suchen, und einstellen wie folgt: | |||
Aktiv_B_0_1_2_3_5_6_S | |||
firebird Ja____________3_5____ | |||
b) /etc/rc.config | |||
START_FIREBIRD="yes" | |||
Eintrag wirksam machen mit SuSEconfig | |||
3) Wohin mit den gdbs? Am besten in eine "Freigabe" wo alle | |||
alle Zugriff haben. Alle User sollten raus aus der DB, dann | |||
einfach die gdb von der PC-Welt auf die Unix-Welt verschieben! | |||
die <ProjektName>.ini ändern, IP-Adresse und datenbank-name | |||
auf Linux anpassen (z.B.): | |||
192.168.100.72:/freigabe/HeBuData/HeBu.gdb | |||
Superwichtig: Gross- und Kleinschreibung spielt bei datenbank-Dateinamen | |||
(wie überhaupt bei linux) eine Rolle. Erst hinter dem samba-Maske ist es | |||
wieder egal. Ev. Datei/verzeichnisnamen richtig umbenennen. | |||
3a) Es gibt dann ja noch den Datenbank Backup-Pfad aus der Sicht des Servers. | |||
Nehmen wird mal wie oben an die Datenbank liegt auf: | |||
/freigabe/HeBuData/HeBu.gdb, wir wollen, das dort auch die Backups erzeugt | |||
werden, wir müssen dann im HebuAdmin in den Systemeinstellungen schreiben: | |||
DatenbankBackupPfad=/freigabe/HeBuData/ | |||
FreigabePfad=H:\HeBuData\ | |||
somit kann der Hebuadmin die Sicherungen in das eigene .\Datensicherungs | |||
verzeichnis verschieben. Nur so wird auch sichergestellt, dass das Sicherungs | |||
verzeichnis auf dem Linux Server nicht überläuft. | |||
4b) firebird 1.5 | |||
7.x Benutzer | |||
das aktuelle rpm versäumt es die Abhängigkeit von folgenden 2 rpms anzuzeigen: | |||
*libgcc_s.so.1 aus libgcc-3.2-46.i586.rpm | |||
*libstdc++.so.5 aus libstdc++.rpm | |||
Man kann hier mal nachsehen: | |||
ftp.leo.org/pub/comp/os/unix/linux/suse/people/nashif/SuSE/SLES/x86 | |||
oder bei rmpseek.com | |||
ldd -v <programmname> kann auf einem System, auf dem alles läuft :-( gute auskunft | |||
geben was das "Programm" so alles noch mit lädt - bei einem firebird ist so ziemlich | |||
interessant. Der "eigentliche" Server ist eingentlich "libfbembedd.so", dieser wird | |||
hochgezogen, wenn fb_inet_Server geladen wird. | |||
Überblick | |||
der neueste Firebird 1.5 liegt nur als Classic Server "CS" vor. Das bedeutet, | |||
es läuft kein einzelner Dämon sondern pro Verbindung wird ein Server-Prozess | |||
neu gestartet. Die Synchronisation erfolgt über Datei-Locks der jeweiligen | |||
Datenbank-Datei. | |||
Bei dem Hochstarten der einzelnen Server-Prozesse hilft xinetd (ehemals inetd). | |||
Dies ist ein Programm, das dabei Hilft auf einzelnen Ports eines Linux-Systems | |||
Dienste anzubieten. Man beschreibt seinen Dienst in einer config-Datei, wenn | |||
dann ein Verbindungsversuch auf dem Angegebenen Port Stattfindet startet xinetd | |||
das angegebene Programm und leitet die Anfrage an dieses Programm weiter. | |||
-> 8.x | |||
=== | |||
Damit der CS Server nach einem reboot wieder läuft muss xinetd in den | |||
Runleveln 3&5 laufen. | |||
7.x | |||
=== | |||
/etc/rc.config | |||
START_INETD="yes" | |||
== Verwendung mit Delphi == | == Verwendung mit Delphi == | ||
== Verwendung mit PHP == | == Verwendung mit PHP == | ||
== Verwendung mit Java Server Pages == | == Verwendung mit Java Server Pages == |
Version vom 22. April 2005, 11:12 Uhr
Zur Datenhaltung verwendet OrgaMon den freien Datenbank Server firebird SQL.
Installation
Infos über verbundene Clients erhalten
netstat --numeric -p | grep fb_inet // anzeigen aller an firebird connectierten // (eigentlich fb_inet_server, jedoch wird der volle Name oft durch // netstat abgeschnitten) ps -A | grep fb // anzeigen aller firebird - Prozesse lsof <firebirddatenbankdatei> // anzeigen aller User auf einer firebird Datenbank lsof -p <PID eines fb_inet_servers> // anzeigen der Dateien, die der Prozess offen hat // es wird auch angegeben wer (welcher remote) connectiert ist.
firebird SQL Server installieren
(als (Benutzernamen=)root eingelogged?!)
1a) Besonderheit bei SuSE 8.1 =========================
leider funktioniert die Installation hier nicht mehr. Ursache ist die Datei /etc/rc.config, die in SuSE 8.1 nicht mehr existiert (enthielt auch bei 8.0 kaum noch etwas und wurde durch /etc/sysconfig/* ersetzt)
Wenn wir vor der Installation mit
touch /etc/rc.config
eine leere Datei anlegen, funktioniert auch die Installation des Servers wieder!
Download und Installation =========================
Installations-Package vom Internet downloaden
den aktuellen "superServer" als rpm von
http://sourceforge.net/projects/firebird
downloaden. Im aktuellen Fall ist das:
Firebird-1.0.1.821-0-SS.i386.rpm
Mit dem "KDE-Filemanager" (Quick-Browser->Root Directory->"/"->Open In FileManager) Sucht man die *.rpm datei. Es reicht nun diese Datei anzuklicken. Es wird der Paketmanager gestartet. Man kann diesen auch über die shell starten mit dem Befehl: "kpackage". ev. [x] replace all noch anklicken, und auf "install" klicken!
!! Beobachtung zum Update-Fall: Ich musste !immer! erst den alten firebird deinstallieren bevor ich einen neuen installieren konnte. Das "upgrade" hat bei mir nie funktioniert auch durch einen reboot wurde firebird nicht wieder gestartet. !! "rcfirebird status" ging nicht, das script wude nicht gefunden!
Erster Start ============
in einem Terminal-Fenster einfach mal prüfen, ob die Installation geklappt hat.
rcfirebird status
Wenn hier etwas vernünftiges angezeigt wird (unused oder so) kann der Server gestartet werden:
rcfirebird start
2) Autostart des firebird-Servers:
historisch:
/opt/interbase/bin/ibmgr -shut -user "SYSDBA" -password "masterkey" /opt/interbase/bin/ibmgr -start -forever
7.3 (damals noch mit RC2.rpms) ===
editieren von "/etc/rc.d/boot.local" eintragen von:
/etc/rc.d/firebird start
editieren von "/etc/rc.d/halt.local" eintragen von:
/etc/rc.d/firebird stop
8.0,8.1 (jetzt mit dem 1.0 rpms) =======
a) Kontrollzentrum->YaST2 Module->System->Runlevel Editor->Runlevel eigenschaften-> firebird in der Liste suchen, und einstellen wie folgt:
Aktiv_B_0_1_2_3_5_6_S firebird Ja____________3_5____
b) /etc/rc.config START_FIREBIRD="yes" Eintrag wirksam machen mit SuSEconfig
3) Wohin mit den gdbs? Am besten in eine "Freigabe" wo alle alle Zugriff haben. Alle User sollten raus aus der DB, dann einfach die gdb von der PC-Welt auf die Unix-Welt verschieben! die <ProjektName>.ini ändern, IP-Adresse und datenbank-name auf Linux anpassen (z.B.):
192.168.100.72:/freigabe/HeBuData/HeBu.gdb
Superwichtig: Gross- und Kleinschreibung spielt bei datenbank-Dateinamen (wie überhaupt bei linux) eine Rolle. Erst hinter dem samba-Maske ist es wieder egal. Ev. Datei/verzeichnisnamen richtig umbenennen.
3a) Es gibt dann ja noch den Datenbank Backup-Pfad aus der Sicht des Servers. Nehmen wird mal wie oben an die Datenbank liegt auf: /freigabe/HeBuData/HeBu.gdb, wir wollen, das dort auch die Backups erzeugt werden, wir müssen dann im HebuAdmin in den Systemeinstellungen schreiben:
DatenbankBackupPfad=/freigabe/HeBuData/ FreigabePfad=H:\HeBuData\
somit kann der Hebuadmin die Sicherungen in das eigene .\Datensicherungs verzeichnis verschieben. Nur so wird auch sichergestellt, dass das Sicherungs verzeichnis auf dem Linux Server nicht überläuft.
4b) firebird 1.5
7.x Benutzer
das aktuelle rpm versäumt es die Abhängigkeit von folgenden 2 rpms anzuzeigen:
*libgcc_s.so.1 aus libgcc-3.2-46.i586.rpm *libstdc++.so.5 aus libstdc++.rpm
Man kann hier mal nachsehen:
ftp.leo.org/pub/comp/os/unix/linux/suse/people/nashif/SuSE/SLES/x86 oder bei rmpseek.com
ldd -v <programmname> kann auf einem System, auf dem alles läuft :-( gute auskunft geben was das "Programm" so alles noch mit lädt - bei einem firebird ist so ziemlich interessant. Der "eigentliche" Server ist eingentlich "libfbembedd.so", dieser wird hochgezogen, wenn fb_inet_Server geladen wird.
Überblick
der neueste Firebird 1.5 liegt nur als Classic Server "CS" vor. Das bedeutet, es läuft kein einzelner Dämon sondern pro Verbindung wird ein Server-Prozess neu gestartet. Die Synchronisation erfolgt über Datei-Locks der jeweiligen Datenbank-Datei. Bei dem Hochstarten der einzelnen Server-Prozesse hilft xinetd (ehemals inetd). Dies ist ein Programm, das dabei Hilft auf einzelnen Ports eines Linux-Systems Dienste anzubieten. Man beschreibt seinen Dienst in einer config-Datei, wenn dann ein Verbindungsversuch auf dem Angegebenen Port Stattfindet startet xinetd das angegebene Programm und leitet die Anfrage an dieses Programm weiter.
-> 8.x === Damit der CS Server nach einem reboot wieder läuft muss xinetd in den Runleveln 3&5 laufen.
7.x === /etc/rc.config START_INETD="yes"