Installéiere Firebird 3 op Modern Linux Versiounen: CentOS8 an Ubuntu 19

An dësem Artikel wäerte mir de Minimum Set vun Aktiounen beschreiwen fir eng optimal Installatioun vun der Firebird DBMS Versioun 3.0 op nei Linux Verdeelungen. CentOS 8 an Ubuntu 19 gi fir Beispiller ausgewielt.

Fir d'Firebird Verdeelung un den Zilsystem ze "liwweren", an dësem Guide, gëtt d'Optioun fir den tar.gz Archiv erofzelueden mat engem Link vun der offizieller Projet Websäit (firebirdsql.org).

Fir déi Ongedëllegst, gitt direkt an d'Schluecht:

Séier Installatioun

Änneren vun der Datei /etc/sysctl.confandeems Dir d'Linn derbäigesat:

vm.max_map_count = 256000

Späichert d'Datei an applizéiert d'Astellung:

sudo sysctl -p /etc/sysctl.conf

Weider Instruktiounen ënnerscheeden sech fir CentOS 8 an Ubuntu 19, awer ССЫЛКА и КАТАЛОГ uginn e Link vun der offizieller Firebird Projet Websäit fir d'Verdeelung erofzelueden an de Verzeechnes an deem d'Verdeelung während dem Downloadprozess ausgepackt gëtt.
De Moment (Mäerz 2020) ass déi aktuell Verëffentlechung Firebird 3.0.5 (Hei ass de Link op d'64-Bit Versioun).

CentOS 8

sudo yum -y install epel-release
sudo yum -y makecache
sudo yum -y install libicu libtommath tar
ln -s libncurses.so.5 
/usr/lib64/libncurses.so.5
ln -s libtommath.so.1 
/usr/lib64/libtommath.so.0
curl -L ССЫЛКА|tar -zxC /tmp

Ubuntu 19

sudo apt-get -y install libncurses5 libtommath1
ln -s libtommath.so.1 
/usr/lib/x86_64-linux-gnu/libtommath.so.0
wget -O- ССЫЛКА|tar -zxC /tmp

Déi aktuell Installatioun vum Firebird DBMS:

cd /tmp/КАТАЛОГ
sudo ./install.sh

Wann Dir besser wëllt verstoen wat dës Aktiounen maachen, liest weider.

Haaptsaach

Kleng Preambel

Et gëtt ugeholl datt d'OS schonn an enger minimaler Versioun installéiert ass an den Zougang zu ëffentleche Repositories oder hir lokal Kopien konfiguréiert ass.

Et gëtt ugeholl datt de Lieser Basiskenntnisser vu Linux an dem Firebird DBMS huet.

Planung

Um DBMS Server ass et recommandéiert separat Sektioune fir temporär Dateien ze verdeelen (/tmp), Datebankdateien a lokale Backups.

Temporär enthalen Spärdateien, Sortéierungsdateien, "Materialiséierungs" Dateie vu globalen temporäre Dëscher (GTT) an Iwwerwaachungstabellen. Dateien fir d'Zortéierung a global temporär Dëscher sinn an /tmp, mon$-Table Dateien a Sperrdateien - an /tmp/firebird.

Sortéierungsdateien ginn "geläscht" (unlink) direkt no der Schafung, sou datt se net an der Verzeechneslëscht "gesi" kënne ginn - nëmmen an der Lëscht vun de Prozesshandhaber (markéiert als deleted):

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

Am Pseudo Verzeichnis Oplëschtung /proc/…/fd/ Symlinks ginn ugewisen, an aktuell Informatioun iwwer d'Datei gëtt vun:

sudo stat -L /proc/`pgrep firebird`/fd/НОМЕР

wou НОМЕР - Descriptor (Descriptor) vum Interessedatei.

Amplaz ze ruffen "pgrep исполняемый-файл"Dir kënnt direkt den Identifizéierer vum Interesseprozess ersetzen.

Temporär Dateie kënne ganz grouss sinn, also /tmp Et ass recommandéiert op d'mannst 20-30 GB ze verdeelen. Et sollt berécksiichtegt ginn datt d'Gréisst vun de Sortéierungsdateien nëmmen hänkt vun der Quantitéit vun Daten explizit oder implizit an der Ufro zortéiert, an en eenzege Benotzer kann Gigabytes vun temporäre Dateien "erstellen".

D'Sektioun fir Datebankdateien muss all Datebankdateien aménagéieren. plus, op d'mannst, eng Kopie vun der gréisster Datebank Fichier. Et ass néideg de Wuesstum vun Datebankdateien an Zukunft fir e puer Joer ze berücksichtegen.

Déi lokal Backup-Sektioun muss mindestens e Backup-Archiv vun allen Datenbanken enthalen plus e Backup vun der gréisster Datebank. Et ass wënschenswäert datt dës Sektioun och Plaz enthält fir déi gréisste Datebank ze restauréieren. De Wuesstum vun de Backups a Backuparchiven an Zukunft fir e puer Joer sollt berücksichtegt ginn.

Préparatioun virzebereeden

De Firebird 3.0 DBMS Server allokéiert dynamesch a befreit System Memory, wat zu senger Fragmentatioun féieren kann. Zum Beispill, nodeems eng grouss Zuel vu Benotzer vum Superserver op eemol getrennt sinn, kënnen Fehler geschéien wann Dir nei Verbindungen maacht.

Memory Fragmentatioun gëtt vun engem Systemparameter kontrolléiert vm.max_map_count, Standard ass 64K. Et ass recommandéiert säi Wäert ëm véier Mol ze erhéijen:

sudo sysctl vm.max_map_count=256000

Also datt den neie Wäert festgeluegt gëtt wann de System nei start, addéiere se an d'Datei /etc/sysctl.conf Linn:

vm.max_map_count = 256000

Et ass ubruecht e Kommentar ze maachen, sou datt de Grond fir dës Parameter z'änneren kloer ass. Dir kënnt d'éischt d'Datei änneren an dann d'Astellunge benotzen, déi an deem gespäichert sinn:

sudo sysctl -p /etc/sysctl.conf

Installéiert erfuerderlech Packagen

Ausféierbar Dateie vum Firebird 3.0 Linux DBMS hänkt vun den ncurses Bibliothéiken of (libncurses.so.5), ICU (net mat der Versioun gebonnen an net am Ausgang ugewisen ldd) an Tommeth (libtommath.so.0). Fir d'Versammlungsarchiv erofzelueden an auszepaken, braucht Dir Utilities gzip, tar и curl oder wget. ICU Versiounen, gzip, tar и curl/wget - sinn onwichteg.

D'Aarbecht mat Packagen hänkt vum System an vum Package Manager of, deen am System benotzt gëtt, also wäerte mir se een nom aneren berücksichtegen.

CentOS 8

CentOS 8 benotzt en neie Package Manager - dnf an et gëtt "transparent" vum Kommando genannt yum. Well et fir eis Zwecker keen Ënnerscheed tëscht hinnen ass - an de Beispiller wäert et sinn yum.

Update de Metadaten Cache: sudo yum makecache

De libtomath Package ass an engem separaten E(xtra)P(Packagen fir)E(nterprise)L(inux) Repository lokaliséiert, sou datt mir kontrolléieren ob et scho mat abegraff ass:

yum -C repolist

Optioun "nëmme vum Cache" (-C oder --cache-only) gëtt benotzt fir onnéideg Kontrollen an Downloads ze eliminéieren, sou datt Yum méi séier gëtt. Wann et keen Epel Repository an der Lëscht ass, installéiere se an aktualiséiert de Metadaten Cache:

sudo yum install epel-release &&
sudo yum makecache

Mir bestätegen Ufroen, wann néideg, iwwerpréift d'Wäerter vun de pgp-Schlësselen mat deenen, déi scho vun enger vertrauter Quell bekannt sinn.

Wann et Problemer gëtt mat Repository Metainformatioun vu https Ressourcen ze lueden, ännert d'Datei /etc/yum.repos.d/epel.repo, ersetzen https:// op http:// a widderhuelen de Cache Update Kommando.

Mir kontrolléieren de Status vun den erfuerderleche Packagen (de Kommando ass komplizéiert, am Beispillausgab ass den 32-Bit Package gefiltert):

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

Mir gesinn dat curl, gzip и ncurses gehost am Installateur Pseudo-Repository (anaconda), an tar - aus der Minimum System Installatioun ausgeschloss. Major Versiounen libncurses и libtommath méi wéi néideg: 6 an 1 amplaz 5 respektiv 0. Wann dee selwechte Package souwuel installéiert a verfügbar ass, ass en Update dofir verëffentlecht ginn. Installéiert déi fehlend Packagen:

sudo yum install 
libicu libtommath tar

Ubuntu 19

Utilities sinn entwéckelt fir Packagen ze managen apt, apt‑get и apt‑cache. Déi éischt ass fir interaktiv Aarbecht entworf, an déi lescht zwee si fir Scripte benotzt. D'Paknamen si liicht anescht an enthalen d'Versioun.

Mir kontrolléieren de Status vun den erfuerderleche Packagen (de Kommando ass kombinéiert, d'Beispillausgang gëtt verkierzt, an 32-Bit Packagen ginn ausfiltert):

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]

Packagen fir déi de Quadratklammer uginn installed/upgradable - installéiert. Verfügbar awer net installéiert ncurses5, amplaz vun curl installéiert wget. Installéiert déi fehlend Packagen:

sudo apt‑get install 
libncurses5 libtommath1

Symlinks erstellen

Zënter dem libtommath.so.1 и libncurses.so.6 Récksäit kompatibel mat libtommath.so.0 и libncurses.so.5, dann ass et fir Firebird genuch fir Symlinks op déi existent Versioune vun de Bibliothéiken ze kreéieren.

Fannen libtommath.so.1 (libncurses.so.? am selwechte Verzeechnes läit):

find /usr -name libtommath.so.1

CentOS:

/usr/lib64/libtommath.so.1

Ubuntu:

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

Mir kreéieren Symlinks.

CentOS:

sudo ln -s libtommath.so.1 
/usr/lib64/libtommath.so.0
sudo ln -s libncurses.so.6 
/usr/lib64/libncurses.so.5

Ubuntu:

sudo ln -s libtommath.so.1 
/usr/lib/x86_64-linux-gnu/libtommath.so.0

Loosst eis d'Resultat iwwerpréiwen (de Kommando ass komplizéiert, d'Ausgangsbeispiller sinn verkierzt):

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

CentOS:

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*

Ubuntu:

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

Luet de Firebird DBMS Verdeelungskit erof.

Déi offiziell Websäit vum Firebird-Projet (firebirdsql.org) publizéiert Linken op Verdeelunge vun "offiziellen" Verëffentlechungen an "deeglechen" Builds (Snapshot Builds).

Offiziell Linux Verëffentlechungen sinn als Archiven (tar.gz) an deb / rpm Packagen verfügbar, awer Builds sinn nëmmen als Archiven verfügbar. Mir betruechten den "generesche Installateur" (generesche Installateur vun tar.gz).

De Bauarchiv muss erofgelueden an ausgepackt ginn, awer mir wäerte béid Prozesser kombinéieren. Auspackung gëtt gemaach /tmp,URL bezeechent de Link op dat erofgelueden Archiv.

krullen:

curl -L URL | tar -zxC /tmp

wget:

wget -O– URL | tar -zxC /tmp

Par défaut curl schéckt déi erofgeluede Donnéeën op stdout awer behandelt keng Viruleedungen a mir addéieren "‑L", an wget, am Géigendeel: geréiert Viruleedungen, awer schreift Daten an eng Datei a mir setzen "‑O‑" Fir tar benotzen uginn gzip-filter an de Verzeichnis an deem d'Auspackung duerchgefouert gëtt. Wann de Prozess fäerdeg ass, erschéngt e Verzeichnis wéi dëst Firebird‑3.0.5.33220‑0.amd64 mat dräi Dateien: install.sh, buildroot.tar.gz и manifest.txt.

Installéiert Firebird

Wärend der virleefeg Virbereedung hu mir de Wäert vum Systemparameter ugepasst vm.max_map_count, iwwerpréift fir Disponibilitéit an installéiert der ICU, ncurses an tommath Bibliothéiken. Vergewëssert Iech datt d'Versioune vun ncurses a tommath korrekt sinn (libncures.so.5 и libtommath.so.0) an déi néideg Symlinks erstallt.

Déi aktuell Installatioun ass ganz einfach. Gitt an de Verzeichnis wou de Firebird Verdeelungsarchiv ausgepackt gouf, kontrolléiert an, wann néideg, den "ausführbare" Fändel fir de Skript setzen install.sh:

chmod +x install.sh

lafen d'Installatiounsskript:

sudo ./install.sh

Andeems Dir den Enter Schlëssel dréckt, bestätegen mir den Ufank vun der Installatioun, a beim Empfang vun der Ufro gitt d'sysdba Passwuert.

D'Installatiounsskript fänkt automatesch un systemd- Eenheet firebird-superserver (silent Firebird 3.0 Architektur). De Firebird Service funktionnéiert mat de Standardparameter fir de Superserver: e Säitencache vun 2048 Säiten (pro Datebank), e Sortéierungsbuffer vu 64 MB (gedeelt) a verbënnt nëmmen Versioun XNUMX Clienten. View Optiounen firebird.conf:

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

Maacht weg datt déi nei Wäerter vun firebird.conf gëtt nëmme aktivéiert nodeems de Firebird Service nei gestart gëtt.

Wann Dir Parameterwäerter auswielen, sollt et berücksichtegt ginn datt et dräi Haapt "Konsumenten" sinn: de Säitecache (fir d'Datebank), de Sortéierungsbuffer (gedeelt) an d'Erënnerung, déi vum Server fir Clientverbindungen zougewisen ass. Dir kënnt nëmmen déi éischt zwee verwalten - d'Quantitéit un Erënnerung fir Clientverbindungen hänkt vun der Unzuel an den Text vun cachéierten Ufroen of, hir Pläng an d'Datebankobjekter, déi an den Ufroen involvéiert sinn. Client Verbindung Erënnerung Schätzunge sinn nëmmen empiresch gemaach a kënnen änneren wéi Client Uwendungen an / oder Datebank Objete änneren.

Fir e Superserver op Hosten mat enger klenger Quantitéit un Erënnerung (bis zu 12-16 GB), sollt Dir net méi wéi en Drëttel oder e Véierel vum Gesamtbetrag vum RAM fir d'Säit-Cache an d'Zortbuffer zouginn.

Wann d'Zuel vun den Datenbanken net fix ass a kann änneren, soll de Gesamtbetrag vun Säit Cache Erënnerung vun der maximal Unzuel vun Datenbanken gedeelt ginn, datt um Server kann. D'Gréisst vum Säitecache gëtt a Säiten uginn a muss separat an Bytes ëmgewandelt ginn.

Fir op déi klassesch Architektur ze wiesselen, musst Dir op d'mannst explizit spezifizéieren ServerMode в firebird.conf, reduzéiere de Säitecache do (net méi wéi 2K), reduzéieren den Zortebuffer (den Total zulässlechen Volume vun all Zorte gedeelt duerch d'maximal Unzuel u Verbindungen), deaktivéieren a stoppen d'Eenheet firebird-superserver, aktivéieren an d'Eenheet starten firebird-classic.socket.

D'Benotzung vun der superklassescher Architektur am Firebird 3.0 mécht net vill Sënn: "Zouverlässegkeet" ass wéi e Superserver an deeselwechten allgemenge Sortéierungsbuffer. Et gëtt kee gemeinsame Säit Cache an d'"Verloschter" fir verschidde Verbindunge mateneen ze synchroniséieren sinn déiselwecht wéi am klassesche.

Et sollt een drun erënneren datt am Firebird 3.0 e puer Parameteren (Säitcache, Spär Dateigréissten, Hash Dëscher an e puer anerer) agestallt kënne ginn databases.conf individuell fir all Datebank. Fir e Superserver ass et nëtzlech, zum Beispill, e klenge Wäert ze setzen DefaultDbCachePages в firebird.conf an installéiert eenzel Säitcaches fir déi erfuerderlech Datenbanken an databases.conf.

Stellt Froen iwwer den Artikel an de Kommentaren, oder schreift Bréiwer un eis Support Adress [Email geschützt].

Source: will.com

Setzt e Commentaire