Installation af Firebird 3 på moderne versioner af Linux: CentOS8 og Ubuntu 19

I denne artikel vil vi beskrive det minimumssæt af handlinger, der kræves for optimal installation af Firebird DBMS version 3.0 på nye Linux-distributioner. CentOS 8 og Ubuntu 19 er valgt som eksempler.

For at "levere" Firebird-distributionen til målsystemet, i denne vejledning, vælges muligheden for at downloade tar.gz-arkivet ved hjælp af et link fra det officielle projektwebsted (firebirdsql.org).

For de mest utålmodige, gå direkte i kamp:

Hurtig installation

Redigering af filen /etc/sysctl.confved at tilføje linjen:

vm.max_map_count = 256000

Gem filen og anvend indstillingen:

sudo sysctl -p /etc/sysctl.conf

Yderligere instruktioner er forskellige for CentOS 8 og Ubuntu 19, men ССЫЛКА и КАТАЛОГ angive et link fra det officielle Firebird-projektwebsted for at downloade distributionen og den mappe, hvori distributionen vil blive pakket ud under downloadprocessen.
I øjeblikket (marts 2020) er den aktuelle udgivelse Firebird 3.0.5 (her er linket til 64-bit versionen).

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

Selve installationen af ​​Firebird DBMS:

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

Hvis du vil forstå bedre, hvad disse handlinger gør, så læs videre.

Hoveddelen

En kort præambel

Det antages, at OS allerede er installeret i en minimal version, og adgang til offentlige lagre eller deres lokale kopier er konfigureret.

Det forudsættes, at læseren har grundlæggende kendskab til Linux og Firebird DBMS.

planlægning

På DBMS-serveren anbefales det at allokere separate sektioner til midlertidige filer (/tmp), databasefiler og lokale sikkerhedskopier.

Midlertidige inkluderer låsefiler, sorteringsfiler, "materialiserings"-filer af globale midlertidige tabeller (GTT) og overvågningstabeller. Filerne til sortering og globale midlertidige tabeller er placeret i /tmp, mon$-table filer og lock-filer – in /tmp/firebird.

Sorteringsfiler "slettes" (unlink) umiddelbart efter oprettelsen, så de kan ikke "ses" i mappelisten - kun i listen over proceshåndtag (markeret som deleted):

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

I pseudo-mappelisten /proc/…/fd/ symbolske links vises, og faktiske oplysninger om filen er givet af:

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

где НОМЕР – deskriptor (deskriptor) af interessefilen.

I stedet for at ringe "pgrep исполняемый-файл"Du kan straks erstatte identifikatoren for processen af ​​interesse.

Midlertidige filer kan være meget store, så /tmp Det anbefales at allokere mindst 20-30 GB. Det skal tages i betragtning, at størrelsen af ​​sorteringsfiler kun afhænger af mængden af ​​data, der eksplicit eller implicit sorteres i anmodningen, og en enkelt bruger kan "oprette" gigabyte af midlertidige filer.

Sektionen for databasefiler skal rumme alle databasefiler. plus, som minimum, en kopi af den største databasefil. Det er nødvendigt at tage højde for væksten af ​​databasefiler i fremtiden i flere år fremover.

Den lokale sikkerhedskopieringssektion skal indeholde mindst ét ​​backuparkiv af alle databaser plus en backup af den største database. Det er ønskeligt, at dette afsnit også indeholder plads til gendannelse af den største database. Der bør tages højde for væksten i backups og backup-arkiver i fremtiden i flere år.

Forberedende forberedelse

Firebird 3.0 DBMS-serveren tildeler og frigør dynamisk systemhukommelse, hvilket kan føre til fragmentering. For eksempel, efter at et stort antal brugere er afbrudt fra superserveren på én gang, kan der opstå fejl, når der oprettes nye forbindelser.

Hukommelsesfragmentering styres af en systemparameter vm.max_map_count, standard er 64K. Det anbefales at øge værdien med fire gange:

sudo sysctl vm.max_map_count=256000

For at den nye værdi indstilles, når systemet genstarter, skal du tilføje til filen /etc/sysctl.conf linje:

vm.max_map_count = 256000

Det er tilrådeligt at lave en kommentar, så årsagen til at ændre denne parameter er klar. Du kan først redigere filen og derefter anvende indstillingerne, der er gemt i den:

sudo sysctl -p /etc/sysctl.conf

Installation af nødvendige pakker

Eksekverbare filer af Firebird 3.0 Linux DBMS afhænger af ncurses-bibliotekerne (libncurses.so.5), ICU (ikke bundet til version og vises ikke i output ldd) og tommeth (libtommath.so.0). For at downloade og pakke samlingsarkivet ud, skal du bruge hjælpeprogrammer gzip, tar и curl eller wget. ICU versioner, gzip, tar и curl/wget – er ubetydelige.

Arbejdet med pakker afhænger af systemet og den pakkehåndtering, der bruges i systemet, så vi vil overveje dem én efter én.

8 CentOS

CentOS 8 bruger en ny pakkehåndtering – dnf og det kaldes "gennemsigtigt" ved kommando yum. Da der for vores formål ikke er nogen forskel mellem dem - i eksemplerne vil der være yum.

Opdater metadata-cachen: sudo yum makecache

Libtomath-pakken er placeret i et separat E(xtra)P(pakker til)E(nterprise)L(inux)-depot, så vi tjekker, at det allerede er inkluderet:

yum -C repolist

Mulighed "kun fra cache" (-C eller --cache-only) bruges til at eliminere unødvendige kontroller og downloads, hvilket gør yum hurtigere. Hvis der ikke er noget epel-lager på listen, skal du installere det og opdatere metadatacachen:

sudo yum install epel-release &&
sudo yum makecache

Vi bekræfter anmodninger, om nødvendigt, kontrollerer værdierne af pgp-nøgler med dem, der allerede er kendt fra en betroet kilde.

Hvis der er problemer med at indlæse repository metainformation fra https-ressourcer, så rediger filen /etc/yum.repos.d/epel.repo, udskiftning https://http:// og gentag cacheopdateringskommandoen.

Vi kontrollerer status for de nødvendige pakker (kommandoen er kompliceret, i eksemplet er 32-bit pakken filtreret):

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

Det ser vi curl, gzip и ncurses hostet i installationsprogrammets pseudo-lager (anaconda), og tar – udelukket fra minimum systeminstallation. Store versioner libncurses и libtommath mere end krævet: 6 og 1 i stedet for henholdsvis 5 og 0. Hvis den samme pakke både er installeret og tilgængelig, er der udgivet en opdatering til den. Installer de manglende pakker:

sudo yum install 
libicu libtommath tar

Ubuntu 19

Hjælpeprogrammer er designet til at administrere pakker apt, apt‑get и apt‑cache. Den første er designet til interaktivt arbejde, og de to sidste er designet til brug i scripts. Pakkenavnene er lidt forskellige og inkluderer versionen.

Vi kontrollerer status for de påkrævede pakker (kommandoen kombineres, eksempeloutputtet forkortes, og 32-bit pakker filtreres fra):

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]

Pakker, for hvilke de firkantede parenteser angiver installed/upgradable – installeret. Tilgængelig, men ikke installeret ncurses5, i stedet for curl installeret wget. Installer de manglende pakker:

sudo apt‑get install 
libncurses5 libtommath1

Oprettelse af symbollinks

Da libtommath.so.1 и libncurses.so.6 bagudkompatibel med libtommath.so.0 и libncurses.so.5, så er det for Firebird nok at oprette symbollinks til de eksisterende versioner af bibliotekerne.

Vi finder libtommath.so.1 (libncurses.so.? placeret i samme mappe):

find /usr -name libtommath.so.1

CentOS:

/usr/lib64/libtommath.so.1

Ubuntu:

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

Vi laver symbollinks.

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

Lad os tjekke resultatet (kommandoen er kompliceret, outputeksemplerne er forkortet):

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

Downloader Firebird DBMS distributionssættet.

Firebird-projektets officielle hjemmeside (firebirdsql.org) udgiver links til distributioner af "officielle" udgivelser og "daglige" builds (snapshot builds).

Officielle Linux-udgivelser er tilgængelige som arkiver (tar.gz) og deb/rpm-pakker, men builds er kun tilgængelige som arkiver. Vi vil overveje "generisk installationsprogram" (generisk installationsprogram fra tar.gz).

Bygningsarkivet skal downloades og pakkes ud, men vi kombinerer begge processer. Udpakning sker i /tmp,URL angiver linket til det downloadbare arkiv.

krølle:

curl -L URL | tar -zxC /tmp

wget:

wget -O– URL | tar -zxC /tmp

Som standard curl sender de downloadede data til stdout, men håndterer ikke omdirigeringer, og vi tilføjer "‑L", A wget, tværtimod: håndterer omdirigeringer, men skriver data til en fil og vi sætter "‑O‑" Til tar angive brug gzip-filter og den mappe, hvori udpakningen vil blive udført. Når processen er fuldført, vises en mappe som denne Firebird‑3.0.5.33220‑0.amd64 med tre filer: install.sh, buildroot.tar.gz и manifest.txt.

Installation af Firebird

Under den indledende forberedelse justerede vi værdien af ​​systemparameteren vm.max_map_count, tjekkede for tilgængelighed og installerede ICU, ncurses og tommath bibliotekerne. Sørg for, at versionerne af ncurses og tommath er korrekte (libncures.so.5 и libtommath.so.0) og oprettede de nødvendige symbollinks.

Selve installationen er meget enkel. Gå til den mappe, hvor Firebird-distributionsarkivet blev pakket ud, tjek og indstil om nødvendigt flaget "eksekverbar" for scriptet install.sh:

chmod +x install.sh

kør installationsscriptet:

sudo ./install.sh

Ved at trykke på Enter-tasten bekræfter vi starten af ​​installationen, og ved modtagelse af anmodningen indtastes sysdba-adgangskoden.

Installationsscriptet starter automatisk systemd-enhed firebird-superserver (silent Firebird 3.0-arkitektur). Firebird-tjenesten vil arbejde med standardparametrene for superserveren: en sidecache på 2048 sider (pr. database), en sorteringsbuffer på 64 MB (delt) og kun tilslutning af version XNUMX-klienter. Se muligheder firebird.conf:

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

Bemærk venligst, at de nye værdier fra firebird.conf aktiveres først efter genstart af Firebird-tjenesten.

Når du vælger parameterværdier, skal det tages i betragtning, at der er tre hovedforbrugere: sidecachen (til databasen), sorteringsbufferen (delt) og hukommelsen tildelt af serveren til klientforbindelser. Du kan kun administrere de to første - mængden af ​​hukommelse til klientforbindelser afhænger af antallet og teksten af ​​cachelagrede forespørgsler, deres planer og de databaseobjekter, der er involveret i forespørgslerne. Estimater af klientforbindelseshukommelse laves kun empirisk og kan ændre sig, efterhånden som klientapplikationer og/eller databaseobjekter ændres.

For en superserver på værter med en lille mængde hukommelse (op til 12-16 GB), bør du ikke allokere mere end en tredjedel eller en fjerdedel af den samlede mængde RAM til sidecachen og sorteringsbufferen.

Hvis antallet af databaser ikke er fast og kan ændres, skal den samlede mængde sidecache-hukommelse divideres med det maksimale antal databaser, der kan være på serveren. Størrelsen på sidecachen er angivet i sider og skal konverteres separat til bytes.

For at skifte til den klassiske arkitektur skal du som minimum udtrykkeligt angive ServerMode в firebird.conf, reducer sidecachen der (ikke mere end 2K), reducer sorteringsbufferen (den samlede tilladte volumen af ​​alle slags divideret med det maksimale antal forbindelser), deaktiver og stop enheden firebird-superserver, aktiver og start enheden firebird-classic.socket.

At bruge den superklassiske arkitektur i Firebird 3.0 giver ikke meget mening: "pålidelighed" er som en superserver og den samme generelle sorteringsbuffer. Der er ingen fælles sidecache, og "tabene" for at synkronisere forskellige forbindelser med hinanden er de samme som i den klassiske.

Det skal huskes, at i Firebird 3.0 kan nogle parametre (sidecache, låsefilstørrelser, hashtabeller og nogle andre) indstilles i databases.conf individuelt for hver database. For en superserver er det f.eks. nyttigt at indstille en lille værdi DefaultDbCachePages в firebird.conf og installer individuelle sidecaches for de nødvendige databaser i databases.conf.

Stil spørgsmål om artiklen i kommentarerne, eller skriv breve til vores supportadresse [e-mail beskyttet].

Kilde: www.habr.com

Tilføj en kommentar