Firebird 3 installimine kaasaegsetele Linuxi versioonidele: CentOS8 ja Ubuntu 19

Selles artiklis kirjeldame minimaalset tegevuste kogumit, mis on vajalik Firebird andmebaasisĂŒsteemi versiooni 3.0 optimaalseks paigaldamiseks uutele Linuxi distributsioonidele. NĂ€ideteks on valitud CentOS 8 ja Ubuntu 19.

Firebird distributsiooni „toimetamiseks“ sihtsĂŒsteemi valisime selles juhendis tĂ”mmata tar.gz arhiiv ametliku projekti veebisaidilt (firebirdsql.org).

Kauem oodanutele — otse tegudesse:

Kiire installatsioon

Toimetame faili /etc/sysctl.conf, lisades rea:

vm.max_map_count = 256000

Salvestame faili ja rakendame seadistuse:

sudo sysctl -p /etc/sysctl.conf

Edasi juhised erinevad CentOS 8 ja Ubuntu 19 jaoks, kuid LINK ja KATALOOG tÀhistavad lingi ametlikult Firebird projekti veebisaidilt distributsiooni laadimiseks ja katalooge, kuhu distributsioon laetakse, lahtipakkimise protsessi kÀigus.
Praegusel hetkel (mÀrts 2020) on saadaval Firebird 3.0.5 (siin on link 64-bit versioonile).

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 LINK|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- LINK|tar -zxC /tmp

NĂŒĂŒd siis Firebird andmebaasisĂŒsteemi paigaldamine:

cd /tmp/KATALOOG
sudo ./install.sh

Kui soovite paremini mĂ”ista, milleks need toimingud on – lugege edasi.

PÔhiosa

LĂŒhike sissejuhatus

Eeldatakse, et operatsioonisĂŒsteem on juba minimaalsetes seadetes installitud ja juurdepÀÀs avalikele hoidlatele vĂ”i nende kohalikele koopiatele on seadistatud.

Eeldatakse, et lugejal on pÔhilised teadmised Linuxist ja Firebird andmebaasist.

Planeerimine

Serveris on soovitatav eraldada eraldi partitsioonid ajutiste failide jaoks (/tmp), andmebaasifailide ja kohalike varukoopia jaoks.

Ajutiste hulka kuuluvad lukufailid, sortimisfailid, globaalsete ajutiste tabelite (GTT) ja jĂ€lgimistabelite failid. Sortimisfailid ja globaalsete ajutiste tabelite failid asuvad /tmp, mon$-tabeli failid ja lukufailid – /tmp/firebird.

Sortimisfailid «kustutatakse» (unlink) kohe pĂ€rast loomist, seega ei saa neid katalooge kuvada – ainult protsessi descriptorite loendist (mĂ€rgitud nagu kustutatud):

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

Psevdokatalooge loendis kuvatakse sĂŒmboolsed lingid, samas kui tegelikku teavet faili kohta annab: /proc/
/fd/ kuvatakse sĂŒmboolseid linke, samas kui tegelikku teavet faili kohta annab:

sudo stat -L /proc/`pgrep firebird`/fd/NUMBER

kus NUMBER – huvipakkuva faili descriptor.

KÀsku «pgrep tÀidetav-fail» saab kohe sisestada huvipakuva protsessi identifikaator.

Ajutised failid vĂ”ivad olla vĂ€ga suured, seetĂ”ttu on soovitatav eraldada vĂ€hemalt 20-30 GB. Tuleb arvestada, et sortimisfailide suurus sĂ”ltub ainult nende andmete mahust, mida kĂŒsimuses selgelt vĂ”i varjatult sorteeritakse, ja ĂŒksik kasutaja vĂ”ib "luua" gigabaitide kaupa ajutisi faile. /tmp Andmebaasi failide ala peaks mahutama kĂ”igi andmebaaside failid, pluss vĂ€hemalt ĂŒhe kĂ”ige suurema andmebaasi koopia. Tuleb arvestada andmebaaside failide kasvuga mitme aasta perspektiivis.

Kohalikud varukoopiafailide alad peaksid mahtuma vĂ€hemalt ĂŒhe arhiivi kĂ”ikide andmebaaside varukoopiatest pluss kĂ”ige suurema andmebaasi varukoopia. Soovitav on, et sellel alal oleks ka ruumi kĂ”ige suurema andmebaasi taastamiseks. Tuleb arvestada varukoopiate ja varukoopia arhiivide kasvuga mitme aasta perspektiivis.

Kohalike varukoopiate sektsioon peaks sisaldama vĂ€hemalt ĂŒhte arhiivi kĂ”igist andmebaasidest ning arhiivi suurimast andmebaasist. Soovitav on, et selles sektsioonis oleks ruumi ka suurima andmebaasi taastamiseks. Tuleb arvestada varukoopiate ja varukoopiate arhivatsiooni kasvu mitme aasta perspektiivis.

Eelnevad ettevalmistused

Firebird 3.0 andmebaasiserver jagab ja vabastab dĂŒnaamiliselt sĂŒsteemimĂ€lu, mis vĂ”ib viia selle fragmenteerumiseni. NĂ€iteks vĂ”ib pĂ€rast suure arvu kasutajate samal ajal superserverist eemaldamist uute ĂŒhenduste loomisel tekkida vigu.

MĂ€lu fragmenteerimist reguleerib sĂŒsteemiparameeter vm.max_map_count, vaikimisi – 64K. Soovitav on suurendada selle vÀÀrtust neljakordselt:

sudo sysctl vm.max_map_count=256000

Et uus vÀÀrtus kehtiks sĂŒsteemi taaskĂ€ivitamisel, lisame faili /etc/sysctl.conf rea:

vm.max_map_count = 256000

Soovitav on lisada kommentaar, et muuta selgeks selle parameetri muutmise pÔhjuse. Saame esmalt faili redigeerida ja seejÀrel rakendada selle salvestatud seaded:

sudo sysctl -p /etc/sysctl.conf

Vajalike pakettide installimine

Firebird 3.0 Linuxi andmebaasihalduri tĂ€idetavad failid sĂ”ltuvad raamatukogudest ncurses (libncurses.so.5), ICU (versioonist sĂ”ltumatu ja vĂ€ljundis ei kajastu ldd) ja tommath (libtommath.so.0). Koostamisfaili allalaadimiseks ja pakkimiseks on vajalikud utiliidid gzip, tar ja curl vĂ”i wget. ICU versioonid, gzip, tar ja curl/wget – ei ole olulised.

Töötamine pakettidega sĂ”ltub sĂŒsteemist ja kasutatavast paketihaldurist, seega vaatame neid jĂ€rjestikku.

CentOS 8

CentOS 8 kasutab uut paketihaldurit – dnf ja see kutsutakse vĂ€lja kĂ€su kaudu yum. Kuna meie eesmĂ€rkide jaoks pole nende vahel vahet – nĂ€idetes kasutatakse yum.

Metaandmete vahemÀlu vÀrskendamine: sudo yum makecache

LibTomMath paket asub eraldi E(xtra)P(ackages for)E(nterprise)L(inux) hoidlas, seega kontrollime, et see on juba aktiveeritud:

yum -C repolist

Valik „ainult vahemĂ€lust“ (-C vĂ”i --cache-only) kasutatakse, et vĂ€listada tarbetud kontrollid ja allalaadimised, kiirendades yum-i tööd. Kui loendis ei ole epel-repositooriumi – paigaldame selle ja uuendame metaandmete vahemĂ€lu:

sudo yum install epel-release &&
sudo yum makecache

Kinnitage pÀringud, vajadusel vÔrreldes pgp-vÔtmete vÀÀrtusi juba tuntud usaldusvÀÀrsete allikatega.

Kui esinevad probleemid repositooriumi metaandmete allalaadimisega https-ressurssidelt, siis redigeerime faili /etc/yum.repos.d/epel.repo, asendades https:// jÀrgnevaga http:// ja kordame vahemÀlu uuendamise kÀsku.

Kontrollime vajalike paketide staatust (kÀsk on kokku pandud, nÀidatud vÀljundis on filtreeritud 32-bitine pakett):

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

NĂ€eme, et curl, gzip ja ncurses on paigaldaja valehoidlas (anaconda), and tar – vĂ€listatud minimaalsetest sĂŒsteemi paigaldustest. Peamised versioonid libncurses ja libtommath rohkem kui vajalik: 6 ja 1 asemel 5 ja 0. Kui sama pakett on paigaldatud ja saadaval, on selle jaoks vĂ€lja antud uuendus. Paigaldame puuduvad paketid:

sudo yum install 
libicu libtommath tar

Ubuntu 19

Pakettide haldamiseks on ette nĂ€htud utiliidid apt, apt‑get ja apt‑cache. Esimene on mĂ”eldud interaktiivseks kasutamiseks, kaks viimast – skriptides kasutamiseks. Paketide nimed on veidi erinevad ja sisaldavad versiooni.

Kontrollime vajalike pakettide staatust (kĂ€sk on kokku pandud, vĂ€ljundi nĂ€ide on lĂŒhendatud ja filtritud 32-bitised paketid):

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]

Pakettide puhul, mille puhul on ruudulised sulud installed/upgradable – on paigaldatud. Saadaval, kuid mitte paigaldatud ncurses5, selle asemel curl paigaldatud wget. Paigaldame puuduvad paketid:

sudo apt‑get install 
libncurses5 libtommath1

SĂŒmbollinkide loomine

Kuna libtommath.so.1 ja libncurses.so.6 on tagasiĂŒhilduvad libtommath.so.0 ja libncurses.so.5, seega piisab Firebird jaoks olemasolevate teegiversioonide sĂŒmbollinkide loomisest.

Leiame libtommath.so.1 (libncurses.so.? asuvad samas kataloogenes):

find /usr -name libtommath.so.1

CentOS:

/usr/lib64/libtommath.so.1

Ubuntu:

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

Loome sĂŒmbollinke.

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

Kontrollime tulemust (kĂ€sk on loodud, vĂ€ljundinĂ€idised on lĂŒhendatud):

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

Laadimine, Firebird SQL andmebaasi jaotust.

Firebird projekti ametlikul veebilehel (firebirdsql.org) avaldatakse lingid "ametlike" vÀljalaskete (releases) ja "igapÀevaste" kokkupanekute (snapshot build) jaotustele.

Ametlikud vĂ€ljalasked Linuxile on saadaval arhivide (tar.gz) ja deb/rpm pakettide kujul, samas kui koostised on saadaval ainult arhivide kujul. KĂ€sitlemme "ĂŒldist installijat" (generic installer tar.gz-st).

Koostise arhiv tuleb alla laadida ja vĂ€lja pakkida, kuid me ĂŒhendame need kaks protsessi. VĂ€lja pakkimine toimub /tmp, URL tĂ€histab allalaadimisarhivi linki.

curl:

curl -L URL | tar -zxC /tmp

wget:

wget -O– URL | tar -zxC /tmp

Vaikimisi curl saab allalaaditavad andmed standardsesse vĂ€ljundisse, kuid ei korda ĂŒmber suunamisi ja me lisame "‑L", ning wget, vastupidiselt: see töötleb ĂŒmber suunamisi, kuid salvestab andmed faili ja me paneme „‑O‑”. Selle jaoks tar tĂ€psustame kasutamise gzip-filtrit ja katalooge, kuhu tĂ”mmatakse lahti. Protsessi lĂ”pus tekib kataloog, mille vorm on Firebird‑3.0.5.33220‑0.amd64 kolme failiga: install.sh, buildroot.tar.gz ja manifest.txt.

Firebirdi installimine

Eelneva ettevalmistuse kĂ€igus mÔÔdsime sĂŒsteemi parameetri vÀÀrtust vm.max_map_count, kontrollisime ja installisime ICU, ncurses ja tommath raamatukogusid. Veendusime, et ncurses ja tommath versioonid on Ă”iged (libncures.so.5 ja libtommath.so.0) ja lĂ”ime vajalikud sĂŒmboolsed lingid.

Installeerimine on tegelikult vĂ€ga lihtne. Liigume kataloogi, kuhu Firebirdi jaotuse arhiiv lahti tĂ”mmati, kontrollime ja vajadusel seadistame skripti „tĂ€idetav“ lipu install.sh:

chmod +x install.sh

kÀivitame installatsiooniskeemi:

sudo ./install.sh

vajutame Enterit, et kinnitada installatsiooni algust, ja kĂŒsimise korral sisestame sysdba parooli.

Installatsiooniskeem kĂ€ivitab automaatselt systemd-ĂŒksuse firebird-superserver (vakitsed Firebird 3.0 arhitektuuri). Firebird teenus töötab vaikimisi konfiguratsiooniga superserveri jaoks: lehekĂŒljete cache 2048 lehekĂŒljega (andmebaas), sorteerimisbauffer 64 MB (ĂŒldine) ja ĂŒhendused ainult kolmanda versiooni klientidele. Vaata seadistusi firebird.conf:

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

Tuleb arvestada, et uued vÀÀrtused firebird.conf aktiveeritakse alles pÀrast Firebird teenuse taaskÀivitamist.

Parameetrite vÀÀrtuste mÀÀramisel tuleb arvestada kolme pĂ”hitarbijaga: lehekĂŒljete cache (andmebaas), sorteerimisbauffer (ĂŒldine) ja serveri poolt klientide ĂŒhendustele eraldatud mĂ€lu. Saate hallata ainult kahte esimest – klientide ĂŒhenduste mĂ€lu sĂ”ltub vahetamine ja nende pĂ€ringute toetatud plaanidest ning andmebaasi objektidest. Klientide ĂŒhenduste mĂ€luhinnang tehakse ainult empiiriliselt ja vĂ”ib muutuda vastavalt klientide rakenduste ja/vĂ”i andmebaasi objektide muutustele.

Superserveri puhul mĂ€lumahtudega hostidel (kuni 12-16 GB) ei tohiks lehekĂŒljete cache ja sorteerimisbaufferi jaoks eraldada rohkem kui kolmandikku-neljandikku ĂŒldisest RAM-i mahust.

Kui andmebaaside arv ei ole fikseeritud ja vĂ”ib muutuda, tuleb lehe vahemĂ€lu kogumaht jagada maksimaalsete andmebaaside arvu jĂ€rgi, mis vĂ”ivad serveris olla. Lehe vahemĂ€lu suurus mÀÀratakse lehtede arvu jĂ€rgi ning see tuleb eraldi ĂŒmber arvutada baitideks.

Klassikalise arhitektuurile ĂŒlemiseks on vĂ€hemalt selgelt vajalik ServerMode ĂŒhes firebird.conf, vĂ€hendada lehe vahemĂ€lu (mitte ĂŒle 2K), vĂ€hendada sorteerimise puut, (kĂ”igi sorteerimiste lubatud kogumaht jagatuna maksimaalse ĂŒhenduste arvuga), keelata ja peatada ĂŒksus firebird-superserver, lubada ja kĂ€ivitada ĂŒksus firebird-classic.socket.

Superklassikalise arhitektuuri kasutamine Firebird 3.0-s ei oma suurt mĂ”tet: "usaldusvÀÀrsus" on nagu superserveril ja sama ĂŒldine sorteerimise puut. Pole ĂŒldist lehe vahemĂ€lu ning erinevate ĂŒhenduste vahelise sĂŒnkroniseerimise "kaod" on samasugused nagu klassikul.

On oluline meeles pidada, et Firebird 3.0-s saab osa parameetritest (lehe vahemĂ€lu, lukufaili suurused, hash-tabelid ja mĂ”ned teised) mÀÀrata databases.conf iga andmebaasi jaoks eraldi. Superserveri puhul on nĂ€iteks kasulik mÀÀrata vĂ€ike vÀÀrtus DefaultDbCachePages ĂŒhes firebird.conf ja eristada individuaalseid lehekĂŒlge puhverdatud andmetega vajalikele andmebaasidele databases.conf.

KĂŒsimused artikli kohta esitage kommentaarides vĂ”i kirjutage meie tugiaadressile support@ibase.ru.

Allikas: habr.com

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster