Ynstallearje Firebird 3 op moderne ferzjes fan Linux: CentOS8 en Ubuntu 19

Yn dit artikel sille wy de minimale set fan aksjes beskriuwe dy't nedich binne foar optimale ynstallaasje fan 'e Firebird DBMS ferzje 3.0 op nije Linux-distribúsjes. CentOS 8 en Ubuntu 19 wurde selektearre foar foarbylden.

Om de Firebird-distribúsje te "leverjen" oan it doelsysteem, yn dizze hantlieding, wurdt de opsje fan it downloaden fan it tar.gz-argyf selektearre mei in keppeling fan 'e offisjele projektwebside (firebirdsql.org).

Foar de meast ûngeduldige, gean direkt yn 'e slach:

Fluch ynstallaasje

It bewurkjen fan de triem /etc/sysctl.conftroch de rigel ta te foegjen:

vm.max_map_count = 256000

Bewarje it bestân en tapasse de ynstelling:

sudo sysctl -p /etc/sysctl.conf

Fierdere ynstruksjes ferskille foar CentOS 8 en Ubuntu 19, mar ССЫЛКА и КАТАЛОГ jouwe in keppeling oan fan 'e offisjele Firebird-projektwebside foar it downloaden fan de distribúsje en de map wêryn't de distribúsje sil wurde útpakt tidens it ynlaadproses.
Op it stuit (maart 2020) is de hjoeddeistige release Firebird 3.0.5 (hjir is de link nei de 64-bit ferzje).

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

De eigentlike ynstallaasje fan 'e Firebird DBMS:

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

As jo ​​​​better begripe wolle wat dizze aksjes dogge, lês dan fierder.

Haadpart

In koarte preambule

It wurdt oannommen dat it OS al is ynstalleare yn in minimale ferzje en tagong ta iepenbiere repositories as har lokale kopyen is konfigureare.

Der wurdt oannommen dat de lêzer basiskennis hat fan Linux en de Firebird DBMS.

Planning

Op de DBMS-tsjinner is it oan te rieden om aparte seksjes foar tydlike bestannen (/tmp), databankbestannen en lokale backups.

Tydlike omfetsje slûsbestannen, sortearingsbestannen, "materialisaasje"-bestannen fan globale tydlike tabellen (GTT) en tafersjochtabellen. De bestannen foar sortearjen en globale tydlike tabellen lizze yn /tmp, mon$-tabelbestannen en lock-bestannen - yn /tmp/firebird.

Sortearjen fan bestannen wurde "wiske" (unlink) direkt nei oanmeitsjen, sadat se net kinne wurde "sjoen" yn 'e maplisting - allinich yn' e list mei proseshannelingen (markearre as deleted):

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

Yn 'e pseudo-maplisting /proc/…/fd/ symlinks wurde werjûn, en aktuele ynformaasje oer it bestân wurdt jûn troch:

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

wêr НОМЕР - descriptor (descriptor) fan it bestân fan belang.

Yn stee fan te roppen "pgrep исполняемый-файл"Jo kinne de identifier fan it proses fan belang fuortendaliks ferfange.

Tydlike bestannen kinne heul grut wêze, dus /tmp It is oan te rieden om te allocearjen op syn minst 20-30 GB. It moat rekken hâlden wurde dat de grutte fan sortearjen fan bestannen allinich hinget fan 'e hoemannichte gegevens dy't eksplisyt of ymplisyt sortearre binne yn it fersyk, en ien brûker kin gigabytes fan tydlike bestannen "oanmeitsje".

De seksje foar databankbestannen moat alle databankbestannen befetsje. plus, op syn minst, in kopy fan de grutste databank triem. It is needsaaklik om rekken te hâlden mei de groei fan databasebestannen yn 'e takomst foar ferskate jierren te kommen.

De seksje foar lokale reservekopyen moat op syn minst ien reservekopy-argyf fan alle databases befetsje plus in reservekopy fan de grutste databank. It is winsklik dat dizze seksje ek romte befettet foar it herstellen fan de grutste databank. De groei fan backups en backup-argiven yn 'e takomst foar ferskate jierren moat rekken holden wurde.

Foarriedige tarieding

De Firebird 3.0 DBMS-tsjinner allocearret en befrijt systeemûnthâld dynamysk, wat kin liede ta syn fragmintaasje. Bygelyks, neidat in grut oantal brûkers tagelyk loskeppele binne fan 'e superserver, kinne flaters foarkomme by it meitsjen fan nije ferbiningen.

Unthâldfragmentaasje wurdt regele troch in systeemparameter vm.max_map_count, standert is 64K. It is oan te rieden om syn wearde fjouwer kear te ferheegjen:

sudo sysctl vm.max_map_count=256000

Sadat de nije wearde wurdt ynsteld as it systeem opnij opstart, foegje jo ta oan it bestân /etc/sysctl.conf rigel:

vm.max_map_count = 256000

It is oan te rieden om in opmerking te meitsjen sadat de reden foar it feroarjen fan dizze parameter dúdlik is. Jo kinne earst it bestân bewurkje en dan de ynstellingen tapasse dy't dêryn bewarre binne:

sudo sysctl -p /etc/sysctl.conf

Ynstallearje fereaske pakketten

Utfierbere bestannen fan 'e Firebird 3.0 Linux DBMS binne ôfhinklik fan de ncurses-biblioteken (libncurses.so.5), ICU (net bûn oan ferzje en net werjûn yn útfier ldd) en tommath (libtommath.so.0). Om it gearstallingsargyf te downloaden en út te pakken, sille jo nutsfoarsjenningen nedich hawwe gzip, tar и curl of wget. ICU ferzjes, gzip, tar и curl/wget - binne ûnbelangryk.

Wurkje mei pakketten hinget ôf fan it systeem en fan 'e pakketbehearder brûkt yn it systeem, dus wy sille se ien foar ien beskôgje.

CentOS 8

CentOS 8 brûkt in nije pakketbehearder - dnf en it wurdt neamd "transparant" troch kommando yum. Sûnt foar ús doelen is der gjin ferskil tusken harren - yn 'e foarbylden sil wêze yum.

Update de metadata-cache: sudo yum makecache

It pakket libtomath leit yn in aparte E(xtra)P(ackages foar)E(nterprise)L(inux) repository, dus wy kontrolearje dat it al is opnommen:

yum -C repolist

Opsje "allinich út cache" (-C of --cache-only) wurdt brûkt om ûnnedige kontrôles en downloads te eliminearjen, wêrtroch yum rapper wurdt. As d'r gjin epel-repository yn 'e list is, ynstallearje it dan en fernij de metadata-cache:

sudo yum install epel-release &&
sudo yum makecache

Wy befêstigje fersiken, as nedich, kontrolearje de wearden fan pgp-kaaien mei dyjingen dy't al bekend binne fan in fertroude boarne.

As d'r problemen binne mei it laden fan meta-ynformaasje fan repository fan https-boarnen, bewurkje dan it bestân /etc/yum.repos.d/epel.repo, ferfanging https:// op http:// en werhelje it kommando cache update.

Wy kontrolearje de status fan 'e fereaske pakketten (it kommando is yngewikkeld, yn it foarbyldútfier wurdt it 32-bit pakket filtere):

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

Dat sjogge wy curl, gzip и ncurses hosted yn it ynstallearder pseudo-repository (anaconda), en tar - útsletten fan de minimale systeem ynstallaasje. Grutte ferzjes libncurses и libtommath mear as nedich: respektivelik 6 en 1 ynstee fan 5 en 0. As itselde pakket sawol ynstalleare as beskikber is, is der in fernijing foar útbrocht. Ynstallearje de ûntbrekkende pakketten:

sudo yum install 
libicu libtommath tar

Ubuntu 19

Utilities binne ûntworpen om pakketten te behearjen apt, apt‑get и apt‑cache. De earste is ûntworpen foar ynteraktyf wurk, en de lêste twa binne ûntworpen foar gebrûk yn skripts. De pakketnammen binne wat oars en befetsje de ferzje.

Wy kontrolearje de status fan 'e fereaske pakketten (it kommando wurdt kombinearre, de foarbyldútfier wurdt ynkoarte, en 32-bit pakketten wurde útfilterd):

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]

Pakketten wêrfoar de fjouwerkante heakjes oanjaan installed/upgradable - ynstallearre. Beskikber mar net ynstallearre ncurses5, yn plak fan curl ynstallearre wget. Ynstallearje de ûntbrekkende pakketten:

sudo apt‑get install 
libncurses5 libtommath1

Symlinks oanmeitsje

Sûnt de libtommath.so.1 и libncurses.so.6 efterút kompatibel mei libtommath.so.0 и libncurses.so.5, dan is it foar Firebird genôch om symlinks te meitsjen nei de besteande ferzjes fan 'e bibleteken.

Wy fine libtommath.so.1 (libncurses.so.? leit yn deselde map):

find /usr -name libtommath.so.1

CentOS:

/usr/lib64/libtommath.so.1

Ubuntu:

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

Wy meitsje 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

Litte wy it resultaat kontrolearje (it kommando is yngewikkeld, de útfierfoarbylden wurde ynkoarte):

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

It downloaden fan de Firebird DBMS-distribúsjekit.

De offisjele webside fan it Firebird-projekt (firebirdsql.org) publisearret keppelings nei distribúsjes fan "offisjele" releases en "deistige" builds (snapshot builds).

Offisjele Linux-releases binne beskikber as argiven (tar.gz) en deb/rpm-pakketten, mar builds binne allinich beskikber as argiven. Wy sille de "generyske ynstallearder" beskôgje (generyske ynstallearder fan tar.gz).

It bouargyf moat ynladen en útpakt wurde, mar wy sille beide prosessen kombinearje. It útpakke wurdt dien yn /tmp,URL jout de keppeling nei it ynlaadbere argyf oan.

krul:

curl -L URL | tar -zxC /tmp

wget:

wget -O– URL | tar -zxC /tmp

standert curl stjoert de ynladen gegevens nei stdout, mar behannelet gjin trochferwizings en wy foegje "‑L", a wget, krekt oarsom: behannelet trochferwizings, mar skriuwt gegevens nei in bestân en wy sette "‑O‑" Foar tar gebrûk oanjaan gzip-filter en de map wêryn it útpakke sil wurde útfierd. As it proses foltôge is, sil in map lykas dit ferskine Firebird‑3.0.5.33220‑0.amd64 mei trije triemmen: install.sh, buildroot.tar.gz и manifest.txt.

Ynstallearje Firebird

Tidens de foarriedige tarieding hawwe wy de wearde fan 'e systeemparameter oanpast vm.max_map_count, kontrolearre op beskikberens en ynstallearre de ICU, ncurses en tommath bibleteken. Soargje derfoar dat de ferzjes fan ncurses en tommath korrekt binne (libncures.so.5 и libtommath.so.0) en makke de nedige symlinks.

De eigentlike ynstallaasje is hiel ienfâldich. Gean nei de map wêr't it Firebird-distribúsje-argyf útpakt is, kontrolearje en, as nedich, set de "útfierbere" flagge foar it skript yn install.sh:

chmod +x install.sh

útfiere it ynstallaasjeskript:

sudo ./install.sh

Troch op de Enter-kaai te drukken befêstigje wy it begjin fan 'e ynstallaasje, en by ûntfangst fan it fersyk, fier it sysdba-wachtwurd yn.

It ynstallaasjeskript begjint automatysk systemd-ienheid firebird-superserver (stille Firebird 3.0-arsjitektuer). De Firebird-tsjinst sil wurkje mei de standertparameters foar de superserver: in side-cache fan 2048 siden (per databank), in sortearbuffer fan 64 MB (dield) en allinich ferzje XNUMX-kliïnten ferbine. Besjoch opsjes firebird.conf:

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

Tink derom dat de nije wearden fan firebird.conf sil allinich aktivearre wurde nei't jo de Firebird-tsjinst opnij starte.

By it selektearjen fan parameterwearden moat rekken hâlden wurde dat d'r trije haad "konsuminten" binne: de side-cache (foar de databank), de sortearbuffer (dield) en it ûnthâld tawiisd troch de tsjinner foar kliïntferbiningen. Jo kinne allinich de earste twa beheare - de hoemannichte ûnthâld foar kliïntferbiningen hinget ôf fan it oantal en tekst fan cache-fragen, har plannen en de databankobjekten belutsen by de queries. Skattingen fan kliïntferbiningûnthâld wurde allinich empirysk makke en kinne feroarje as kliïntapplikaasjes en / of databankobjekten feroarje.

Foar in superserver op hosts mei in lyts bedrach fan ûnthâld (oant 12-16 GB), Jo moatte net tawize mear as in tredde of in kwart fan it totale bedrach fan RAM foar de side cache en sortearje buffer.

As it oantal databases net fêst is en kin feroarje, moat it totale bedrach fan side-cache-ûnthâld dield wurde troch it maksimum oantal databases dat op 'e tsjinner kin wêze. De grutte fan 'e side-cache wurdt opjûn yn siden en moat apart wurde omsetten yn bytes.

Om te wikseljen nei de klassike arsjitektuer, moatte jo op syn minst eksplisyt spesifisearje ServerMode в firebird.conf, ferminderje de side-cache dêr (net mear as 2K), ferminderje de sortebuffer (it totale tastiene folume fan alle soarten dield troch it maksimum oantal ferbiningen), útskeakelje en stopje de ienheid firebird-superserver, ynskeakelje en start de ienheid firebird-classic.socket.

It brûken fan de superklassike arsjitektuer yn Firebird 3.0 makket net folle sin: "betrouberens" is as in superserver en deselde algemiene sortearbuffer. D'r is gjin mienskiplike side-cache en de "ferlies" foar it syngronisearjen fan ferskate ferbiningen mei elkoar binne itselde as yn 'e klassike.

It moat betocht wurde dat yn Firebird 3.0 guon parameters (side-cache, beskoattelbestângrutte, hash-tabellen en guon oaren) kinne wurde ynsteld yn databases.conf yndividueel foar elke databank. Foar in superserver is it brûkber om bygelyks in lytse wearde yn te stellen DefaultDbCachePages в firebird.conf en ynstallearje yndividuele side-caches foar de fereaske databases yn databases.conf.

Stel fragen oer it artikel yn 'e opmerkingen, of skriuw brieven nei ús stipeadres [e-post beskerme].

Boarne: www.habr.com

Add a comment