Instalimi i Firebird 3 në versionet moderne të Linux: CentOS 8 dhe Ubuntu 19

Në këtë artikull do të përshkruajmë setin minimal të veprimeve të nevojshme për një instalim optimal të SGBD Firebird version 3.0 në distribucione të reja Linux. Për shembuj janë zgjedhur CentOS 8 dhe Ubuntu 19.

Për "dërgimin" e distribucionit Firebird në sistemin e qëlluar, në këtë udhëzues, është zgjedhur opsioni i shkarkimit të arkivit tar.gz nga lidhja në faqen zyrtare të projektit (firebirdsql.org).

PĂ«r ata qĂ« nuk kanĂ« durim — menjĂ«herĂ« nĂ« veprim:

Instalimi i shpejtë

Redaktoni skedarin /etc/sysctl.conf, duke shtuar rreshtin:

vm.max_map_count = 256000

Ruajmë skedarin dhe aplikojmë konfigurimin:

sudo sysctl -p /etc/sysctl.conf

UdhĂ«zimet e mĂ«tejshme ndryshojnĂ« pĂ«r CentOS 8 dhe Ubuntu 19, por LINK dhe DREJTORESË tĂ« dyja tregojnĂ« lidhjen nga faqja zyrtare e projektit Firebird pĂ«r shkarkimin e distribucionit dhe drejtorinĂ« ku do tĂ« shkarkohet distribucioni.
Në këtë moment (mars 2020) versioni i saktë është Firebird 3.0.5 (ja lidhja për versionin 64-bit).

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ë vetë instalimin e SGBD Firebird:

cd /tmp/DREJTORESË
sudo ./install.sh

NĂ«se dĂ«shironi tĂ« kuptoni mĂ« mirĂ« se çfarĂ« shĂ«rbejnĂ« kĂ«to veprime – lexoni mĂ« tej.

Pjesa kryesore

Një përmbledhje e vogël

Supozimi është se tashmë OS është instaluar në një variant minimal dhe është konfiguruar qasja në repo publik ose në kopjet e tyre lokale.

Supozimi është se lexuesi ka njohuri bazike për Linux dhe SGBD Firebird.

Planifikimi

Në serverin e SGBD rekomandohet ndarja e ndarjeve të veçanta për skedarët përkohësorë (/tmp), skedarët e bazës së të dhënave dhe kopjet lokale.

Skedarët përkohësorë janë skedarët lock, skedarët e renditjes, skedarët e "materializimit" të tabelave përkohësore globale (GTT) dhe tabelat e monitorimit. Skedarët e renditjes dhe tabelat përkohësore globale janë të vendosur në /tmp, skedarët mon$-tabelat dhe skedarët lock janë në /tmp/firebird.

SkedarĂ«t e renditjes "fshihen" (unlink) menjĂ«herĂ« pas krijimit, prandaj nuk mund tĂ« "shihen" nĂ« listimin e drejtorisĂ« – vetĂ«m nĂ« listĂ«n e pĂ«rshkruesve (handles) tĂ« procesit (tĂ« shĂ«nuara si fshirĂ«):

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

Në listimin e pseudo-drejtorisë /proc/
/fd/ shfaqen lidhjet simotike, ndërsa informacionin e saktë për skedarin e jep:

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

ku NUMRI – pĂ«rshkruesi i skedarit tĂ« interesuar.

Në vend të thirrjes "pgrep ekzekutuesi" mund të vendosni menjëherë identifikuesin e procesit të interesuar.

Skedarët përkohësorë mund të jenë shumë të mëdhenj, prandaj për /tmp rekomandohet ndarja e të paktën 20-30 GB. Duhet të merret parasysh se madhësia e skedarëve të renditjes varet vetëm nga volumi i të dhënave, të renditura në mënyrë të qartë ose të paqartë në kërkesë dhe një përdorues i vetëm mund të "krijojë" gigabajtë skedarësh përkohësorë.

Ndarja për skedarët e bazës së të dhënave duhet të përmbajë skedarët e të gjitha bazave, plus, të paktën, një kopje të skedarit të bazës më të madhe. Duhet të merret parasysh rritja e skedarëve të bazave në perspektivë për disa vjet përpara.

Ndarja e kopjeve lokale duhet të përmbajë, të paktën, një arkiv për çdo kopje të të gjitha bazave plus kopjen e bazës më të madhe. Preferohet që në këtë ndarje të ketë gjithashtu hapësirë për rikthimin e bazës më të madhe. Duhet të merret parasysh rritja e kopjeve dhe arkivave të kopjeve në perspektivë për disa vjet përpara.

Përgatitja paraprake

Serveri SGBD Firebird 3.0 ndan dhe lirohet dinamik nga kujtesa sistemore, gjë që mund të çojë në fragmentimin e saj. Për shembull, pas shkëputjes së një numri të madh përdoruesish nga super serveri, mund të ndodhin gabime gjatë lidhjeve të reja.

Fragmentimin e memories e kontrollon parametrin sistemor vm.max_map_count, nga e cila për default është 64K. Rekomandohet të rritet vlera e tij katër herë:

sudo sysctl vm.max_map_count=256000

Për të vendosur vlerën e re gjatë rinisjes së sistemit, shtojmë në skedar /etc/sysctl.conf në rreshtin:

vm.max_map_count = 256000

Preferohet të bëni një koment për ta bërë të qartë arsyen e ndryshimit të këtij parametri. Mund të redaktohet fillimisht skedari dhe pastaj të aplikohen configurimet e ruajtura në të:

sudo sysctl -p /etc/sysctl.conf

Instalimi i paketave të nevojshme

Skedaret ekzekutues të SGBD Firebird 3.0 Linux varen nga bibliotekat ncurses (libncurses.so.5), ICU (pa lidhje me versionin dhe pa u shfaqur në daljen ldd) dhe tommath (libtommath.so.0). Për shkarkimin dhe shpërndarjen e arkivit të ndërtimit do të kërkohen utilitetet gzip, tar dhe curl ose wget. Versionet e ICU, gzip, tar dhe curl/wget nuk janë të rëndësishme.

Puna me paketat varet nga sistemi dhe nga menaxheri i pakove që përdoret në sistem, prandaj do t'i shqyrtojmë ato një për një.

CentOS 8

CentOS 8 pĂ«rdor menaxherin e ri tĂ« paketave – dnf dhe ai gjithashtu "thjesht" thirret me komandĂ«n yum. Duke qenĂ« se nuk ka dallim midis tyre pĂ«r qĂ«llimet tona – nĂ« shembuj do tĂ« jetĂ« yum.

PĂ«rditĂ«sojmĂ« ĐșДшin e metadatas: sudo yum makecache

Paketa libtomath ndodhet në një depo të veçantë E(xtra)P(ackages for)E(nterprise)L(inux), prandaj kontrollojmë nëse ajo është tashmë e lidhur:

yum -C repolist

Opsioni "vetĂ«m nga ĐșДшi" (-C ose --cache-only) pĂ«rdoret pĂ«r tĂ« pĂ«rjashtuar kontrollimet dhe ngarkesat e padĂ«shiruara, duke pĂ«rshpejtuar funksionin e yum. NĂ«se nĂ« listĂ« nuk ka depo epel - e instalojmĂ« dhe pĂ«rditĂ«sojmĂ« cache-n e metadheates:

sudo yum install epel-release &&
sudo yum makecache

Konfirmojmë kërkesat, duke krahasuar vlerat e çelësave pgp me ato që tashmë janë të njohura nga një burim i besueshëm.

Nëse ka probleme gjatë ngarkimit të metainformacionit nga depozitë me burime https, redaktojmë skedarin /etc/yum.repos.d/epel.repo, duke zëvendësuar https:// në http:// dhe përsërisim komandën përditësuese të cache-it.

Kontrollojmë statusin e pakot që na duhen (komanda është e përbërë, në shembujin e daljes është filtruar pako 32-bit):

yum -C list 
ncurses libicu libtommath 
gzip tar curl wget |
grep -v i686
Pakot e instaluara
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
Pakot e Disponueshme
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

Shohim se curl, gzip dhe ncurses janë vendosur në pseudodepozitën e installer-it (anaconda), ndërsa tar - është përjashtuar nga instalimi minimal të sistemit. Versionet kryesore libncurses dhe libtommath janë më të mëdha se sa kërkohen: 6 dhe 1 në vend të 5 dhe 0, përkatësisht. Nëse i njëjti pako është e instaluar dhe e disponueshme - është lëshuar një update për të. Instalojmë pakot e munguar:

sudo yum install 
libicu libtommath tar

Ubuntu 19

PĂ«r menaxhimin e pakove janĂ« tĂ« dedikuara utilitat apt, apt‑get dhe apt‑cache. E para Ă«shtĂ« e dizajnuar pĂ«r punĂ« interaktive, ndĂ«rsa dy tĂ« fundit - pĂ«r pĂ«rdorim nĂ« skripte. Emrat e pakove janĂ« pak ndryshe dhe pĂ«rfshijnĂ« versionin.

Kontrollojmë statusin e pakove që na duhen (komanda është e përbërë, shembujt e daljes janë shkurtuar dhe janë filtruar pakot 32-bit):

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 [i instaluar]
libncurses5 6.1
libncurses6 6.1 [e instaluar, automatik]
libtommath1 1.1.0
tar 1.30 [e instaluar]
wget 1.20.3 [i instaluar]

Pakot, për të cilat në krahët katrorë është e shenuar installed/upgradable janë të instaluara. E disponueshme, por jo e instaluar ncurses5, në vend të curl instaluar wget. Instalojmë pakot e munguar:

sudo apt‑get install 
libncurses5 libtommath1

Krijimi i simlinkeve

Për shkak se libtommath.so.1 dhe libncurses.so.6 janë të pranishme me përputhshmëri të prapme libtommath.so.0 dhe libncurses.so.5, kështu që për Firebird mjafton të krijoni simlinke në versionet ekzistuese të bibliotekave.

Gjejmë libtommath.so.1 (libncurses.so.? janë të vendosura në këtë katalog):

find /usr -name libtommath.so.1

CentOS:

/usr/lib64/libtommath.so.1

Ubuntu:

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

Krijojmë simlinke.

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

Kontrollojmë rezultatin (komanda është e përbërë, shembujt e daljes janë shkurtuar):

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

Dukejme instalimin e DBMS Firebird.

Në faqen zyrtare të projektit Firebird (firebirdsql.org) publikohen linke për shpërndarjet e "versioneve zyrtare" (releases) dhe "ndërtimeve të përditshme" (snapshot build).

Versionet zyrtare pĂ«r Linux janĂ« tĂ« disponueshme nĂ« formĂ«n e arkivave (tar.gz) dhe paketeve deb/rpm, ndĂ«rsa ndĂ«rtimet – vetĂ«m nĂ« formĂ«n e arkivave. Ne do tĂ« shqyrtojmĂ« "instaluesin e pĂ«rgjithshĂ«m" (generic installer nga tar.gz).

Arkivi i ndërtimit duhet të shkarkohet dhe të shkarkohet, por ne do të përshtatim të dyja këto procese. Shkëputja bëhet në /tmp, URL përfaqëson lidhjen në arkivin që po shkarkohet.

curl:

curl -L URL | tar -zxC /tmp

wget:

wget -O– URL | tar -zxC /tmp

NĂ« mĂ«nyrĂ« tĂ« paracaktuar curl dĂ«rgon tĂ« dhĂ«nat e shkarkuara nĂ« dalje standart, por nuk pĂ«rpunon ridrejtimet dhe ne shtojmĂ« "‑L", ndĂ«rsa wget, anasjelltas: pĂ«rpunon ridrejtimet, por shkruan tĂ« dhĂ«nat nĂ« skedarin dhe ne vendosim "‑O‑". PĂ«r tar pĂ«rcaktojmĂ« pĂ«rdorimin gzip-filtrit dhe katalogun nĂ« tĂ« cilin do tĂ« bĂ«het shkarkimi. Pas pĂ«rfundimit tĂ« procesit do tĂ« shfaqet njĂ« katalog i tipit Firebird‑3.0.5.33220‑0.amd64 me tre skedarĂ«: install.sh, buildroot.tar.gz dhe manifest.txt.

Instalimi i Firebird

Gjatë përgatitjeve paraprake kemi rregulluar vlerën e parametrave sistemorë, vm.max_map_count, kontroluam praninë dhe instaluan bibliotekat ICU, ncurses dhe tommath. Siguruam saktësinë e verzioneve të ncurses dhe tommath (libncures.so.5 dhe libtommath.so.0) dhe krijuam lidhjet e nevojshme.

Instalimi vetë bëhet shumë thjesht. Kalojmë në katalogun ku u shkarkua arkivi i shpërndarjes Firebird, kontrollojmë dhe, nëse është e nevojshme, vendosim flamurin "ekzekutues" skemës install.sh:

chmod +x install.sh

në hapim skemën e instalimit:

sudo ./install.sh

duke shtypur tastin Enter konfirmojmĂ« fillimin e instalimit, dhe kur na kĂ«rkohet – shkruajmĂ« fjalĂ«kalimin sysdba.

Skema e instalimit automatikisht aktivizon systemd-njësinë firebird-superserver (arkitektura default e Firebird 3.0). Shërbimi Firebird do të funksionojë me parametrat default për super serverin: cache në faqe me 2048 faqe (për bazën), buffer për renditje 64 MB (të përbashkët) dhe lidhje vetëm për klientët e versionit të tretë. Shikoni parametrat firebird.conf:

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

Duhet të merret parasysh se vlerat e reja nga firebird.conf do të aktivizohen vetëm pas ribashkimit të shërbimit Firebird.

GjatĂ« zgjedhjes sĂ« vlerave tĂ« parametrave, duhet tĂ« merret parasysh se ka tre "konsumatorĂ«" kryesorĂ«: cache-i i faqes (pĂ«r bazĂ«n), bufferi i renditjeve (i pĂ«rgjithshĂ«m) dhe memoria e caktuar nga serveri pĂ«r lidhjet e klientĂ«ve. Mund tĂ« menaxhohen vetĂ«m dy tĂ« parĂ«t – sasia e memories pĂ«r lidhjet e klientĂ«ve varet nga numri dhe teksti i kĂ«rkesave tĂ« cache-zuara, planet e tyre dhe objektet e bazĂ«s sĂ« tĂ« dhĂ«nave tĂ« angazhuara nĂ« kĂ«rkesa. VlerĂ«simi i memories pĂ«r lidhjet e klientĂ«ve bĂ«het vetĂ«m empiricisht dhe mund tĂ« ndryshojĂ« me ndryshimin e aplikacioneve tĂ« klientĂ«ve dhe/ose objekteve tĂ« bazĂ«s.

Për super-serverët në hostet me një sasi të vogël memories (deri në 12-16 GB) nuk duhet të caktohet për cache-in e faqes dhe bufferin e renditjeve më shumë se një e treta deri në një e katërta e totalit të RAM-it.

NĂ«se numri i bazave nuk Ă«shtĂ« i vendosur dhe mund tĂ« ndryshojĂ« – sasia totale e memories pĂ«r cache-in e faqes duhet tĂ« ndahet sipas numrit maksimal tĂ« bazave qĂ« mund tĂ« jenĂ« nĂ« server. MadhĂ«sia e cache-it tĂ« faqes caktohet nĂ« faqe dhe duhet tĂ« rikalkulohet veçmas nĂ« byte.

Për të kaluar në arkitekturën klasike kërkohet të paktën të specifikohet qartë ServerMode në firebird.conf, të zvogëlohet gjithashtu cache-i i faqes (jo më shumë se 2K), të zvogëlohet bufferi i renditjeve (suma e lejuar e të gjitha renditjeve, e ndarë me numrin maksimal të lidhjeve), të ndalohet dhe të ndërpritet njësia firebird-superserver, të lejohet dhe të fillohet njësia firebird-classic.socket.

Përdorimi i arkitekturës superklasik në Firebird 3.0 nuk ka ndonjë kuptim të veçantë: "besueshmëria" është si te super-serveri dhe ka buffer të përgjithshëm të renditjeve. Nuk ka cache të përbashkët të faqes dhe "humjet" për sinkronizimin e lidhjeve të ndryshme janë të njëjta si te klasi.

Duhet mbajtur mend se në Firebird 3.0 disa parametra (cache-i i faqes, madhësitë e skedarëve lokalë, tabelat e heshit dhe disa të tjera) mund të caktohen në databases.conf individualisht për çdo bazë. Për super-serverin është e dobishme, për shembull, të caktohet një vlerë e vogël DefaultDbCachePages në firebird.conf dhe të caktohen cache të veçanta të faqes për bazat e nevojshme në databases.conf.

Për pyetje rreth artikullit, mund të lajmëroheni në komentet, ose të shkruani në adresën tonë të mbështetjes support@ibase.ru.

Burimi: habr.com

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster