Installeer Firebird 3 op moderne Linux-weergawes: CentOS8 en Ubuntu 19

In hierdie artikel sal ons die minimum stel aksies beskryf wat benodig word vir optimale installering van die Firebird DBMS weergawe 3.0 op nuwe Linux-verspreidings. CentOS 8 en Ubuntu 19 word vir voorbeelde gekies.

Om die Firebird-verspreiding na die teikenstelsel te “lewer”, word in hierdie gids die opsie gekies om die tar.gz-argief af te laai met behulp van 'n skakel vanaf die amptelike projekwebwerf (firebirdsql.org).

Vir die mees ongeduldige, gaan reguit in die geveg:

Vinnige installasie

Redigeer die lêer /etc/sysctl.confdeur die reël by te voeg:

vm.max_map_count = 256000

Stoor die lêer en pas die instelling toe:

sudo sysctl -p /etc/sysctl.conf

Verdere instruksies verskil vir CentOS 8 en Ubuntu 19, maar ССЫЛКА и КАТАЛОГ dui 'n skakel van die amptelike Firebird-projekwebwerf aan vir die aflaai van die verspreiding en die gids waarin die verspreiding uitgepak sal word tydens die aflaaiproses.
Tans (Maart 2020) is die huidige weergawe Firebird 3.0.5 (hier is die skakel na die 64-bis weergawe).

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

Die werklike installasie van die Firebird DBMS:

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

As jy beter wil verstaan ​​wat hierdie aksies doen, lees verder.

Hoofliggaam

'n Kort aanhef

Daar word aanvaar dat die bedryfstelsel reeds in 'n minimale weergawe geïnstalleer is en toegang tot publieke bewaarplekke of hul plaaslike kopieë is opgestel.

Daar word aanvaar dat die leser basiese kennis van Linux en die Firebird DBMS het.

beplanning

Op die DBMS-bediener word dit aanbeveel om aparte afdelings toe te ken vir tydelike lêers (/tmp), databasislêers en plaaslike rugsteun.

Tydelike lêers sluit in sluitlêers, sorteerlêers, "materialisering"-lêers van globale tydelike tabelle (GTT) en moniteringstabelle. Die lêers vir sortering en globale tydelike tabelle is geleë in /tmp, mon$-table lêers en slot-lêers – in /tmp/firebird.

Sorteerlêers word “uitgevee” (unlink) onmiddellik na skepping, dus kan hulle nie in die gidslys "gesien" word nie - slegs in die lys van proseshandvatsels (gemerk as deleted):

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

In die pseudo-gidslys /proc/…/fd/ simbole word vertoon, en werklike inligting oor die lêer word gegee deur:

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

waar НОМЕР – beskrywer (beskrywer) van die lêer van belang.

In plaas daarvan om te bel "pgrep исполняемый-файл“Jy kan onmiddellik die identifiseerder van die proses van belang vervang.

Tydelike lêers kan baie groot wees, dus /tmp Dit word aanbeveel om ten minste 20-30 GB toe te ken. Daar moet in ag geneem word dat die grootte van sorteerlêers slegs afhang van die hoeveelheid data wat eksplisiet of implisiet in die versoek gesorteer is, en 'n enkele gebruiker kan gigagrepe tydelike lêers "skep".

Die afdeling vir databasislêers moet alle databasislêers akkommodeer. plus, op 'n minimum, 'n kopie van die grootste databasislêer. Dit is nodig om die groei van databasislêers in die toekoms in ag te neem vir 'n paar jaar wat kom.

Die plaaslike rugsteunafdeling moet ten minste een rugsteunargief van alle databasisse bevat plus 'n rugsteun van die grootste databasis. Dit is wenslik dat hierdie afdeling ook ruimte bevat vir die herstel van die grootste databasis. Die groei van rugsteun- en rugsteunargiewe in die toekoms vir etlike jare moet in ag geneem word.

Voorlopige voorbereiding

Die Firebird 3.0 DBMS-bediener ken stelselgeheue dinamies toe en bevry dit, wat kan lei tot die fragmentasie daarvan. Byvoorbeeld, nadat 'n groot aantal gebruikers gelyktydig van die superbediener ontkoppel is, kan foute voorkom wanneer nuwe verbindings gemaak word.

Geheuefragmentasie word beheer deur 'n stelselparameter vm.max_map_count, verstek is 64K. Dit word aanbeveel om die waarde daarvan met vier keer te verhoog:

sudo sysctl vm.max_map_count=256000

Sodat die nuwe waarde ingestel word wanneer die stelsel herlaai, voeg by die lêer /etc/sysctl.conf lyn:

vm.max_map_count = 256000

Dit is raadsaam om 'n opmerking te maak sodat die rede vir die verandering van hierdie parameter duidelik is. Jy kan eers die lêer wysig en dan die instellings wat daarin gestoor is, toepas:

sudo sysctl -p /etc/sysctl.conf

Installeer vereiste pakkette

Uitvoerbare lêers van die Firebird 3.0 Linux DBMS hang af van die ncurses biblioteke (libncurses.so.5), ICU (nie gekoppel aan weergawe nie en word nie in uitvoer vertoon nie ldd) en tommath (libtommath.so.0). Om die samestelling-argief af te laai en uit te pak, benodig u nutsprogramme gzip, tar и curl of wget. ICU weergawes, gzip, tar и curl/wget – onbeduidend is.

Werk met pakkette hang af van die stelsel en van die pakketbestuurder wat in die stelsel gebruik word, so ons sal hulle een vir een oorweeg.

CentOS 8

CentOS 8 gebruik 'n nuwe pakketbestuurder - dnf en dit word op bevel "deursigtig" genoem yum. Aangesien daar vir ons doeleindes geen verskil tussen hulle is nie - in die voorbeelde sal daar wees yum.

Dateer die metadata-kas op: sudo yum makecache

Die libtomath-pakket is in 'n aparte E(xtra)P(pakkette vir)E(nterprise)L(inux)-bewaarplek geleë, so ons kyk of dit reeds ingesluit is:

yum -C repolist

Opsie "slegs vanaf kas" (-C of --cache-only) word gebruik om onnodige kontrole en aflaaie uit te skakel, wat yum vinniger maak. As daar geen epel-bewaarplek in die lys is nie, installeer dit en werk die metadata-kas op:

sudo yum install epel-release &&
sudo yum makecache

Ons bevestig versoeke, indien nodig, deur die waardes van pgp-sleutels na te gaan met dié wat reeds van 'n betroubare bron bekend is.

As daar probleme is met die laai van meta-inligting van die bewaarplek vanaf https-bronne, wysig dan die lêer /etc/yum.repos.d/epel.repo, vervang https:// op http:// en herhaal die kasopdatering-opdrag.

Ons gaan die status van die vereiste pakkette na (die opdrag is ingewikkeld, in die voorbeelduitvoer word die 32-bis-pakket gefiltreer):

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

Ons sien dit curl, gzip и ncurses gehuisves in die installeerder pseudo-bewaarplek (anaconda), en tar – uitgesluit van die minimum stelselinstallasie. Groot weergawes libncurses и libtommath meer as vereis: 6 en 1 in plaas van 5 en 0, onderskeidelik. As dieselfde pakket beide geïnstalleer en beskikbaar is, is 'n opdatering daarvoor vrygestel. Installeer die ontbrekende pakkette:

sudo yum install 
libicu libtommath tar

Ubuntu 19

Hulpprogramme is ontwerp om pakkette te bestuur apt, apt‑get и apt‑cache. Die eerste is ontwerp vir interaktiewe werk, en die laaste twee is ontwerp vir gebruik in skrifte. Die pakketname verskil effens en sluit die weergawe in.

Ons gaan die status van die vereiste pakkette na (die opdrag word gekombineer, die voorbeelduitvoer word verkort en 32-bis-pakkette word uitgefiltreer):

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]

Pakkette waarvoor die vierkantige hakies aandui installed/upgradable - geïnstalleer. Beskikbaar maar nie geïnstalleer nie ncurses5, in plaas van curl geïnstalleer wget. Installeer die ontbrekende pakkette:

sudo apt‑get install 
libncurses5 libtommath1

Skep simskakels

Sedert libtommath.so.1 и libncurses.so.6 agteruit versoenbaar met libtommath.so.0 и libncurses.so.5, dan is dit vir Firebird genoeg om simskakels na die bestaande weergawes van die biblioteke te skep.

Ons vind libtommath.so.1 (libncurses.so.? geleë in dieselfde gids):

find /usr -name libtommath.so.1

CentOS:

/usr/lib64/libtommath.so.1

Ubuntu:

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

Ons skep simskakels.

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

Kom ons kyk na die resultaat (die opdrag is ingewikkeld, die uitvoervoorbeelde is verkort):

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

Laai tans die Firebird DBMS-verspreidingstel af.

Die amptelike webwerf van die Firebird-projek (firebirdsql.org) publiseer skakels na verspreidings van "amptelike" vrystellings en "daaglikse" builds (snapshot builds).

Amptelike Linux-vrystellings is beskikbaar as argiewe (tar.gz) en deb/rpm-pakkette, maar bouwerk is slegs beskikbaar as argiewe. Ons sal die "generiese installeerder" (generiese installeerder van tar.gz) oorweeg.

Die bou-argief moet afgelaai en uitgepak word, maar ons sal albei prosesse kombineer. Uitpak word gedoen in /tmp,URL dui die skakel na die aflaaibare argief aan.

krul:

curl -L URL | tar -zxC /tmp

wget:

wget -O– URL | tar -zxC /tmp

By verstek curl stuur die afgelaaide data na stdout maar hanteer nie herleidings nie en ons voeg "‑L", a wget, inteendeel: hanteer herleidings, maar skryf data na 'n lêer en ons plaas "‑O‑" Vir tar gebruik aandui gzip-filter en die gids waarin die uitpak uitgevoer sal word. Wanneer die proses voltooi is, sal 'n gids soos hierdie verskyn Firebird‑3.0.5.33220‑0.amd64 met drie lêers: install.sh, buildroot.tar.gz и manifest.txt.

Installeer Firebird

Tydens voorlopige voorbereiding het ons die waarde van die stelselparameter aangepas vm.max_map_count, gekontroleer vir beskikbaarheid en die ICU, ncurses en tommath biblioteke geïnstalleer. Maak seker die weergawes van ncurses en tommath is korrek (libncures.so.5 и libtommath.so.0) en het die nodige simskakels geskep.

Die werklike installasie is baie eenvoudig. Gaan na die gids waar die Firebird-verspreidingsargief uitgepak is, kyk en stel, indien nodig, die "uitvoerbare" vlag vir die skrif install.sh:

chmod +x install.sh

voer die installasie script uit:

sudo ./install.sh

Deur die Enter-sleutel te druk bevestig ons die begin van die installasie, en na ontvangs van die versoek, voer die sysdba wagwoord in.

Die installasieskrip begin outomaties systemd-eenheid firebird-superserver (stille Firebird 3.0-argitektuur). Die Firebird-diens sal met die verstekparameters vir die superbediener werk: 'n bladsykas van 2048 bladsye (per databasis), 'n sorteerbuffer van 64 MB (gedeel) en koppel slegs weergawe XNUMX-kliënte. Bekyk opsies firebird.conf:

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

Neem asseblief kennis dat die nuwe waardes van firebird.conf sal slegs geaktiveer word nadat die Firebird-diens herbegin is.

By die keuse van parameterwaardes moet in ag geneem word dat daar drie hoof "verbruikers" is: die bladsykas (vir die databasis), die sorteerbuffer (gedeel) en die geheue wat deur die bediener vir kliëntverbindings toegewys is. Jy kan net die eerste twee bestuur - die hoeveelheid geheue vir kliëntverbindings hang af van die aantal en teks van navrae in die kas, hul planne en die databasisobjekte wat by die navrae betrokke is. Kliëntverbindinggeheueskattings word slegs empiries gemaak en kan verander soos wat kliënttoepassings en/of databasisobjekte verander.

Vir 'n superbediener op gashere met 'n klein hoeveelheid geheue (tot 12-16 GB), moet jy nie meer as 'n derde of 'n kwart van die totale hoeveelheid RAM vir die bladsykas en sorteerbuffer toewys nie.

As die aantal databasisse nie vas is nie en kan verander, moet die totale hoeveelheid bladsykasgeheue gedeel word deur die maksimum aantal databasisse wat op die bediener kan wees. Die grootte van die bladsykas word in bladsye gespesifiseer en moet afsonderlik in grepe omgeskakel word.

Om oor te skakel na die klassieke argitektuur, moet jy ten minste uitdruklik spesifiseer ServerMode в firebird.conf, verminder die bladsykas daar (nie meer as 2K), verminder die sorteerbuffer (die totale toelaatbare volume van alle soorte gedeel deur die maksimum aantal verbindings), deaktiveer en stop die eenheid firebird-superserver, aktiveer en begin die eenheid firebird-classic.socket.

Die gebruik van die superklassieke argitektuur in Firebird 3.0 maak nie veel sin nie: "betroubaarheid" is soos 'n superbediener en dieselfde algemene sorteerbuffer. Daar is geen algemene bladsykas nie en die "verliese" vir die sinchronisering van verskillende verbindings met mekaar is dieselfde as in die klassieke een.

Daar moet onthou word dat in Firebird 3.0 sommige parameters (bladsykas, sluitlêergroottes, hash-tabelle en sommige ander) ingestel kan word in databases.conf individueel vir elke databasis. Vir 'n superbediener is dit nuttig om byvoorbeeld 'n klein waarde te stel DefaultDbCachePages в firebird.conf en installeer individuele bladsykas vir die vereiste databasisse in databases.conf.

Vra vrae oor die artikel in die kommentaar, of skryf briewe aan ons ondersteuningsadres [e-pos beskerm].

Bron: will.com

Voeg 'n opmerking