(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 lineavm.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
CentOS8sudo 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 19sudo 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!
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.
Sul server destinato a servire database Firebird, si consiglia di allocare volumi separati per file temporanei (/ tmp), file di database e backup locali.
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 comandosudo 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.
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.
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 applicasudo sysctl -p /etc/sysctl.conf
Firebird 3 dipende dai numerosi pacchetti Linux: ncurses, ICU, tommath. Inoltre, abbiamo bisogno di utility gzip, tar e curl o wget.
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 8sudo yum install libicu libtommath tar
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
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
CentOS8sudo ln -s libtommath.so.1 /usr/lib64/libtommath.so.0
sudo ln -s libncurses.so.6 /usr/lib64/libncurses.so.5
Ubuntu 19sudo 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
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.
curlcurl -L URL | tar -zxC /tmp
wgetwget -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.
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 esecuzionesudo ./install.sh
Questo script avvia firebird-superserver dell'unità di sistema e Firebird è pronto per funzionare.
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.