FirebirdSQL: Unterschied zwischen den Versionen

Aus OrgaMon Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Zeile 24: Zeile 24:
  lsof -p <PID eines fb_inet_servers>          // anzeigen der Dateien, die der Prozess offen hat
  lsof -p <PID eines fb_inet_servers>          // anzeigen der Dateien, die der Prozess offen hat
                                               // es wird auch angegeben wer (welcher remote) connectiert ist.
                                               // 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 -shut -user "SYSDBA" -password "masterkey"
       /opt/interbase/bin/ibmgr -start -forever
       /opt/interbase/bin/ibmgr -start -forever


      7.3 (damals noch mit RC2.rpms)
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!
        editieren von "/etc/rc.d/boot.local" eintragen von:
die <ProjektName>.ini ändern, IP-Adresse und datenbank-name
 
auf Linux anpassen (z.B.):
        /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
192.168.100.72:/freigabe/HeBuData/HeBu.gdb
          *libstdc++.so.5 aus libstdc++.rpm


          Man kann hier mal nachsehen:
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.


          ftp.leo.org/pub/comp/os/unix/linux/suse/people/nashif/SuSE/SLES/x86
Es gibt dann ja noch den Datenbank Backup-Pfad aus der Sicht des Servers.
          oder bei rmpseek.com
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:


        ldd -v <programmname> kann auf einem System, auf dem alles läuft :-( gute auskunft
  DatenbankBackupPfad=/freigabe/HeBuData/
        geben was das "Programm" so alles noch mit lädt - bei einem firebird ist so ziemlich
  FreigabePfad=H:\HeBuData\
        interessant. Der "eigentliche" Server ist eingentlich "libfbembedd.so", dieser wird
        hochgezogen, wenn fb_inet_Server geladen wird.


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.


         Überblick
         Überblick

Version vom 22. April 2005, 12:35 Uhr

Zur Datenhaltung verwendet OrgaMon den freien Datenbank Server firebird SQL.

Installation

CS- Classic Server unter Linux

 rpm -vv -i Firebird...rpm
 chkconfig --add xinetd
 rcxinetd restart

SS- Super Server unter Linux

 rpm -vv -i Firebird...rpm
 chkconfig --add firebird
 rcfirebird restart
  • 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.
      /opt/interbase/bin/ibmgr -shut -user "SYSDBA" -password "masterkey"
      /opt/interbase/bin/ibmgr -start -forever

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.

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.

       Ü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"

Probleme mit Windows XP SP 2

Langsamer Applikationsstart seit Installation des Windows XP Service Pack 2

Voraussetzung: (Ursächlich ist das Service Pack 2 von Windows XP)

Problem:

Bis zu 10 Sekunden längerer Verbindungsaufbau bei Konnektierung auf den Linux Firebird Classic Server.

Lösung:

Die Firewall des Service-Pack 2 blockiert alle eingehenden Verbindungsversuche von aussen. xinetd versucht bei aktiviertem log_on_success = USERID den erfolgreichen Verbindungsaufbau zum firebird-dienst zu protokollieren. Dazu läuft ein Protokoll ab zur Verifizierung der Benutzer Identität auf Port 113.

mehr Info auf http://grc.com/port_113.htm RFC auf http://www.faqs.org/rfcs/rfc1413.html

Dieser ist geblockt, xinetd gibt nach 3 maligem Versuch auf. log_on_success und log_on_fail sollte entfernt werden, oder auf HOST umgestellt werden:

joe /etc/xinetd.d/firebird       
//
// Folgende beide Zeile so verändern oder ganz auskommentieren 
// 
 log_on_success = HOST
 log_on_fail = HOST
//

ps -A | grep xinetd              
// merke Dir den PID des xinetd

kill -SIGUSR2 <PID des xinetd>
//
// dadurch wird xinetd gezwungen seine konfiguration neu einzulesen.
//

Alternative: Öffnen des Port 113 auf den Windows XP Clients (von mir nicht empfohlen)

sollten Sie schon Windows XP Serivce Pack 2 erhalten haben, so deaktivieren Sie bitte die Anti-Virus Warnung:

Deaktivieren der Virenschutz-Warnmeldung

Start->Systemsteuerung->Sicherheitscenter->Empfehlungen->unteren Haken ankreuzen

es sollte sich folgendes Bild ergeben:

Firewall: aktiv. Automatische Updates: aktiv. Virenschutz: nicht überwacht.

OrgaMon wird geblockt: (wegen Webshop XML-RPC-Port)

siehe Installation.Arbeitsplatz

Firebird : Linux-Server

siehe Installation.Arbeitsplatz

Verwendung mit Delphi

Verwendung mit PHP

Verwendung mit Java Server Pages