Installieren von Firebird 3 auf modernen Linux-Versionen: CentOS 8 und Ubuntu 19
(C) Basil Sidorov, IBSurgeon, 22-Mai-2020
Dieser Artikel widmet sich der schnellen Installation von Firebird 3.0 auf den neuen Linux-Distributionen: CentOS 8 und Ubuntu 19 (funktioniert auch für 18).
Der erste Abschnitt ist eine Schnellinstallationsanleitung, um Firebird 3.0 so schnell wie möglich zu installieren, ohne Details. Der zweite Teil beschreibt die Details.
Schnellinstallation von Firebird 3 auf CentOS 8 und Ubuntu 19
- Fügen Sie der Datei /etc/sysctl.conf die folgende Zeile hinzu:
vm.max_map_count = 256000
- Speichern Sie sysctl.conf und wenden Sie die neuen Einstellungen an:
sudo sysctl -p /etc/sysctl.conf
Die folgenden Anweisungen unterscheiden sich geringfügig für CentOS 8 und Ubuntu 19.
Bitte beachten Sie, dass wir den expliziten Link zur neuesten Release-Distribution von Firebird 3.0 von FirebirdSQL.org verwendet haben, derzeit (Mai 2020) ist es 3.0.5, und hier ist der Link für die 64-Bit-Version:
https://github.com/FirebirdSQL/firebird/releases/download/R3.0.5/Firebird-3.0.5.33220-0.amd64.tar.gz
In Zukunft, wenn 3.0.6 usw. erscheinen, müssen Sie den korrekten Link zur neuen Version verwenden - er wird auf www.firebirdsql.org veröffentlicht.
- Pakete installieren
CentOS8
sudo yum -y install epel-release sudo yum -y makecache sudo yum -y install libicu libtommath tar sudo ln -s libncurses.so.6 /usr/lib64/libncurses.so.5 sudo ln -s libtommath.so.1 /usr/lib64/libtommath.so.0
sudo ln -s ln -s libncurses.so.5 /usr/lib64/libncurses.so.5
curl -L https://github.com/FirebirdSQL/firebird/releases/download/R3_0_5/Firebird-3.0.5.33220-0.amd64.tar.gz|tar -zxC /tmp
Ubuntu 19
sudo apt-get -y install libncurses5 libtommath1 sudo ln -s libtommath.so.1 /usr/lib/x86_64-linux-gnu/libtommath.so.0 wget -O- https://github.com/FirebirdSQL/firebird/releases/download/R3_0_5/Firebird-3.0.5.33220-0.amd64.tar.gz|tar -zxC /tmp
Als Ergebnis haben Sie alle Firebird-Installationsdateien in /tmp/firebird bereit:
/tmp/Firebird-3.0.5.33220-0.amd64# ll
total 8484
drwxr-xr-x 2 root root 4096 Jan 9 13:13 ./
drwxrwxrwt 28 root root 4096 May 22 17:20 ../
-rw-r--r-- 1 root root 8615663 Jan 9 13:13 buildroot.tar.gz
-rwxr-xr-x 1 root root 44096 Jan 9 13:13 install.sh*
-rw-r--r-- 1 root root 14967 Jan 9 13:13 manifest.txt
- Und dann Firebird installieren:
cd /tmp/Firebird-3.0.5.33220-0.amd64 sudo ./install.sh
Überprüfen Sie dann, dass Firebird läuft - der folgende Befehl zeigt alle Prozesse an, die mit Firebird zusammenhängen oder unter dem Benutzer firebird laufen:
ps aux | grep firebird
Das ist alles, wenn Sie nur Firebird 3.0 installieren müssen.
Wenn Sie wissen möchten, was die obigen Befehle bedeuten, lesen Sie bitte weiter!
Hauptteil: Details der Installation von Firebird 3 auf Linux
In diesem Artikel gehen wir davon aus, dass das Betriebssystem in der Minimalversion installiert wurde und Sie bereits Zugriff auf die öffentlichen Repositories oder deren lokale Kopien haben.
Planung der Speicherplatzzuteilung
Auf dem Server, der Firebird-Datenbanken bedienen soll, empfehlen wir, separate Volumes für temporäre Dateien (/tmp), Datenbankdateien und lokale Backups zuzuweisen.
Volume für temporäre Dateien
Firebird-Temporärdateien umfassen Sperrdateien, Sortierdateien, Dateien zur “Materialisierung” globaler temporärer Tabellen (GTT) und Überwachungstabellen. Sortierdateien und GTT-Dateien befinden sich in /tmp, mon$- und Sperrdateien in /tmp/firebird.
Sortierdateien werden unmittelbar nach der Erstellung verknüpft (unlinked), deshalb können Sie sie im Ordner (anders als unter Windows) nicht mit dem Befehl ls sehen.
Um diese Dateien zu sehen, müssen Sie die Datei-Handles des Firebird-Prozesses anfordern (und sie sind als gelöscht markiert):
sudo ls -lhF /proc/`pgrep firebird`/fd
Um Details zu einer bestimmten Sortierdatei zu erhalten, führen Sie den Befehl aus
sudo stat -L /proc/`pgrep firebird`/fd/NUMBER
wobei NUMBER ein Dateideskriptor der Datei ist.
Temporäre Dateien können groß sein, daher wird empfohlen, 20-30 GB für /tmp zuzuweisen.
Bitte beachten Sie, dass die Sortiergröße nicht von der Datenbankgröße abhängt: Einige fehlerhafte Abfragen mit direktem Produkt können leicht eine 100-GB-Sortierdatei aus einer 3-MB-Datenbank erzeugen.
Volume für Datenbankdateien
Das Volume für Datenbankdateien sollte groß genug sein, um alle Datenbankdateien plus mindestens die Größe der größten Datenbank für mögliche In-Place-Manipulationen aufzunehmen.
Denken Sie auch daran, dass Datenbanken im Laufe der Zeit wachsen, und reservieren Sie auch etwas freien Speicherplatz für sie.
Es wird dringend empfohlen, das Volume für die Datenbankdateien auf dem schnellsten Laufwerk/SAN/Hardware zu platzieren, das Sie haben, mit der höchsten Zufalls-I/O-Fähigkeit.
Volume für lokale Backup-Dateien
Das Volume für lokale Backup-Dateien sollte groß genug sein, um Backups für alle Datenbanken plus die Größe der größten Datenbankdatei (nicht Backup - es ist für mögliche Testwiederherstellungen) aufzunehmen. Denken Sie natürlich auch an das Wachstum der Datenbank-Backups. Das Volume für lokale Backup-Dateien kann auf relativ langsamen Laufwerken liegen. Firebird-Backupdateien haben eine lineare Struktur, daher reicht für ein Backup-Laufwerk eine hohe sequenzielle Geschwindigkeit aus.
Vorbereitung
Die Firebird-Engine weist Speicher dynamisch zu und gibt ihn wieder frei, was zu Speicherfragmentierung führen kann.
Dies kann zum Beispiel nach dem Trennen vieler Benutzer von einer Firebird-SuperServer-Instanz passieren. Die Speicherfragmentierung wird durch den Systemparameter v m.max_map_count gesteuert, der einen Standardwert von 65K hat. Es wird empfohlen, ihn mindestens um das 4-fache zu erhöhen und diese Einstellung dauerhaft zu machen.
Fügen Sie die folgende Zeile zu /etc/sysctl.conf hinzu:
vm.max_map_count = 256000
und wenden Sie sie an
sudo sysctl -p /etc/sysctl.conf
Installation der erforderlichen Pakete
Firebird 3 hängt von mehreren Linux-Paketen ab: ncurses, ICU, tommath. Außerdem benötigen wir die Dienstprogramme gzip, tar und curl oder wget.
CentOS 8
CentOS verwendet einen neuen Paketmanager dnf, der transparent von yum aufgerufen wird. Wir mögen yum, also verwenden wir yum. Erneuern Sie zuerst den Metadaten-Cache:
sudo yum makecache
Das Paket libtommath befindet sich im separaten Repository EPEL (E(xtra)P(ackages for)E(nterprise)L(inux)), daher müssen wir prüfen, dass es aktiviert ist:
yum -C repolist
Die Option -C (–cache-only) bewirkt, dass yum nur den Cache verwendet.
Wenn Sie das epel-Repository nicht im Ergebnis von yum -C repolist sehen, installieren Sie es:
sudo yum install epel-release && sudo yum makecache
Bei Problemen bearbeiten Sie die Datei /etc/yum.repos.d/epel.repo und ersetzen Sie https:// durch http://, und versuchen Sie yum makecache erneut.
Dann prüfen wir, dass wir alle notwendigen Pakete haben (64-Bit im Beispiel):
yum -C list ncurses libicu libtommath gzip tar curl wget | grep -v i686
Installed Packages
curl.x86_64 7.61.1-11.el8 @anaconda
gzip.x86_64 1.9-9.el8 @anaconda
ncurses.x86_64 6.1-7.20180224.el8 @anaconda
Available Packages
libicu.x86_64 60.3-1.el8 BaseOS
libtommath.x86_64 1.1.0-1.el8 epel
tar.x86_64 2:1.30-4.el8 BaseOS
wget.x86_64 1.19.5-8.el8_1.1 AppStream
Installation fehlender Pakete auf CentOS 8
sudo yum install libicu libtommath tar
Ubuntu 19
apt list libncurses? libicu?? libtommath? gzip tar curl wget | grep -v i386
curl 7.65.3-1
gzip 1.10-0 [upgradable…]
libicu63 63.2-2 [installed]
libncurses5 6.1
libncurses6 6.1 [installed,automatic]
libtommath1 1.1.0
tar 1.30 [installed]
wget 1.20.3 [installed]
Installation fehlender Pakete auf Ubuntu 19:
sudo apt‑get install libncurses5 libtommath1
Erstellen von symbolischen Links
Libtommath.so.1 und libncurses.so.6 sind kompatibel mit libtommath.so.0 und libncurses.so.5, es reicht für Firebird, symbolische Links auf die vorhandenen Bibliotheksversionen zu erstellen.
Zuerst finden wir libtommath.so.1 (libncurses.so.? befindet sich im selben Ordner):
find /usr -name libtommath.so.1
Auf CentOS8 befindet es sich in:
/usr/lib64/libtommath.so.1
Auf Ubuntu 19:
/usr/lib/x86_64-linux-gnu/libtommath.so.1
Erstellen wir symbolische Links
CentOS8
sudo ln -s libtommath.so.1 /usr/lib64/libtommath.so.0 sudo ln -s libncurses.so.6 /usr/lib64/libncurses.so.5
Ubuntu 19
sudo ln -s libtommath.so.1 /usr/lib/x86_64-linux-gnu/libtommath.so.0
um die Ergebnisse zu überprüfen:
ls -lhF $(dirname `find /usr -name libtommath.so.1`) | grep "lib\(ncurses\|tommath\)\.so\."
auf CentOS8 ergibt es:
libncurses.so.5 -> libncurses.so.6*
libncurses.so.6 -> libncurses.so.6.1*
libncurses.so.6.1*
libtommath.so.0 -> libtommath.so.1*
libtommath.so.1 -> libtommath.so.1.1.0*
libtommath.so.1.1.0*
Auf Ubuntu ergibt es:
libncurses.so.5 -> libncurses.so.5.9
libncurses.so.5.9
libncurses.so.6 -> libncurses.so.6.1
libncurses.so.6.1
libtommath.so.0 -> libtommath.so.1
libtommath.so.1 -> libtommath.so.1.1.0
libtommath.so.1.1.0
Firebird 3.0 Release-Distribution erhalten
Firebird-Linux-Versionen sind auf www.firebirdsql.org als tar.gz-Archive verfügbar. Nehmen wir an, dass URL der Download-Link zum Firebird-Release-tar.gz-Archiv ist. Wir müssen das Archiv herunterladen und entpacken, dafür können wir curl oder wget verwenden.
curl
curl -L URL | tar -zxC /tmp
wget
wget -O- URL | tar -zxC /tmp
Als Ergebnis wird der Ordner /tmp/Firebird‑3.0.5.33220‑0.amd64 mit 3 Dateien erstellt: install.sh, buildroot.tar.gz und manifest.txt.
Firebird installieren
Als Voraussetzungen haben wir vm.max_map_count gesetzt, ICU, ncurses und tommath überprüft und installiert und symbolische Links erstellt.
Danach ist der letzte Schritt einfach - führen Sie aus
sudo ./install.sh
Dieses Skript startet die System-Unit firebird-superserver und Firebird ist bereit zu arbeiten.
Konfigurationsdatei und ihre Optimierung
Bitte beachten Sie, dass die Standard-Konfigurationsdatei firebird.conf von Firebird sehr bescheiden konfiguriert ist. Sie können den Inhalt von firebird.conf (nicht auskommentierte Zeilen) mit dem Befehl überprüfen:
grep -v ^# firebird.conf | grep -v ^$
Für die Standard-firebird.conf gibt der obige Befehl nichts zurück, das bedeutet, alle Werte sind Standard.
Wenn Sie ein Produktionssystem konfigurieren, ziehen Sie die Verwendung optimierter Firebird-Konfigurationsdateien in Betracht: /de/optimized-firebird-configuration/
Häufig gestellte Frage #1
Die häufige Frage ist “warum nicht einfach das Repository verwenden und Firebird mit yum oder apt installieren?”. Natürlich ist das möglich, aber es gibt 2 große Gründe:
-
Das Repository kann die alte Version enthalten (d.h. die vorherige Nebenversion),
-
Wir kontrollieren gerne die Umgebung, um sicherzustellen, dass alles korrekt installiert und konfiguriert ist.
Außerdem bevorzugen wir die Installation nach /opt, das ist einfacher für plattformübergreifende Skripte und eine gute Administrationspraxis.
Kontakte
Bitte zögern Sie nicht, Fragen, Vorschläge und mögliche Fehler an [email protected] zu senden.