Installera Firebird 3 på moderna versioner av Linux: CentOS8 och Ubuntu 19

I den här artikeln kommer vi att beskriva den minsta uppsättning åtgärder som krävs för optimal installation av Firebird DBMS version 3.0 på nya Linux-distributioner. CentOS 8 och Ubuntu 19 är valda som exempel.

För att "leverera" Firebird-distributionen till målsystemet, i den här guiden, väljs alternativet att ladda ner tar.gz-arkivet med en länk från den officiella projektwebbplatsen (firebirdsql.org).

För de mest otåliga, gå direkt in i striden:

Snabb installation

Redigera filen /etc/sysctl.confgenom att lägga till raden:

vm.max_map_count = 256000

Spara filen och använd inställningen:

sudo sysctl -p /etc/sysctl.conf

Ytterligare instruktioner skiljer sig för CentOS 8 och Ubuntu 19, men ССЫЛКА и КАТАЛОГ ange en länk från den officiella Firebird-projektets webbplats för nedladdning av distributionen och katalogen där distributionen kommer att packas upp under nedladdningsprocessen.
För närvarande (mars 2020) är den aktuella versionen Firebird 3.0.5 (här är länken till 64-bitarsversionen).

8 CentOS

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

Själva installationen av Firebird DBMS:

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

Om du vill förstå bättre vad dessa åtgärder gör, läs vidare.

Huvuddelen

En kort ingress

Det antas att operativsystemet redan är installerat i en minimal version och tillgång till offentliga arkiv eller deras lokala kopior är konfigurerad.

Det förutsätts att läsaren har grundläggande kunskaper om Linux och Firebird DBMS.

planering

På DBMS-servern rekommenderas det att tilldela separata sektioner för temporära filer (/tmp), databasfiler och lokala säkerhetskopior.

Tillfälliga sådana inkluderar låsfiler, sorteringsfiler, "materialiseringsfiler" av globala temporära tabeller (GTT) och övervakningstabeller. Filerna för sortering och globala temporära tabeller finns i /tmp, mon$-table-filer och lås-filer – in /tmp/firebird.

Sorteringsfiler "raderas" (unlink) omedelbart efter skapandet, så de kan inte "seas" i kataloglistan - endast i listan över processhandtag (markerade som deleted):

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

I pseudokataloglistan /proc/…/fd/ symboliska länkar visas och faktisk information om filen ges av:

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

där НОМЕР – Descriptor (descriptor) för filen av intresse.

Istället för att ringa "pgrep исполняемый-файл"Du kan omedelbart byta ut identifieraren för processen av intresse.

Tillfälliga filer kan vara väldigt stora, så /tmp Det rekommenderas att tilldela minst 20-30 GB. Det bör beaktas att storleken på sorteringsfilerna endast beror på mängden data som explicit eller implicit sorteras i begäran, och en enda användare kan "skapa" gigabyte med temporära filer.

Avsnittet för databasfiler måste rymma alla databasfiler. plus, åtminstone, en kopia av den största databasfilen. Det är nödvändigt att ta hänsyn till tillväxten av databasfiler i framtiden under flera år framöver.

Sektionen för lokala säkerhetskopior måste innehålla minst ett säkerhetskopieringsarkiv av alla databaser plus en säkerhetskopia av den största databasen. Det är önskvärt att detta avsnitt även innehåller utrymme för att återställa den största databasen. Tillväxten av säkerhetskopior och backuparkiv i framtiden under flera år bör beaktas.

Preliminär förberedelse

Firebird 3.0 DBMS-servern allokerar och frigör systemminne dynamiskt, vilket kan leda till fragmentering. Till exempel, efter att ett stort antal användare kopplats bort från superservern på en gång, kan fel uppstå vid nya anslutningar.

Minnesfragmentering styrs av en systemparameter vm.max_map_count, standard är 64K. Det rekommenderas att öka dess värde med fyra gånger:

sudo sysctl vm.max_map_count=256000

Så att det nya värdet ställs in när systemet startar om, lägg till i filen /etc/sysctl.conf linje:

vm.max_map_count = 256000

Det är lämpligt att göra en kommentar så att anledningen till att ändra denna parameter är tydlig. Du kan först redigera filen och sedan tillämpa inställningarna som sparats i den:

sudo sysctl -p /etc/sysctl.conf

Installerar nödvändiga paket

Körbara filer för Firebird 3.0 Linux DBMS beror på ncurses-biblioteken (libncurses.so.5), ICU (inte bunden till versionen och visas inte i utgången ldd) och tommath (libtommath.so.0). För att ladda ner och packa upp monteringsarkivet behöver du verktyg gzip, tar и curl eller wget. ICU versioner, gzip, tar и curl/wget – är obetydliga.

Att arbeta med paket beror på systemet och pakethanteraren som används i systemet, så vi kommer att överväga dem en efter en.

8 CentOS

CentOS 8 använder en ny pakethanterare – dnf och det kallas "transparent" genom kommando yum. Eftersom det för våra syften inte är någon skillnad mellan dem - i exemplen kommer det att finnas yum.

Uppdatera metadatacachen: sudo yum makecache

Paketet libtomath finns i ett separat E(xtra)P(paket för)E(nterprise)L(inux), så vi kontrollerar att det redan ingår:

yum -C repolist

Alternativ "endast från cache" (-C eller --cache-only) används för att eliminera onödiga kontroller och nedladdningar, vilket gör yum snabbare. Om det inte finns något epel-förråd i listan, installera det och uppdatera metadatacachen:

sudo yum install epel-release &&
sudo yum makecache

Vi bekräftar förfrågningar, om nödvändigt, kontrollerar värdena för pgp-nycklar med de som redan är kända från en pålitlig källa.

Om det finns problem med att ladda arkivmetainformation från https-resurser, redigera filen /etc/yum.repos.d/epel.repo, byter ut https://http:// och upprepa kommandot cacheuppdatering.

Vi kontrollerar statusen för de nödvändiga paketen (kommandot är komplicerat, i exemplet filtreras 32-bitarspaketet):

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

Vi ser det curl, gzip и ncurses värd i installationsprogrammets pseudo-repository (anaconda) och tar – utesluten från den lägsta systeminstallationen. Större versioner libncurses и libtommath mer än vad som krävs: 6 och 1 istället för 5 respektive 0. Om samma paket är både installerat och tillgängligt har en uppdatering släppts för det. Installera de saknade paketen:

sudo yum install 
libicu libtommath tar

ubuntu 19

Verktyg är utformade för att hantera paket apt, apt‑get и apt‑cache. Den första är designad för interaktivt arbete, och de två sista är designade för användning i skript. Paketnamnen är något annorlunda och inkluderar versionen.

Vi kontrollerar statusen för de nödvändiga paketen (kommandot kombineras, exempelutmatningen förkortas och 32-bitarspaket filtreras bort):

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]

Paket för vilka hakparenteserna anger installed/upgradable – installerat. Tillgänglig men inte installerad ncurses5, istället för curl installerad wget. Installera de saknade paketen:

sudo apt‑get install 
libncurses5 libtommath1

Skapar symboliska länkar

Eftersom libtommath.so.1 и libncurses.so.6 bakåtkompatibel med libtommath.so.0 и libncurses.so.5, då räcker det för Firebird att skapa symboliska länkar till de befintliga versionerna av biblioteken.

Vi hittar libtommath.so.1 (libncurses.so.? finns i samma katalog):

find /usr -name libtommath.so.1

CentOS:

/usr/lib64/libtommath.so.1

Ubuntu:

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

Vi skapar symboliska länkar.

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

Låt oss kontrollera resultatet (kommandot är komplicerat, utdataexemplen är förkortade):

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

Ladda ner Firebird DBMS distributionssats.

Firebird-projektets officiella webbplats (firebirdsql.org) publicerar länkar till distributioner av "officiella" utgåvor och "dagliga" builds (snapshot builds).

Officiella Linux-utgåvor är tillgängliga som arkiv (tar.gz) och deb/rpm-paket, men versioner är endast tillgängliga som arkiv. Vi kommer att överväga det "generiska installationsprogrammet" (generiskt installationsprogram från tar.gz).

Byggarkivet måste laddas ner och packas upp, men vi kommer att kombinera båda processerna. Uppackning sker i /tmp,URL anger länken till det nedladdningsbara arkivet.

ringla:

curl -L URL | tar -zxC /tmp

wget:

wget -O– URL | tar -zxC /tmp

Som standard curl skickar den nedladdade datan till stdout men hanterar inte omdirigeringar och vi lägger till "‑L", a wget, tvärtom: hanterar omdirigeringar, men skriver data till en fil och vi lägger "‑O‑" För tar ange användning gzip-filter och katalogen i vilken uppackningen kommer att utföras. När processen är klar visas en sådan katalog Firebird‑3.0.5.33220‑0.amd64 med tre filer: install.sh, buildroot.tar.gz и manifest.txt.

Installerar Firebird

Under den preliminära förberedelsen justerade vi värdet på systemparametern vm.max_map_count, kollade efter tillgänglighet och installerade ICU, ncurses och tommath biblioteken. Se till att versionerna av ncurses och tommath är korrekta (libncures.so.5 и libtommath.so.0) och skapade de nödvändiga symbollänkarna.

Själva installationen är mycket enkel. Gå till katalogen där Firebird-distributionsarkivet packades upp, kontrollera och, om nödvändigt, ställ in "körbar"-flaggan för skriptet install.sh:

chmod +x install.sh

kör installationsskriptet:

sudo ./install.sh

Genom att trycka på Enter-tangenten bekräftar vi starten av installationen, och vid mottagandet av begäran anger vi sysdba-lösenordet.

Installationsskriptet startar automatiskt systemd-enhet firebird-superserver (tyst Firebird 3.0-arkitektur). Firebird-tjänsten kommer att arbeta med standardparametrarna för superservern: en sidcache på 2048 sidor (per databas), en sorteringsbuffert på 64 MB (delad) och ansluter endast version XNUMX-klienter. Visa alternativ firebird.conf:

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

Observera att de nya värdena från firebird.conf kommer att aktiveras först efter att Firebird-tjänsten har startat om.

När du väljer parametervärden bör det tas med i beräkningen att det finns tre huvudsakliga "konsumenter": sidcachen (för databasen), sorteringsbufferten (delad) och minnet tilldelat av servern för klientanslutningar. Du kan bara hantera de två första - mängden minne för klientanslutningar beror på antalet och texten på cachade frågor, deras planer och databasobjekten som är involverade i frågorna. Klientanslutningsminnesuppskattningar görs endast empiriskt och kan ändras när klientapplikationer och/eller databasobjekt ändras.

För en superserver på värdar med en liten mängd minne (upp till 12-16 GB) bör du inte allokera mer än en tredjedel eller en fjärdedel av den totala mängden RAM för sidcachen och sorteringsbufferten.

Om antalet databaser inte är fast och kan ändras, ska den totala mängden sidcacheminne divideras med det maximala antalet databaser som kan finnas på servern. Storleken på sidcachen anges i sidor och måste konverteras separat till byte.

För att byta till den klassiska arkitekturen måste du, åtminstone, uttryckligen specificera ServerMode в firebird.conf, minska sidcachen där (högst 2K), minska sorteringsbufferten (den totala tillåtna volymen av alla sorter dividerat med det maximala antalet anslutningar), inaktivera och stoppa enheten firebird-superserver, aktivera och starta enheten firebird-classic.socket.

Att använda den superklassiska arkitekturen i Firebird 3.0 är inte mycket meningsfullt: "tillförlitlighet" är som en superserver och samma allmänna sorteringsbuffert. Det finns ingen gemensam sidcache och "förlusterna" för att synkronisera olika anslutningar med varandra är desamma som i den klassiska.

Man bör komma ihåg att i Firebird 3.0 kan vissa parametrar (sidcache, låsfilstorlekar, hashtabeller och vissa andra) ställas in i databases.conf individuellt för varje databas. För en superserver är det användbart att till exempel ställa in ett litet värde DefaultDbCachePages в firebird.conf och installera individuella sidcachar för de nödvändiga databaserna i databases.conf.

Ställ frågor om artikeln i kommentarerna, eller skriv brev till vår supportadress [e-postskyddad].

Källa: will.com

Lägg en kommentar