Cette page a été traduite automatiquement. Lisez l'original en anglais. English

Bibliothèque IBSurgeon

Installation de Firebird 3 sur les versions modernes de Linux : CentOS 8 et Ubuntu 19

(C) Basil Sidorov, IBSurgeon, 22-May-2020

Cet article est consacré à l’installation rapide de Firebird 3.0 sur les nouvelles distributions Linux : CentOS 8 et Ubuntu 19 (fonctionne également pour 18).

La première section est un guide d’installation rapide pour installer Firebird 3.0 le plus rapidement possible, sans détails. La deuxième partie décrit les détails.

Installation rapide de Firebird 3 sur CentOS 8 et Ubuntu 19

  1. Ajoutez au fichier /etc/sysctl.conf la ligne suivante :

vm.max_map_count = 256000

  1. Enregistrez sysctl.conf et appliquez les nouveaux paramètres :

sudo sysctl -p /etc/sysctl.conf

Les instructions suivantes sont légèrement différentes pour CentOS 8 et Ubuntu 19.

Veuillez noter que nous avons utilisé le lien explicite vers la dernière version de distribution de Firebird 3.0 depuis FirebirdSQL.org, actuellement (mai 2020), il s’agit de la 3.0.5, et voici le lien pour la version 64 bits :

https://github.com/FirebirdSQL/firebird/releases/download/R3.0.5/Firebird-3.0.5.33220-0.amd64.tar.gz

À l’avenir, lorsque la 3.0.6, etc. apparaîtra, vous devrez utiliser le lien correct vers la nouvelle version - elle sera publiée sur www.firebirdsql.org.

  1. Installez les paquets

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

En conséquence, vous aurez tous les fichiers d’installation de Firebird prêts dans /tmp/firebird :

Code
/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
  1. Et ensuite, installez Firebird :

cd /tmp/Firebird-3.0.5.33220-0.amd64 sudo ./install.sh

puis, vérifiez que Firebird est en cours d’exécution - la commande ci-dessous affichera tous les processus liés à Firebird ou exécutés sous l’utilisateur firebird :

ps aux | grep firebird

C’est tout si vous avez simplement besoin d’installer Firebird 3.0.

Si vous souhaitez savoir ce que signifient les commandes ci-dessus, continuez à lire !

Partie principale : détails de l’installation de Firebird 3 sur Linux

Dans cet article, nous supposons que le système d’exploitation a été installé dans la version minimale et que vous avez déjà accès aux dépôts publics ou à leurs copies locales.

Planification de l’allocation d’espace

Sur le serveur destiné à servir les bases de données Firebird, nous recommandons d’allouer des volumes séparés pour les fichiers temporaires (/tmp), les fichiers de base de données et les sauvegardes locales.

Volume pour les fichiers temporaires

Les fichiers temporaires de Firebird incluent les fichiers de verrouillage, les fichiers de tri, les fichiers pour « matérialiser » les tables temporaires globales (GTT) et les tables de surveillance. Les fichiers de tri et les fichiers GTT sont situés dans /tmp, les fichiers mon$- et de verrouillage sont dans /tmp/firebird.

Les fichiers de tri sont désolidarisés immédiatement après leur création, c’est pourquoi vous ne pouvez pas les voir dans le dossier (contrairement à Windows) avec la commande ls.

Pour voir ces fichiers, vous devez demander les descripteurs de fichiers du processus Firebird (et ils sont marqués comme supprimés) :

sudo ls -lhF /proc/`pgrep firebird`/fd

Pour obtenir des détails sur un fichier de tri spécifique, exécutez la commande

sudo stat -L /proc/`pgrep firebird`/fd/NUMBER

où NUMBER est un descripteur de fichier du fichier.

Les fichiers temporaires peuvent être volumineux, il est donc recommandé d’allouer 20-30 Go pour /tmp.

Veuillez noter que la taille du tri ne dépend pas de la taille de la base de données : certaines requêtes erronées avec le produit direct peuvent facilement produire un fichier de tri de 100 Go pour une base de données de 3 Mo.

Volume pour les fichiers de base de données

Le volume pour les fichiers de base de données doit être suffisamment grand pour contenir tous les fichiers de base de données plus, au minimum, la taille de la plus grande base de données, pour d’éventuelles manipulations sur place.

N’oubliez pas non plus que les bases de données croissent avec le temps et réservez un peu d’espace libre pour elles.

Il est fortement recommandé de placer le volume pour les fichiers de base de données sur le lecteur/SAN/matériel le plus rapide que vous possédez, avec les capacités d’E/S aléatoires les plus élevées.

Volume pour les fichiers de sauvegarde locaux

Le volume pour les fichiers de sauvegarde locaux doit être suffisamment grand pour contenir les sauvegardes de toutes les bases de données plus la taille du plus grand fichier de base de données (pas la sauvegarde - c’est pour un éventuel test de restauration). Bien sûr, pensez à la croissance des sauvegardes de bases de données. Le volume pour les fichiers de sauvegarde locaux peut être situé sur des lecteurs relativement lents. Les fichiers de sauvegarde Firebird ont une structure linéaire, donc pour un lecteur de sauvegarde, il suffit d’avoir une vitesse séquentielle élevée.

Préparation

Le moteur Firebird alloue et désalloue dynamiquement la mémoire, ce qui peut entraîner une fragmentation de la mémoire.

Par exemple, cela peut se produire après la déconnexion de nombreux utilisateurs d’une instance Firebird SuperServer. La fragmentation de la mémoire est contrôlée par le paramètre système v m.max_map_count, qui a une valeur par défaut de 65K. Il est recommandé de l’augmenter au moins 4 fois et de rendre ce paramètre permanent.

Ajoutez la ligne suivante à /etc/sysctl.conf :

vm.max_map_count = 256000

et appliquez-la

sudo sysctl -p /etc/sysctl.conf

Installation des paquets nécessaires

Firebird 3 dépend de plusieurs paquets Linux : ncurses, ICU, tommath. Nous avons également besoin des utilitaires gzip, tar, et curl ou wget.

CentOS 8

CentOS utilise un nouveau gestionnaire de paquets dnf, qui est invoqué de manière transparente par yum. Nous aimons yum, alors utilisons yum. Tout d’abord, renouvelez le cache des métadonnées :

sudo yum makecache

Le paquet libtommath est situé dans le dépôt séparé EPEL (E(xtra)P(ackages for)E(nterprise)L(inux)), nous devons donc vérifier qu’il est activé :

yum -C repolist

L’option -C (–cache-only) fait en sorte que yum utilise uniquement le cache.

Si vous ne voyez pas le dépôt epel dans le résultat de yum -C repolist, installez-le :

sudo yum install epel-release && sudo yum makecache

En cas de problèmes, modifiez le fichier /etc/yum.repos.d/epel.repo et remplacez https:// par http://, puis réessayez yum makecache.

Ensuite, vérifions que nous avons tous les paquets nécessaires (64 bits dans l’exemple) :

Code
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 des paquets manquants sur CentOS 8

sudo yum install libicu libtommath tar

Ubuntu 19

Code
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 des paquets manquants sur Ubuntu 19 :

sudo apt‑get install libncurses5 libtommath1

Création de liens symboliques

Libtommath.so.1 et libncurses.so.6 sont compatibles avec libtommath.so.0 et libncurses.so.5, il suffira à Firebird de créer des liens symboliques vers les versions existantes des bibliothèques.

Tout d’abord, trouvons libtommath.so.1 (libncurses.so.? est dans le même dossier) :

find /usr -name libtommath.so.1

Sur CentOS8, il est situé dans :

Code
/usr/lib64/libtommath.so.1

Sur Ubuntu 19 :

Code
/usr/lib/x86_64-linux-gnu/libtommath.so.1

Créons les liens symboliques

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

pour vérifier les résultats :

ls -lhF $(dirname `find /usr -name libtommath.so.1`) | grep "lib\(ncurses\|tommath\)\.so\."

sur CentOS8, cela donne :

Code
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*

Sur Ubuntu, cela donne :

Code
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

Obtention de la distribution de la version Firebird 3.0

Les versions Linux de Firebird sont disponibles sur www.firebirdsql.org sous forme d’archives tar.gz. Supposons que URL soit le lien de téléchargement vers l’archive tar.gz de la version de Firebird. Nous devons télécharger et décompresser l’archive, pour cela nous pouvons utiliser curl ou wget.

curl

curl -L URL | tar -zxC /tmp

wget

wget -O- URL | tar -zxC /tmp

En conséquence, un dossier /tmp/Firebird‑3.0.5.33220‑0.amd64 sera créé avec 3 fichiers : install.sh, buildroot.tar.gz et manifest.txt.

Installation de Firebird

Comme prérequis, nous avons défini vm.max_map_count, vérifié et installé ICU, ncurses et tommath, et créé des liens symboliques.

Après cela, l’étape finale est simple - exécutez

sudo ./install.sh

Ce script démarre l’unité système firebird-superserver et Firebird est prêt à fonctionner.

Fichier de configuration et son optimisation

Veuillez noter que le fichier de configuration par défaut de Firebird, firebird.conf, est configuré de manière très modeste. Vous pouvez vérifier le contenu de firebird.conf (lignes non commentées) avec la commande :

grep -v ^# firebird.conf | grep -v ^$

Pour le firebird.conf par défaut, la commande ci-dessus ne renverra rien, ce qui signifie que toutes les valeurs sont par défaut.

Si vous configurez un système de production, envisagez d’utiliser des fichiers de configuration Firebird optimisés : /fr/optimized-firebird-configuration/

Question fréquemment posée #1

La question fréquente est « pourquoi ne pas simplement utiliser le dépôt et installer Firebird avec yum ou apt ? ». Bien sûr, c’est possible, mais il y a 2 grandes raisons :

  1. le dépôt peut contenir l’ancienne version (c’est-à-dire la version mineure précédente),

  2. nous aimons contrôler l’environnement pour garantir que tout est installé et configuré correctement.

De plus, nous préférons l’installation dans /opt, c’est plus facile pour les scripts multiplateformes et une bonne pratique d’administration.

Contacts

N’hésitez pas à envoyer vos questions, suggestions et erreurs éventuelles à [email protected]