Contattaci epr una consulenza info@firebirdsql.it



Installazione di Firebird 3 su CentOS 8 e Ubuntu 19

Posted: 05/25/2020 15:05:31, in category Tips & tricks


 

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

 

Questo articolo è dedicato alla rapida installazione di Firebird 3.0 sulle nuove distribuzioni Linux: CentOS 8 e Ubuntu 19 (funziona anche per 18).

La prima sezione è una guida rapida all'installazione per installare Firebird 3.0 il più velocemente possibile, senza dettagli. La seconda parte descrive i dettagli.

Installazione rapida di Firebird 3 su CentOS 8 e Ubuntu 19

1.Aggiungere al file /etc/sysctl.conf la seguente linea
vm.max_map_count = 256000
2. Salva sysctl.conf e applica le nuove impostazioni:
sudo sysctl -p /etc/sysctl.conf

Le istruzioni successive sono leggermente diverse per CentOS 8 e Ubuntu 19.

Si noti che abbiamo utilizzato il collegamento esplicito all'ultima distribuzione di Firebird 3.0 da FirebirdSQL.org, attualmente (maggio 2020), è 3.0.5, ed ecco il collegamento per la versione a 64 bit:
https://github.com/FirebirdSQL/firebird/releases/download/R3_0_5/Firebird-3.0.5.33220-0.amd64.tar.gz
In futuro, quando apparirà 3.0.6, ecc., Sarà necessario utilizzare il collegamento corretto alla nuova versione, che sarà pubblicata su www.firebirdsql.org.

3. Installa i package

CentOS8
sudo yum -y install epel-release
sudo yum -y makecache
sudo yum -y install libicu libtommath tar
sudo ln -s libncurses.so.5 /usr/lib64/libncurses.so.5
sudo ln -s libtommath.so.1 /usr/lib64/libtommath.so.0
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


Di conseguenza, avrai tutti i file di installazione di Firebird pronti in / tmp / firebird:

/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

4. A questo punto installa Firebird:

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


quindi, controlla che Firebird sia in esecuzione: il comando seguente mostrerà tutti i processi relativi a Firebird o in esecuzione sotto l'utente firebird:


ps aux | grep firebird

Questo è tutto se hai solo bisogno di installare Firebird 3.0.
Se vuoi sapere cosa significano i comandi sopra, continua a leggere!

Dettagli sull'installazione di Firebird 3 su Linux

In questo articolo, supponiamo che il sistema operativo sia stato installato nella versione minima e che tu abbia già accesso ai repository pubblici o alle loro copie locali.

Planning space allocation

Sul server destinato a servire database Firebird, si consiglia di allocare volumi separati per file temporanei (/ tmp), file di database e backup locali.

Volume per i file temp 

I file temporanei di Firebird includono file di blocco, file di ordinamento, file per "materializzare" le tabelle temporanee globali (GTT) e le tabelle di monitoraggio. L'ordinamento dei file e dei file GTT si trova in / tmp, mon $ - e i file di blocco si trovano in / tmp / firebird.
L'ordinamento dei file viene scollegato immediatamente dopo la creazione, ecco perché non puoi vederli nella cartella (a differenza di Windows) con il comando ls.
Per vedere questi file, è necessario richiedere gli handle di file del processo Firebird (e sono contrassegnati come eliminati):sudo ls -lhF /proc/`pgrep firebird`/fd

Per ottenere dettagli su un file di ordinamento specifico, eseguire il comando
sudo stat -L /proc/`pgrep firebird`/fd/NUMBER

dove NUMBER è un descrittore di file del file.
I file temporanei possono essere di grandi dimensioni, quindi si consiglia di allocare 20-30Gb per / tmp.

La dimensione dell'ordinamento non dipende dalla dimensione del database: alcune query errate con il prodotto diretto possono facilmente produrre un file di ordinamento da 100 Gb del database da 3 Mb.

Volume per i file dei database

Il volume per i file di database dovrebbe essere abbastanza grande da mantenere tutti i file di database più, come minimo, la dimensione del database più grande, per possibili manipolazioni sul posto.
Inoltre, ricorda che i database crescono nel tempo e riservano uno spazio libero anche a loro.
Si consiglia vivamente di mettere il volume dei file di database sull'unità / SAN / hardware più veloce che si disponga, con le più elevate capacità di I / O casuali.

Volume per i file dei backup fatti localmente

Il volume per i file di backup locali dovrebbe essere abbastanza grande da avere backup per tutti i database più le dimensioni per il file di database più grande (non il backup - è per un possibile ripristino di prova). Naturalmente, ricorda la crescita dei backup del database. Il volume per i file di backup locali può trovarsi su unità relativamente lente. I file di backup di Firebird hanno una struttura lineare, quindi per un'unità di backup è sufficiente avere un'alta velocità sequenziale.

Preparazione

Il motore Firebird alloca e alloca dinamicamente la memoria, può portare alla frammentazione della memoria.
Ad esempio, può succedere dopo aver disconnesso molti utenti dall'istanza di Firebird SuperServer. La frammentazione della memoria è controllata dal parametro di sistema vm.max_map_count, che ha un valore predefinito 65K. Si consiglia di aumentarlo almeno 4x volte e rendere permanente questa impostazione.
Aggiungi la seguente riga a /etc/sysctl.conf:
vm.max_map_count = 256000

e applica
sudo sysctl -p /etc/sysctl.conf

Installazione dei pacchatti necessari

Firebird 3 dipende dai numerosi pacchetti Linux: ncurses, ICU, tommath. Inoltre, abbiamo bisogno di utility gzip, tar e curl o wget.

CentOS 8

CentOS utilizza un nuovo gestore di pacchetti dnf, che viene invocato in modo trasparente da yum. Ci piace lo yum, quindi usiamo lo yum. Innanzitutto, rinnova la cache dei metadati:
sudo yum makecache
Il pacchetto libtommath si trova nel repository separato EPEL (E (xtra) P (ackages for) E (nterprise) L (inux)), quindi è necessario verificare che sia abilitato:
yum -C repolist
L'opzione -C (-cache-only) consente a yum di utilizzare solo la cache.
Se non vedi epel-repository nel risultato della replica di yum -C, installalo:
sudo yum install epel-release && sudo yum makecache

In caso di problemi, modificare il file /etc/yum.repos.d/epel.repo e sostituire https:// in http:// e riprovare  yum makecache.

Quindi, controlliamo che abbiamo tutti i pacchetti necessari (nell'esempio a 64 bit):

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

Per installare i pacchetti mancanti su 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 
libicu63 63.2-2 
libncurses5 6.1
libncurses6 6.1 
libtommath1 1.1.0
tar 1.30 
wget 1.20.3 

Per installare i pacchetti mancanti su Ubuntu 19:

sudo apt‑get install libncurses5 libtommath1


Creare i symlinks

Libtommath.so.1 e libncurses.so.6 sono compatibili con libtommath.so.0 e libncurses.so.5, sarà sufficiente che Firebird crei collegamenti simbolici alle versioni delle librerie esistenti.
Innanzitutto, troviamo libtommath.so.1 (libncurses.so.? È nella stessa cartella):
find /usr -name libtommath.so.1
Nel caso di On CentOS8 sono posizionati in: 

/usr/lib64/libtommath.so.1

Su Ubuntu 19:

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


quindi creiamo i symlinks
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

e per controllare che tutto sia a posto:
ls -lhF  $(dirname `find /usr -name libtommath.so.1`) | grep "lib\(ncurses\|tommath\)\.so\."

su CentOS8 dovreste avere come risposta:

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*

Su Ubuntu  dovreste avere come risposta:

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 

Ottnere la distribuzione di release di Firebird 3.0 

Le versioni di Firebird Linux sono disponibili su www.firebirdsql.org come archivi tar.gz. Supponiamo che l'URL sia il link per il download dell'archivio tar.gz di Firebird. Dobbiamo scaricare e decomprimere l'archivio, per questo possiamo usare curl o wget.
curl
curl -L URL | tar -zxC /tmp

wget
wget -O– URL | tar -zxC /tmp

Come risultato, sarà creata la cartella /tmp/Firebird‑3.0.5.33220‑0.amd64 con 3 file: install.sh, buildroot.tar.gz, e manifest.txt.

Installazione di Firebird

Come prerequisiti, abbiamo impostato vm.max_map_count, verificato e installato ICU, ncurses e tommath e creato collegamenti simbolici.
Successivamente, il passaggio finale è di facile esecuzione
sudo ./install.sh
Questo script avvia firebird-superserver dell'unità di sistema e Firebird è pronto per funzionare.
 

File di configurazione file e sia ottimizzazione

Si noti che il file di configurazione predefinito di Firebird firebird.conf è configurato in modo molto modesto. Puoi controllare il contenuto di firebird.conf (righe non commentate) con il comando:
grep -v ^# firebird.conf | grep -v ^$

Per il predefinito firebird.conf, il comando sopra non restituirà nulla, significa che tutti i valori sono predefiniti.

Se stai configurando il sistema di produzione, considera l'utilizzo dei file di configurazione di Firebird ottimizzati: https://ib-aid.com/en/optimized-firebird-configuration/

Frequently Asked Question #1

La domanda frequente è "perché semplicemente non usare il repository e installare Firebird usando yum o apt?". Certo, è possibile, ma ci sono 2 grandi motivi:
1) il repository può contenere la versione precedente (ovvero la versione secondaria precedente),
2) ci piace controllare l'ambiente per garantire che tutto sia installato e configurato correttamente.
Inoltre, preferiamo l'installazione a / opt, è più facile per gli script multipiattaforma e le buone pratiche amministrative.