Në këtë artikull ne do të përshkruajmë grupin minimal të veprimeve të nevojshme për instalimin optimal të DBMS 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 synuar, në këtë udhëzim, është zgjedhur opsioni i shkarkimit të arkivit tar.gz përmes lidhjes nga faqja zyrtare e projektit ().
PĂ«r ata qĂ« nuk presin â menjĂ«herĂ« nĂ« sulm:
Instalim i shpejtë
Redaktojmë 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 LIDHJA dhe KATALOGU përfaqësojnë lidhjen nga faqja zyrtare e projektit Firebird për shkarkimin e distribucionit dhe katalogun në të cilin do të shkripet distribuicioni gjatë procesit të shkarkimit.
Momenti aktual (mars 2020) është lançimi Firebird 3.0.5 ( 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 LIDHJA|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- LIDHJA|tar -zxC /tmp
Përdorimi i DBMS Firebird:
cd /tmp/KATALOGU
sudo ./install.sh
NĂ«se dĂ«shironi tĂ« kuptoni mĂ« mirĂ« se çfarĂ« shĂ«rbejnĂ« kĂ«to veprime â lexoni mĂ« tej.
Pjesa kryesore
Një parathënie e vogël
Supozon se tashmë është instaluar OS në version minimal dhe është konfiguruar aksesin në repozitat publike ose në kopjet e tyre lokale.
Supozon se lexuesi ka njohuri bazike për Linux dhe DBMS Firebird.
Planifikimi
Në serverin e DBMS rekomandohet të ndajmë pjesë 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Ă«rkohesorĂ« pĂ«rfshijnĂ« skedarĂ«t lock, skedarĂ«t e rendit, skedarĂ«t e "materializimit" tĂ« tabelave globale pĂ«rkohĂ«sore (GTT) dhe tabelat e monitorimit. SkedarĂ«t e rendit dhe tabelat globale pĂ«rkohĂ«sore janĂ« tĂ« vendosur nĂ« /tmp, skedarĂ«t e tabelave mon$ dhe skedarĂ«t lock â nĂ« /tmp/firebird.
SkedarĂ«t e rendit "fshihen" (unlink) menjĂ«herĂ« pas krijimit, prandaj nuk mund tĂ« "shihen" nĂ« listĂ«n e katalogut â vetĂ«m nĂ« listĂ«n e pĂ«rshkruesve (handles) tĂ« procesit (tĂ« shĂ«nuara si deleted):
sudo ls -lhF /proc/`pgrep firebird`/fd
NĂ« listĂ«n e pseudo-katalogut /proc/âŠ/fd/ shfaqen lidhjet simbolike, ndĂ«rsa informacionin faktik pĂ«r skedarin e jep:
sudo stat -L /proc/`pgrep firebird`/fd/NUMRI
ku NUMRI â pĂ«rshkruesi i skedarit qĂ« na intereson.
Në vend të thirrjes "pgrep skedari-ekzekutiv" mund të vendosim menjëherë identifikuesin e procesit që na intereson.
Skedha të përkohshme mund të jenë shumë të mëdha, prandaj është /tmp e rekomanduar të jepni të paktën 20-30 GB. Duhet të merret parasysh se madhësia e skedhave të renditjes varet vetëm nga volumi i të dhënave, qartë ose në mënyrë implicite të renditura në kërkesë dhe një përdorues i vetëm mund të "krijojë" gigabajt skedha të përkohshme.
Departamenti për skedhat e bazës së të dhënave duhet të mbajë skedha të të gjitha bazave. Përveç kësaj, duhet të ketë të paktën një kopje të skedhës së bazës më të madhe. Duhet të merret parasysh rritja e skedhave të bazës në perspektivë për disa vite përpara.
Departamenti pĂ«r kopje tĂ« lokalizuara duhet tĂ« mbajĂ«, si tĂ« paktĂ«n, nga njĂ« arkiv tĂ« kopjeve tĂ« tĂ« gjitha bazave plus kopjen e bazĂ«s mĂ« tĂ« madhe. ĂshtĂ« e dĂ«shirueshme qĂ« nĂ« kĂ«tĂ« departament tĂ« ketĂ« gjithashtu vend pĂ«r rikthim tĂ« bazĂ«s mĂ« tĂ« madhe. Duhet tĂ« merret parasysh rritja e kopjeve dhe arkivave tĂ« kopjeve nĂ« perspektivĂ« pĂ«r disa vite pĂ«rpara.
Përgatitja paraprake
Serveri i DBMS Firebird 3.0 ndan dhe çliron dinamikisht kujtesën sistemore, gjë që mund të sjellë në fragmentimin e saj. Për shembull, pas një shkyçjeje të madhe të numrit të përdoruesve nga superserveri, mund të ndodhin gabime në lidhjet e reja.
Fragmentimin e kujtesës e kontrollon parametri sistemor vm.max_map_count, nga e cila, sipas parazgjedhjes, është 64K. Rekomandohet të rritet vlera e tij katërfish:
sudo sysctl vm.max_map_count=256000
Për të siguruar që vlera e re të vendoset gjatë rinisjes së sistemit, shtojmë në dosjen /etc/sysctl.conf një linjë:
vm.max_map_count = 256000
ĂshtĂ« e dĂ«shirueshme tĂ« bĂ«het njĂ« koment, pĂ«r tĂ« qenĂ« e qartĂ« arsyen e ndryshimit tĂ« kĂ«tij parametri. Mund tĂ« ndiheni tĂ« redaktoni dosjen sĂ« pari dhe pastaj tĂ« aplikoni konfigurimet e ruajtura nĂ« tĂ«:
sudo sysctl -p /etc/sysctl.conf
Instalimi i paketave të nevojshme
Skedhat ekzekutivë të DBMS Firebird 3.0 Linux varen nga bibliotekat ncurses (libncurses.so.5), ICU (pa lidhje me versionin dhe pa u shfaqur në outputin ldd) dhe tommath (libtommath.so.0). Për shkarkimin dhe shpërndarjen e arkivit të ndërtimit do të nevojiten utilitetet gzip, tar dhe curl ose wget. Versionet e ICU, gzip, tar dhe curl/wget nuk janë thelbësore.
Puna me paketat varet nga sistemi dhe menaxherët e paketave të përdorur në sistem, prandaj do t'i shqyrtojmë ato një nga një.
CentOS 8
CentOS 8 përdor një menaxher të ri paketesh - dnf dhe ai gjithashtu "thirret pa probleme" me komandën yum. Duke qenë se për qëllimet tona nuk ka diferencë mes tyre - në shembuj do të përdoret yum.
Rinovoni cache-në e metadata: sudo yum makecache
Paketa libtomath ndodhet në një repository të veçantë E(xtra)P(ackages for)E(nterprise)L(inux), prandaj kontrolloni se është tashmë e lidhur:
yum -C repolist
Opsioni "vetëm nga cache" (-C ose --cache-only) përdoret për të përjashtuar verifikimet dhe ngarkesat e panevojshme, duke përshpejtuar funksionimin e yum. Nëse lista nuk përmban repositorin epel, atëherë e instalojmë dhe përditësojmë cache-në e metadatos:
sudo yum install epel-release &&
sudo yum makecache
Konfirmojmë kërkesat, duke krahasuar nëse është e nevojshme vlerat e çelësave pgp me ato të njohura nga një burim të besueshëm.
Nëse ka probleme gjatë ngarkimit të metainformacionit nga repositorët https, atëherë redaktojmë skedarin /etc/yum.repos.d/epel.repo, duke e zëvendësuar https:// në http:// dhe përsërisim komandën përditësuese të cache-it.
Kontrollojmë statusin e pakove të nevojshme (komanda është kombinuar, në shembullin e daljes është filtruar pako 32-bitëshe):
yum -C list
ncurses libicu libtommath
gzip tar curl wget |
grep -v i686
Paketat 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
Paketat në dispozicion
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 qĂ« curl, gzip dhe ncurses tĂ« vendosura nĂ« pseudo-repositorin e instaluesit (anacondaâ emri i funksionit ( tar â Ă«shtĂ« pĂ«rjashtuar nga instalimi minimal tĂ« sistemit. Versionet kryesore libncurses dhe libtommath janĂ« mĂ« shumĂ« se sa kĂ«rkohet: 6 dhe 1 nĂ« vend tĂ« 5 dhe 0, pĂ«rkatĂ«sisht. NĂ«se njĂ« pako Ă«shtĂ« si e instaluar ashtu edhe nĂ« dispozicion â pĂ«r tĂ« Ă«shtĂ« lĂ«shuar njĂ« pĂ«rditĂ«sim. InstalojmĂ« pakot e munguar:
sudo yum install
libicu libtommath tar
Ubuntu 19
PĂ«r menaxhimin e pakove janĂ« tĂ« destinuara utilitarĂ«t apt, apt-get dhe apt-cache. E para Ă«shtĂ« e destinuar pĂ«r punĂ« interaktive, ndĂ«rsa dy tĂ« tjerat â pĂ«r t'u pĂ«rdorur nĂ« skripta. Emrat e pakove janĂ« pak ndryshe dhe pĂ«rfshijnĂ« versionin.
Kontrollojmë statusin e pakove të nevojshme (komanda është kombinuar, shembulli i daljes është i reduktuar dhe janë filtruar pakot 32-bitëshe):
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]
Pakot, pĂ«r tĂ« cilat nĂ« katrorĂ«t e hapur tregohet instaluar/upgradable â janĂ« tĂ« instaluara. NĂ« dispozicion, por jo tĂ« instaluara ncurses5, nĂ« vend tĂ« curl Ă«shtĂ« instaluar wget. InstalojmĂ« pakot e munguar:
sudo apt-get install
libncurses5 libtommath1
Krijimi i simlinkëve
Duke qenë se libtommath.so.1 dhe libncurses.so.6 janë të përputhshme me libtommath.so.0 dhe libncurses.so.5, për Firebird është e mjaftueshme të krijoni simlinkë në versionet ekzistuese të bibliotekave.
Gjejmë libtommath.so.1 (libncurses.so.? janë të vendosura në këtë të njëjtën dosje):
find /usr -name libtommath.so.1
CentOS:
/usr/lib64/libtommath.so.1
Ubuntu:
/usr/lib/x86_64-linux-gnu/libtommath.so.1
Krijojmë simlinkët.
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ë kombinuar, shembujt e daljes janë të reduktuar):
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
Ngarkimi i shpërndarjes së DBMS Firebird.
Në faqen zyrtare të projektit Firebird (firebirdsql.org) publikohen lidhjet për shpërndarjet e "mbledhjeve zyrtare" (releases) dhe "mbledhjeve ditore" (snapshot build).
ShpĂ«rndarjet zyrtare pĂ«r Linux janĂ« tĂ« disponueshme nĂ« formĂ«n e arkivave (tar.gz) dhe pakove deb/rpm, ndĂ«rsa mbledhjet â vetĂ«m nĂ« formĂ«n e arkivave. Ne do tĂ« shqyrtojmĂ« "instaluesin e pĂ«rgjithshĂ«m" (generic installer nga tar.gz).
Arkivi i mbledhjes duhet të ngarkohet dhe të shkarkohet, por ne do ta bëjmë të dyja këto procese. Shkarkimi bëhet në /tmp, URL tregon lidhjen për arkivin e shkarkuar.
curl:
curl -L URL | tar -zxC /tmp
wget:
wget -Oâ URL | tar -zxC /tmp
MĂ« nĂ« default curl dĂ«rgon tĂ« dhĂ«nat e ngarkuara nĂ« daljen standarde, por nuk trajton rikthimet dhe shtojmĂ« "âL", ndĂ«rsa wget, pĂ«rkundrazi: trajton rikthimet, por shkruan tĂ« dhĂ«nat nĂ« njĂ« skedĂ« dhe vendosim "âOâ". PĂ«r tar specifikojmĂ« pĂ«rdorimin e gzip-filtrit dhe katalogun ku do tĂ« bĂ«het shkarkimi. Pas pĂ«rfundimit tĂ« procesit do tĂ« shfaqet njĂ« katalog i tillĂ« Firebirdâ3.0.5.33220â0.amd64 me tre skedarĂ«: install.sh, buildroot.tar.gz dhe manifest.txt.
Instalimi i Firebird
Gjatë përgatitjes paraprake kemi rregulluar vlerën e parametrave sistemorë vm.max_map_count, kontrollem se kemi dhe instalojmë bibliotekat ICU, ncurses dhe tommath. Sigurohemi për saktësinë e versioneve të ncurses dhe tommath (libncurses.so.5 dhe libtommath.so.0) dhe krijojmë lidhjet e nevojshme.
Vërtet instalimi bëhet shumë thjesht. Kalojmë në katalogun ku është shkarkuar arkivi i shpërndarjes Firebird, kontrollojmë dhe, në rast nevoje, vendosim flagun "ekzekutues" skenarit install.sh:
chmod +x install.sh
në ekzekutimin e skenarit të instalimit:
sudo ./install.sh
duke shtypur çelĂ«sin Enter, konfirmojmĂ« fillimin e instalimit, dhe, pas marrjes sĂ« kĂ«rkesĂ«s â futim fjalĂ«kalimin e sysdba.
Skripti i instalimit aktivizon automatikisht systemd-njësinë firebird-superserver (arkitektura e paracaktuar e Firebird 3.0). Shërbimi Firebird do të funksionojë me parametrat default për superserverin: kesh faqesh prej 2048 faqesh (për bazën), buffer të renditjes prej 64 MB (të përgjithshme) dhe lidhje vetëm me klientë të versionit tre. Rishikoni parametrat firebird.conf:
grep -v ^# firebird.conf | grep -v ^$
Duhet marrë parasysh se vlerat e reja nga firebird.conf do të aktivizohen vetëm pas rinisjes së shërbimit Firebird.
Kur zgjedhim vlerat e parametrave, duhet tĂ« kemi parasysh se ekzistojnĂ« tre "konsumatorĂ«" kryesorĂ«: keĆĄa e faqes (pĂ«r bazĂ«n), buferi i renditjeve (tĂ« pĂ«rgjithshme) dhe_memoria e caktuar nga serveri pĂ«r lidhjet klient. Mund tĂ« menaxhojmĂ« vetĂ«m dy tĂ« parĂ«t â sasia e memories pĂ«r lidhjet klient Ă«shtĂ« nĂ« varĂ«si tĂ« numrit dhe tekstit tĂ« pyetjeve tĂ« mbajtura nĂ« keĆĄ, planeve tĂ« tyre dhe objekteve tĂ« angazhuara nĂ« pyetje. VlerĂ«simi i memories pĂ«r lidhjet klient bĂ«het vetĂ«m empirikisht dhe mund tĂ« ndryshojĂ« me ndryshimin e aplikacioneve klient dhe/ose objekteve tĂ« bazĂ«s.
Për superserverat në hostet me memori të ulët (deri në 12-16 GB) nuk duhet të ndajmë më shumë se një të tretën deri në një të katërtën e përgjithshme të RAM-it për keƥën e faqes dhe buferin e renditjeve.
NĂ«se numri i bazave nuk Ă«shtĂ« fiks dhe mund tĂ« ndryshojĂ« â sasia e pĂ«rgjithshme e memories pĂ«r keĆĄĂ«n e faqes duhet tĂ« ndahet me numrin maksimal tĂ« bazave qĂ« mund tĂ« jenĂ« nĂ« server. MadhĂ«sia e keĆĄĂ«s sĂ« faqes pĂ«rcaktohet nĂ« faqe dhe duhet tĂ« ridimensionohet veçmas nĂ« bite.
Për të kaluar në arkitekturën klasike, është e nevojshme të specifikohet qartë ServerMode në firebird.conf, të ulet atje keƥa e faqes (jo më shumë se 2K), të ulet buferi i renditjeve (sasia maksimale e të gjitha renditjeve e ndarë me numrin maksimal të lidhjeve), të ndalohet dhe të ndalojë njësinë firebird-superserver, të lejohet dhe të iniciohet njësia firebird-classic.socket.
Përdorimi i arkitekturës superklasike në Firebird 3.0 nuk ka kuptim të veçantë: "besueshmëria" është si te superserveri dhe një bufer i zakonshëm renditjesh. Nuk ka ndarje të përbashkët të keƥës dhe "humjet" në sinkronizimin e lidhjeve të ndryshme janë si te klasicizmi.
Duhet të mbahet mend se në Firebird 3.0 disa parametra (keƥa e 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 superserverin, është e dobishme, për shembull, të caktohet një vlerë e vogël për DefaultDbCachePages në firebird.conf dhe të vendosen keƥat individuale të faqeve për bazat e nevojshme në databases.conf.
Për pyetje rreth artikullit, ju lutemi komentoni apo dërgoni email në adresën tonë të mbështetjes support@ibase.ru.
Burimi: habr.com
