„Firebird 3“ diegimas šiuolaikinėse „Linux“ versijose: „CentOS8“ ir „Ubuntu 19“.

Šiame straipsnyje aprašysime minimalų veiksmų rinkinį, reikalingą optimaliam Firebird DBMS 3.0 versijos įdiegimui naujuose Linux platinimuose. Kaip pavyzdžiai pasirinkti „CentOS 8“ ir „Ubuntu 19“.

Norėdami „pristatyti“ „Firebird“ paskirstymą į tikslinę sistemą, šiame vadove pasirinkta galimybė atsisiųsti tar.gz archyvą naudojant nuorodą iš oficialios projekto svetainės (firebirdsql.org).

Patiems nekantriesiems eikite tiesiai į kovą:

Greitas montavimas

Failo redagavimas /etc/sysctl.confpridedant eilutę:

vm.max_map_count = 256000

Išsaugokite failą ir pritaikykite nustatymą:

sudo sysctl -p /etc/sysctl.conf

Tolesnės instrukcijos „CentOS 8“ ir „Ubuntu 19“ skiriasi, tačiau ССЫЛКА и КАТАЛОГ nurodykite nuorodą iš oficialios Firebird projekto svetainės, kur galima atsisiųsti platinimą, ir katalogą, į kurį platinimas bus išpakuotas atsisiuntimo proceso metu.
Šiuo metu (2020 m. kovo mėn.) dabartinė versija yra Firebird 3.0.5 (čia yra nuoroda į 64 bitų versiją).

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

Faktinis „Firebird“ DBVS diegimas:

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

Jei norite geriau suprasti, ką daro šie veiksmai, skaitykite toliau.

Pagrindinė dalis

Trumpa preambulė

Daroma prielaida, kad OS jau įdiegta minimalioje versijoje ir sukonfigūruota prieiga prie viešųjų saugyklų arba jų vietinių kopijų.

Daroma prielaida, kad skaitytojas turi pagrindinių žinių apie Linux ir Firebird DBVS.

Planavimas

DBVS serveryje rekomenduojama skirti atskirus skyrius laikiniesiems failams (/tmp), duomenų bazės failus ir vietines atsargines kopijas.

Laikinieji yra užrakto failai, rūšiavimo failai, pasaulinių laikinųjų lentelių (GTT) „materializacijos“ failai ir stebėjimo lentelės. Rūšiavimo ir pasaulinių laikinųjų lentelių failai yra /tmp, mon$-table failai ir lock-failai – į /tmp/firebird.

Rūšiavimo failai yra „ištrinami“ (unlink) iškart po sukūrimo, todėl jų negalima „matyti“ katalogų sąraše – tik procesų rankenų sąraše (pažymėta kaip deleted):

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

Pseudokatalogų sąraše /proc/…/fd/ rodomos simbolių nuorodos, o faktinę informaciją apie failą pateikia:

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

kur НОМЕР – dominančios bylos deskriptorius (deskriptorius).

Užuot skambinęs "pgrep исполняемый-файл„Galite iš karto pakeisti dominančio proceso identifikatorių.

Laikini failai gali būti labai dideli, todėl /tmp Rekomenduojama skirti bent 20-30 GB. Reikėtų atsižvelgti į tai, kad rūšiuojamų failų dydis priklauso tik nuo užklausoje tiesiogiai ar netiesiogiai surūšiuotų duomenų kiekio, o vienas vartotojas gali „sukurti“ gigabaitus laikinųjų failų.

Duomenų bazės failų skyriuje turi būti visi duomenų bazės failai. plius bent jau didžiausio duomenų bazės failo kopiją. Būtina atsižvelgti į duomenų bazių failų augimą ateityje kelerius metus.

Vietinių atsarginių kopijų skiltyje turi būti bent vienas atsarginis visų duomenų bazių archyvas ir didžiausios duomenų bazės atsarginė kopija. Pageidautina, kad šiame skyriuje taip pat būtų vietos didžiausiai duomenų bazei atkurti. Reikėtų atsižvelgti į atsarginių kopijų ir atsarginių archyvų augimą kelerius metus.

Preliminarus pasirengimas

Firebird 3.0 DBMS serveris dinamiškai paskirsto ir atlaisvina sistemos atmintį, o tai gali sukelti jos susiskaidymą. Pavyzdžiui, vienu metu nuo superserverio atsijungus dideliam vartotojų skaičiui, užmezgant naujus ryšius gali atsirasti klaidų.

Atminties fragmentacija valdoma sistemos parametru vm.max_map_count, numatytasis dydis yra 64 tūkst. Jo vertę rekomenduojama padidinti keturis kartus:

sudo sysctl vm.max_map_count=256000

Kad nauja reikšmė būtų nustatyta, kai sistema paleidžiama iš naujo, pridėkite prie failo /etc/sysctl.conf eilutė:

vm.max_map_count = 256000

Patartina pateikti komentarą, kad būtų aiški šio parametro keitimo priežastis. Pirmiausia galite redaguoti failą ir pritaikyti jame išsaugotus nustatymus:

sudo sysctl -p /etc/sysctl.conf

Reikiamų paketų diegimas

Vykdomi Firebird 3.0 Linux DBVS failai priklauso nuo ncurses bibliotekų (libncurses.so.5), ICU (nesusieta su versija ir nerodoma išvestyje ldd) ir tommath (libtommath.so.0). Norėdami atsisiųsti ir išpakuoti surinkimo archyvą, jums reikės paslaugų gzip, tar и curl arba wget. ICU versijos, gzip, tar и curl/wget – yra nereikšmingi.

Darbas su paketais priklauso nuo sistemos ir nuo sistemoje naudojamo paketų tvarkyklės, todėl svarstysime juos po vieną.

8 Centos

„CentOS 8“ naudoja naują paketų tvarkyklę - dnf ir ji vadinama „skaidriai“ pagal komandą yum. Kadangi mūsų tikslams tarp jų nėra skirtumo - pavyzdžiuose bus yum.

Atnaujinkite metaduomenų talpyklą: sudo yum makecache

Paketas libtomath yra atskiroje E(xtra)P(packages for)E(nterprise)L(inux) saugykloje, todėl patikriname, ar jis jau įtrauktas:

yum -C repolist

Parinktis „tik iš talpyklos“ (-C arba --cache-only) naudojamas norint pašalinti nereikalingus patikrinimus ir atsisiuntimus, kad „yum“ būtų greitesnis. Jei sąraše nėra „epel“ saugyklos, įdiekite ją ir atnaujinkite metaduomenų talpyklą:

sudo yum install epel-release &&
sudo yum makecache

Patvirtiname užklausas, jei reikia, patikrindami pgp raktų reikšmes su jau žinomomis iš patikimo šaltinio.

Jei kyla problemų įkeliant saugyklos metainformaciją iš https išteklių, redaguokite failą /etc/yum.repos.d/epel.repo, pakeičiant https:// apie http:// ir pakartokite talpyklos atnaujinimo komandą.

Tikriname reikalingų paketų būseną (komanda sudėtinga, pavyzdyje išvestyje filtruojamas 32 bitų paketas):

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

Mes tai matome curl, gzip и ncurses priglobtas diegimo programos pseudo saugykloje (anaconda), ir tar – neįtraukti į minimalų sistemos įrengimą. Pagrindinės versijos libncurses и libtommath daugiau nei reikalaujama: atitinkamai 6 ir 1 vietoj 5 ir 0. Jei tas pats paketas yra įdiegtas ir pasiekiamas, jam buvo išleistas naujinimas. Įdiekite trūkstamus paketus:

sudo yum install 
libicu libtommath tar

Ubuntu 19

Komunalinės paslaugos skirtos paketams valdyti apt, apt‑get и apt‑cache. Pirmasis skirtas interaktyviam darbui, o paskutiniai du skirti naudoti scenarijuose. Paketų pavadinimai šiek tiek skiriasi ir apima versiją.

Patikriname reikalingų paketų būseną (komandos sujungiamos, pavyzdžio išvestis sutrumpinama ir 32 bitų paketai išfiltruojami):

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]

Paketai, kuriuos nurodo laužtiniai skliaustai installed/upgradable – įdiegta. Galima, bet neįdiegta ncurses5, vietoj curl įdiegta wget. Įdiekite trūkstamus paketus:

sudo apt‑get install 
libncurses5 libtommath1

Simbolinių nuorodų kūrimas

Nuo libtommath.so.1 и libncurses.so.6 atgal suderinamas su libtommath.so.0 и libncurses.so.5, tada Firebird pakanka sukurti nuorodas į esamas bibliotekų versijas.

Mes randame libtommath.so.1 (libncurses.so.? yra tame pačiame kataloge):

find /usr -name libtommath.so.1

Centos:

/usr/lib64/libtommath.so.1

Ubuntu:

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

Kuriame simbolius.

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

Patikrinkime rezultatą (komanda sudėtinga, išvesties pavyzdžiai sutrumpinti):

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

Atsisiunčiamas Firebird DBMS platinimo rinkinys.

Oficialioje „Firebird“ projekto svetainėje (firebirdsql.org) skelbiamos nuorodos į „oficialių“ leidimų ir „kasdienių“ versijų (momentinių kopijų) platinimą.

Oficialūs Linux leidimai pasiekiami kaip archyvai (tar.gz) ir deb/rpm paketai, tačiau versijos galimos tik kaip archyvai. Mes apsvarstysime „bendrą diegimo programą“ (bendrąją diegimo programą iš tar.gz).

Sukūrimo archyvą reikia atsisiųsti ir išpakuoti, bet mes sujungsime abu procesus. Išpakavimas atliktas /tmp,URL žymi nuorodą į atsisiunčiamą archyvą.

garbanos:

curl -L URL | tar -zxC /tmp

wget:

wget -O– URL | tar -zxC /tmp

Pagal nutylėjimą curl siunčia atsisiųstus duomenis į stdout, bet neapdoroja peradresavimų ir pridedame "‑L", bet wget, priešingai: tvarko peradresavimus, bet įrašo duomenis į failą ir mes įdedame "‑O‑“ Dėl tar nurodyti naudojimą gzip-filtras ir katalogas, į kurį bus atliktas išpakavimas. Kai procesas bus baigtas, pasirodys toks katalogas Firebird‑3.0.5.33220‑0.amd64 su trimis failais: install.sh, buildroot.tar.gz и manifest.txt.

„Firebird“ diegimas

Išankstinio pasiruošimo metu pakoregavome sistemos parametro reikšmę vm.max_map_count, patikrino prieinamumą ir įdiegė ICU, ncurses ir tommath bibliotekas. Įsitikinkite, kad ncurses ir tommath versijos yra teisingos (libncures.so.5 и libtommath.so.0) ir sukūrė reikiamas nuorodas.

Tikrasis įrengimas yra labai paprastas. Eikite į katalogą, kuriame buvo išpakuotas „Firebird“ platinimo archyvas, patikrinkite ir, jei reikia, nustatykite scenarijaus „vykdomąją“ vėliavėlę. install.sh:

chmod +x install.sh

paleiskite diegimo scenarijų:

sudo ./install.sh

Paspaudę Enter klavišą patvirtiname diegimo pradžią, o gavę užklausą įveskite sysdba slaptažodį.

Diegimo scenarijus paleidžiamas automatiškai systemd- vienetas firebird-superserver (tylioji Firebird 3.0 architektūra). „Firebird“ paslauga veiks su numatytaisiais superserverio parametrais: 2048 puslapių talpyklą (vienoje duomenų bazėje), 64 MB rūšiavimo buferį (bendrai) ir jungiančią tik XNUMX versijos klientus. Peržiūrėti parinktis firebird.conf:

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

Atkreipkite dėmesį, kad naujos vertės nuo firebird.conf bus suaktyvintas tik iš naujo paleidus „Firebird“ paslaugą.

Renkantis parametrų reikšmes reikia atsižvelgti į tai, kad yra trys pagrindiniai „vartotojai“: puslapio talpykla (duomenų bazei), rūšiavimo buferis (bendrasis) ir atmintis, kurią serveris skiria kliento ryšiams. Galite valdyti tik pirmuosius du – kliento ryšiams skirtos atminties kiekis priklauso nuo talpykloje esančių užklausų skaičiaus ir teksto, jų planų ir su užklausomis susijusių duomenų bazės objektų. Kliento ryšio atminties įvertinimai atliekami tik empiriškai ir gali keistis keičiantis kliento programoms ir (arba) duomenų bazės objektams.

Jei naudojate superserverį pagrindiniuose kompiuteriuose su nedideliu atminties kiekiu (iki 12–16 GB), puslapio talpyklai ir rūšiavimo buferiui neturėtumėte skirti daugiau nei trečdalio ar ketvirtadalio visos RAM.

Jei duomenų bazių skaičius nėra fiksuotas ir gali keistis, bendras puslapių talpyklos atminties kiekis turi būti padalintas iš didžiausio duomenų bazių skaičiaus, kuris gali būti serveryje. Puslapio talpyklos dydis nurodomas puslapiais ir turi būti atskirai konvertuojamas į baitus.

Norėdami pereiti prie klasikinės architektūros, turite bent jau aiškiai nurodyti ServerMode в firebird.conf, sumažinkite puslapio talpyklą ten (ne daugiau kaip 2K), sumažinkite rūšiavimo buferį (bendras leistinas visų rūšių tūris padalintas iš maksimalaus jungčių skaičiaus), išjunkite ir sustabdykite įrenginį firebird-superserver, įjunkite ir paleiskite įrenginį firebird-classic.socket.

Superklasikinės architektūros naudojimas Firebird 3.0 nėra prasmingas: „patikimumas“ yra kaip superserveris ir tas pats bendras rūšiavimo buferis. Nėra bendros puslapio talpyklos, o „nuostoliai“ sinchronizuojant skirtingus ryšius yra tokie patys kaip ir klasikiniame.

Reikėtų atsiminti, kad „Firebird 3.0“ kai kuriuos parametrus (puslapio talpyklą, užrakto failų dydžius, maišos lenteles ir kai kuriuos kitus) galima nustatyti databases.conf kiekvienai duomenų bazei atskirai. Superserveriui naudinga, pavyzdžiui, nustatyti nedidelę reikšmę DefaultDbCachePages в firebird.conf ir įdiekite atskiras puslapių talpyklas reikiamoms duomenų bazėms databases.conf.

Užduokite klausimų apie straipsnį komentaruose arba rašykite laiškus mūsų palaikymo adresu [apsaugotas el. paštu].

Šaltinis: www.habr.com

Добавить комментарий