Firebird 3 instalēšana mūsdienu Linux versijās: CentOS8 un Ubuntu 19

Šajā rakstā mēs aprakstīsim minimālo darbību kopu, kas nepieciešama Firebird DBMS versijas 3.0 optimālai instalēšanai jaunos Linux izplatījumos. Piemēriem ir atlasītas CentOS 8 un Ubuntu 19.

Lai “nogādātu” Firebird izplatīšanu mērķa sistēmā, šajā rokasgrāmatā ir atlasīta tar.gz arhīva lejupielādes opcija, izmantojot saiti no oficiālās projekta vietnes (firebirdsql.org).

Nepacietīgākie dodieties tieši cīņā:

Ātra uzstādīšana

Faila rediģēšana /etc/sysctl.confpievienojot rindu:

vm.max_map_count = 256000

Saglabājiet failu un izmantojiet iestatījumu:

sudo sysctl -p /etc/sysctl.conf

Papildu norādījumi CentOS 8 un Ubuntu 19 atšķiras, taču ССЫЛКА и КАТАЛОГ norādiet saiti no oficiālās Firebird projekta vietnes izplatīšanas lejupielādei un direktoriju, kurā izplatīšana tiks izpakota lejupielādes procesa laikā.
Pašlaik (2020. gada martā) pašreizējais laidiens ir Firebird 3.0.5 (šeit ir saite uz 64 bitu versiju).

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

Faktiskā Firebird DBVS instalēšana:

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

Ja vēlaties labāk izprast šīs darbības, lasiet tālāk.

Galvenā daļa

Īsa preambula

Tiek pieņemts, ka OS jau ir instalēta minimālā versijā un ir konfigurēta piekļuve publiskajiem repozitorijiem vai to lokālajām kopijām.

Tiek pieņemts, ka lasītājam ir pamatzināšanas par Linux un Firebird DBVS.

plānošana

DBVS serverī pagaidu failiem ieteicams piešķirt atsevišķas sadaļas (/tmp), datu bāzes faili un lokālās dublējumkopijas.

Pagaidu faili ietver bloķēšanas failus, šķirošanas failus, globālo pagaidu tabulu (GTT) “materializācijas” failus un uzraudzības tabulas. Kārtošanas un globālo pagaidu tabulu faili atrodas /tmp, mon$-table faili un bloķēšanas faili – in /tmp/firebird.

Kārtošanas faili ir “dzēsti” (unlink) uzreiz pēc izveides, tāpēc tos nevar “redzēt” direktoriju sarakstā - tikai procesa rokturu sarakstā (atzīmēti kā deleted):

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

Pseido direktoriju sarakstā /proc/…/fd/ tiek parādītas simboliskās saites, un faktisko informāciju par failu sniedz:

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

kur НОМЕР – interesējošās lietas deskriptors (deskriptors).

Tā vietā, lai zvanītu "pgrep исполняемый-файл"Jūs varat nekavējoties aizstāt interesējošā procesa identifikatoru.

Pagaidu faili var būt ļoti lieli, tāpēc /tmp Ieteicams atvēlēt vismaz 20-30 GB. Jāņem vērā, ka šķirošanas failu lielums ir atkarīgs tikai no pieprasījumā tieši vai netieši sakārtoto datu apjoma, un viens lietotājs var “izveidot” gigabaitus pagaidu failus.

Datu bāzes failu sadaļā ir jāietver visi datu bāzes faili. plus, vismaz, lielākā datu bāzes faila kopija. Ir jārēķinās ar datu bāzes failu pieaugumu nākotnē vairākus gadus uz priekšu.

Vietējo dublējumu sadaļā ir jābūt vismaz vienam visu datu bāzu dublējuma arhīvam, kā arī lielākās datu bāzes dublējumam. Vēlams, lai šajā sadaļā būtu vieta arī lielākās datu bāzes atjaunošanai. Jārēķinās ar dublējumu un rezerves arhīvu pieaugumu nākotnē vairāku gadu garumā.

Iepriekšēja sagatavošana

Firebird 3.0 DBVS serveris dinamiski piešķir un atbrīvo sistēmas atmiņu, kas var izraisīt tās sadrumstalotību. Piemēram, pēc tam, kad liels skaits lietotāju vienlaikus tiek atvienoti no superservera, jaunu savienojumu izveides laikā var rasties kļūdas.

Atmiņas fragmentāciju kontrolē sistēmas parametrs vm.max_map_count, noklusējuma vērtība ir 64 K. Ieteicams palielināt tā vērtību četras reizes:

sudo sysctl vm.max_map_count=256000

Lai jaunā vērtība tiktu iestatīta, kad sistēma atsāknējas, pievienojiet failam /etc/sysctl.conf rinda:

vm.max_map_count = 256000

Ieteicams sniegt komentāru, lai būtu skaidrs šī parametra maiņas iemesls. Vispirms varat rediģēt failu un pēc tam lietot tajā saglabātos iestatījumus:

sudo sysctl -p /etc/sysctl.conf

Nepieciešamo pakotņu instalēšana

Firebird 3.0 Linux DBVS izpildāmie faili ir atkarīgi no ncurses bibliotēkām (libncurses.so.5), ICU (nav saistīts ar versiju un netiek parādīts izvadē ldd) un tommath (libtommath.so.0). Lai lejupielādētu un izsaiņotu montāžas arhīvu, jums būs nepieciešamas utilītas gzip, tar и curl vai wget. ICU versijas, gzip, tar и curl/wget – ir nenozīmīgi.

Darbs ar pakotnēm ir atkarīgs no sistēmas un sistēmā izmantotā pakotņu pārvaldnieka, tāpēc mēs tās izskatīsim pa vienam.

8 CentOS

CentOS 8 izmanto jaunu pakotņu pārvaldnieku - dnf un to sauc par "caurspīdīgi" ar komandu yum. Tā kā mūsu vajadzībām starp tiem nav atšķirības - piemēros tā būs yum.

Atjauniniet metadatu kešatmiņu: sudo yum makecache

Libtomath pakotne atrodas atsevišķā E(xtra)P(ackages for)E(nterprise)L(inux) repozitorijā, tāpēc mēs pārbaudām, vai tā jau ir iekļauta:

yum -C repolist

Opcija "tikai no kešatmiņas" (-C vai --cache-only) tiek izmantots, lai novērstu nevajadzīgas pārbaudes un lejupielādes, padarot yum ātrāku. Ja sarakstā nav epel repozitorija, instalējiet to un atjauniniet metadatu kešatmiņu:

sudo yum install epel-release &&
sudo yum makecache

Mēs apstiprinām pieprasījumus, ja nepieciešams, pārbaudot pgp atslēgu vērtības ar tām, kas jau ir zināmas no uzticama avota.

Ja rodas problēmas ar repozitorija metainformācijas ielādi no https resursiem, rediģējiet failu /etc/yum.repos.d/epel.repo, aizstājot https:// par http:// un atkārtojiet kešatmiņas atjaunināšanas komandu.

Mēs pārbaudām nepieciešamo pakotņu statusu (komanda ir sarežģīta, piemērā tiek filtrēta 32 bitu pakotne):

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

Mēs to redzam curl, gzip и ncurses mitināts instalētāja pseidorepozitorijā (anaconda) un tar – izslēgts no minimālās sistēmas uzstādīšanas. Galvenās versijas libncurses и libtommath vairāk nekā nepieciešams: attiecīgi 6 un 1, nevis 5 un 0. Ja ir instalēta un pieejama viena un tā pati pakotne, tai ir izlaists atjauninājums. Instalējiet trūkstošās pakotnes:

sudo yum install 
libicu libtommath tar

ubuntu 19

Utilītas ir paredzētas pakotņu pārvaldībai apt, apt‑get и apt‑cache. Pirmais ir paredzēts interaktīvam darbam, bet pēdējie divi ir paredzēti izmantošanai skriptos. Pakešu nosaukumi nedaudz atšķiras un ietver versiju.

Mēs pārbaudām nepieciešamo pakotņu statusu (komanda ir apvienota, piemēra izvade tiek saīsināta un 32 bitu pakotnes tiek filtrētas):

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]

Pakas, uz kurām norāda kvadrātiekavas installed/upgradable - uzstādīts. Pieejams, bet nav instalēts ncurses5, tā vietā curl instalēta wget. Instalējiet trūkstošās pakotnes:

sudo apt‑get install 
libncurses5 libtommath1

Simbolu saišu izveide

Kopš libtommath.so.1 и libncurses.so.6 atpakaļ saderīgs ar libtommath.so.0 и libncurses.so.5, tad Firebird pietiek izveidot simboliskās saites uz esošajām bibliotēku versijām.

Mēs atrodam libtommath.so.1 (libncurses.so.? atrodas tajā pašā direktorijā):

find /usr -name libtommath.so.1

CentOS:

/usr/lib64/libtommath.so.1

Ubuntu:

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

Mēs veidojam simboliskās saites.

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

Pārbaudīsim rezultātu (komanda ir sarežģīta, izvades piemēri ir saīsināti):

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

Firebird DBMS izplatīšanas komplekta lejupielāde.

Firebird projekta oficiālajā vietnē (firebirdsql.org) ir publicētas saites uz “oficiālo” laidienu un “ikdienas” būvējumu (momentuzņēmumu būvējumu) izplatīšanu.

Oficiālie Linux laidieni ir pieejami kā arhīvi (tar.gz) un deb/rpm pakotnes, bet būvējumi ir pieejami tikai kā arhīvi. Mēs apsvērsim "vispārējo instalētāju" (vispārējais instalētājs no tar.gz).

Būves arhīvs ir jālejupielādē un jāizpako, taču mēs apvienosim abus procesus. Izpakošana tiek veikta /tmp,URL apzīmē saiti uz lejupielādējamo arhīvu.

čokurošanās:

curl -L URL | tar -zxC /tmp

wget:

wget -O– URL | tar -zxC /tmp

Pēc noklusējuma curl nosūta lejupielādētos datus uz stdout, bet neapstrādā novirzīšanu, un mēs pievienojam "‑L", bet wget, gluži pretēji: apstrādā novirzīšanas, bet ieraksta datus failā un mēs ievietojam "‑O‑" Priekš tar norāda lietošanu gzip-filtrs un direktorijs, kurā tiks veikta izpakošana. Kad process būs pabeigts, parādīsies šāds direktorijs Firebird‑3.0.5.33220‑0.amd64 ar trim failiem: install.sh, buildroot.tar.gz и manifest.txt.

Firebird instalēšana

Iepriekšējas sagatavošanas laikā mēs noregulējām sistēmas parametra vērtību vm.max_map_count, pārbaudīja pieejamību un instalēja ICU, ncurses un tommath bibliotēkas. Pārliecinieties, vai ncurses un tommath versijas ir pareizas (libncures.so.5 и libtommath.so.0) un izveidoja nepieciešamās simboliskās saites.

Faktiskā uzstādīšana ir ļoti vienkārša. Dodieties uz direktoriju, kurā tika izpakots Firebird izplatīšanas arhīvs, pārbaudiet un, ja nepieciešams, iestatiet skripta karogu “izpildāms”. install.sh:

chmod +x install.sh

palaidiet instalācijas skriptu:

sudo ./install.sh

Nospiežot taustiņu Enter, mēs apstiprinām instalēšanas sākumu un pēc pieprasījuma saņemšanas ievadiet sysdba paroli.

Instalācijas skripts sākas automātiski systemd- vienība firebird-superserver (klusā Firebird 3.0 arhitektūra). Firebird pakalpojums darbosies ar noklusējuma parametriem superserverim: lapas kešatmiņa 2048 lappusēs (vienā datu bāzē), šķirošanas buferis 64 MB (koplietots) un savieno tikai XNUMX. versijas klientus. Skatīt opcijas firebird.conf:

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

Lūdzu, ņemiet vērā, ka jaunās vērtības no firebird.conf tiks aktivizēts tikai pēc pakalpojuma Firebird restartēšanas.

Izvēloties parametru vērtības, jāņem vērā, ka ir trīs galvenie “patērētāji”: lapas kešatmiņa (bāzei), šķirošanas buferis (koplietotais) un servera atvēlētā atmiņa klientu savienojumiem. Jūs varat pārvaldīt tikai pirmos divus - atmiņas apjoms klientu savienojumiem ir atkarīgs no kešatmiņā saglabāto vaicājumu skaita un teksta, to plāniem un vaicājumos iesaistītajiem datu bāzes objektiem. Klienta savienojuma atmiņas aprēķini tiek veikti tikai empīriski un var mainīties, mainoties klienta lietojumprogrammām un/vai datu bāzes objektiem.

Superserverim resursdatoros ar nelielu atmiņas apjomu (līdz 12–16 GB) lapas kešatmiņai un kārtošanas buferim nevajadzētu piešķirt vairāk par trešdaļu vai ceturtdaļu no kopējā RAM apjoma.

Ja datu bāzu skaits nav fiksēts un var mainīties, kopējais lapas kešatmiņas apjoms ir jādala ar maksimālo datu bāzu skaitu, kas var atrasties serverī. Lapas kešatmiņas lielums ir norādīts lapās, un tas ir atsevišķi jāpārvērš baitos.

Lai pārslēgtos uz klasisko arhitektūru, jums ir vismaz skaidri jānorāda ServerMode в firebird.conf, samaziniet lapas kešatmiņu (ne vairāk kā 2K), samaziniet kārtošanas buferi (visu veidu kopējais pieļaujamais apjoms dalīts ar maksimālo savienojumu skaitu), atspējojiet un apturiet ierīci firebird-superserver, iespējojiet un palaidiet ierīci firebird-classic.socket.

Superklasiskās arhitektūras izmantošanai Firebird 3.0 nav lielas jēgas: “uzticamība” ir kā superserveris un tas pats vispārīgais šķirošanas buferis. Nav kopējas lapas kešatmiņas, un “zaudējumi” dažādu savienojumu sinhronizēšanai savā starpā ir tādi paši kā klasiskajā.

Jāatceras, ka programmā Firebird 3.0 dažus parametrus (lapas kešatmiņu, bloķēšanas failu izmērus, hash tabulas un dažus citus) var iestatīt databases.conf katrai datubāzei atsevišķi. Superserverim ir noderīgi, piemēram, iestatīt nelielu vērtību DefaultDbCachePages в firebird.conf un instalējiet atsevišķas lapu kešatmiņas nepieciešamajām datu bāzēm databases.conf.

Uzdodiet jautājumus par rakstu komentāros vai rakstiet vēstules uz mūsu atbalsta adresi [e-pasts aizsargāts].

Avots: www.habr.com

Pievieno komentāru