Ukufaka i-Firebird 3 kwiiNguqulelo zeLinux zangoku: CentOS8 kunye no-Ubuntu 19

Kweli nqaku siza kuchaza ubuncinci iseti yezenzo ezifunekayo ukuze ufakelo lweFirebird DBMS uguqulelo 3.0 kunikezelo olutsha lweLinux. I-CentOS 8 kunye ne-Ubuntu 19 zikhethwa njengemizekelo.

"Ukuhambisa" ukuhanjiswa kwe-Firebird kwinkqubo ekujoliswe kuyo, kwesi sikhokelo, ukhetho lokukhuphela ugcino lwe-tar.gz lukhethiwe kusetyenziswa ikhonkco kwiwebhusayithi yeprojekthi esemthethweni (firebirdsql.org).

Kwabona bangenamonde, yiya ngqo edabini:

Ukufakwa ngokukhawuleza

Ukuhlela ifayile /etc/sysctl.confngokudibanisa umgca:

vm.max_map_count = 256000

Gcina ifayile kwaye usebenzise useto:

sudo sysctl -p /etc/sysctl.conf

Eminye imiyalelo yahlukile kwi-CentOS 8 kunye ne-Ubuntu 19, kodwa ССЫЛКА и КАТАЛОГ bonisa ikhonkco elisuka kwiwebhusayithi esemthethweni yeprojekthi yeFirebird ukuze kukhutshelwe unikezelo kunye nolawulo apho unikezelo luyakucalulwa ngexesha lenkqubo yokukhuphela.
Okwangoku (ngoMatshi 2020) ukukhutshwa kwangoku yiFirebird 3.0.5 (nali ikhonkco ukuya kwi-64-bit version).

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 ССЫЛКА|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

Ufakelo lwangempela lwe-Firebird DBMS:

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

Ukuba ufuna ukuqonda ngcono ukuba ezi zenzo zenza ntoni, qhubeka ufunda.

Inxalenye ephambili

Intshayelelo emfutshane

Kucingelwa ukuba i-OS sele ifakiwe kuguqulelo oluncinci kwaye ufikelelo kwiindawo zokugcina zikawonke-wonke okanye iikopi zazo zasekhaya ziqwalaselwe.

Kucingelwa ukuba umfundi unolwazi olusisiseko lweLinux kunye neFirebird DBMS.

Ukucwangcisa

Kumncedisi weDBMS kuyacetyiswa ukuba unike amacandelo ahlukeneyo kwiifayile zexeshana (/tmp), iifayile zedatha kunye neendawo zokugcina.

Ezexeshana ziquka iifayile zokutshixa, iifayile zokuhlela, iifayile "zezinto" zeetafile zexeshana zehlabathi (GTT) kunye neetafile zokubeka iliso. Iifayile zokhetho kunye neetafile zexeshana zehlabathi zikwindawo /tmp, mon$-iifayile zetafile kunye neefayile zokutshixa - ngaphakathi /tmp/firebird.

Iifayile zokuhlela "zicinyiwe" (unlink) ngoko nangoko emva kokudalwa, ngoko abanaku "bonwa" kuluhlu lolawulo - kuphela kuluhlu lweenkqubo zokuphatha (eziphawulwe njenge deleted):

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

Kuluhlu lukavimba weefayili /proc/…/fd/ ii-symlinks ziyaboniswa, kwaye ulwazi lokwenyani malunga nefayile lunikwa ngu:

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

apho НОМЕР - inkcazo (inkcazo) yefayile yomdla.

Endaweni yokufowuna"pgrep исполняемый-файл"Ungatshintsha kwangoko indawo yokuchonga inkqubo yomdla.

Iifayile zexeshana zinokuba zikhulu kakhulu, ngoko /tmp Kucetyiswa ukuba unike ubuncinane i-20-30 GB. Kufuneka kuthathelwe ingqalelo ukuba ubungakanani beefayile zokuhlenga zixhomekeke kuphela kwinani ledatha ngokucacileyo okanye ihlelwe ngokuchanekileyo kwisicelo, kwaye umsebenzisi oyedwa "unokwenza" iigigabytes zeefayile zexeshana.

Icandelo leefayili zedatha kufuneka lifake zonke iifayile zedatha. kunye, ubuncinane, ikopi yefayile yedatabase enkulu. Kuyimfuneko ukuqwalasela ukukhula kweefayile zedatha kwixesha elizayo kwiminyaka emininzi ezayo.

Icandelo logcino lwendawo kufuneka liqulathe ubuncinane uvimba omnye ogciniweyo wabo bonke oovimba bedatha kunye nokugcinwa kwenkxaso yedatabase enkulu. Kunqweneleka ukuba eli candelo likwaqulethe indawo yokubuyisela isiseko sedatha esikhulu. Ukukhula kwee-backups kunye nokugcinwa kwe-backups kwixesha elizayo iminyaka emininzi kufuneka kuthathelwe ingqalelo.

Ukulungiselela kwangaphambili

I-Firebird 3.0 iseva ye-DBMS inika amandla kwaye ikhulule imemori yenkqubo, enokukhokelela ekuqhekekeni kwayo. Ngokomzekelo, emva kokuba inani elikhulu labasebenzisi linqanyuliwe kwi-superserver kanye, iimpazamo zinokuthi zenzeke xa kufakwa uxhulumaniso olutsha.

Ukuqhekeka kwememori kulawulwa yipharamitha yenkqubo vm.max_map_count, okungagqibekanga yi 64K. Kucetyiswa ukuba unyuse ixabiso layo ngamaxesha amane:

sudo sysctl vm.max_map_count=256000

Ukuze ixabiso elitsha limiselwe xa inkqubo iqalisa kwakhona, yongeza kwifayile /etc/sysctl.conf umgca:

vm.max_map_count = 256000

Kucetyiswa ukuba wenze inkcazo ukuze isizathu sokutshintsha le parameter sicace. Ungaqala ngokuhlela ifayile uze usebenzise useto olugcinwe kuyo:

sudo sysctl -p /etc/sysctl.conf

Ukufakela iipakethe ezifunekayo

Iifayile eziphunyeziweyo ze Firebird 3.0 Linux DBMS zixhomekeke kwiilayibrari ze-ncurses (libncurses.so.5), ICU (engabotshelelwanga kuguqulelo kwaye ayiboniswa kwimveliso ldd) kunye ne-tommath (libtommath.so.0). Ukukhuphela kunye nokukhupha i-archive yendibano, uya kufuna izinto eziluncedo gzip, tar и curl okanye wget. Iinguqulelo ze-ICU, gzip, tar и curl/wget – azibalulekanga.

Ukusebenza kunye neepakethe kuxhomekeke kwisistim kunye nomphathi wepakethe esetyenziswe kwinkqubo, ngoko siya kuziqwalasela nganye nganye.

CentOS 8

I-CentOS 8 isebenzisa umphathi wephakheji entsha- dnf kwaye ibizwa ngokuba “ngokungafihliyo” ngomyalelo yum. Ekubeni ngeenjongo zethu akukho mahluko phakathi kwabo - kwimizekelo kuya kubakho yum.

Hlaziya i-cache yemetadata: sudo yum makecache

Ipakethe ye-libtomath ibekwe kwindawo eyahlukileyo ye-E(xtra)P(i-ackeges ye)E(inkampani)L(inux) yokugcina, ngoko ke siyayijonga ukuba sele ibandakanyiwe:

yum -C repolist

Inketho "kuphela kwi-cache" (-C okanye --cache-only) isetyenziselwa ukuphelisa ukutshekishwa okungeyomfuneko kunye nokukhutshelwa, ukwenza i-yum ngokukhawuleza. Ukuba akukho ndawo yokugcina i-epel kuluhlu, yifake kwaye uhlaziye i-cache yemethadatha:

sudo yum install epel-release &&
sudo yum makecache

Siqinisekisa izicelo, ukuba kuyimfuneko, sijonga amaxabiso ezitshixo ze-pgp kunye nezo sele zaziwa kumthombo othembekileyo.

Ukuba kukho iingxaki zokulayisha i-repository metainformation evela kwimithombo ye-https, emva koko uhlele ifayile /etc/yum.repos.d/epel.repo, endaweni https:// phezu http:// kwaye phinda umyalelo wohlaziyo lwe-cache.

Sijonga ubume bepakethe ezifunekayo (umyalelo untsokothile, kumzekelo wemveliso i-32-bit ipakethe iyahluzwa):

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

Siyayibona loo nto curl, gzip и ncurses ibanjwe kwindawo yokugcina ubuxoki (anaconda), kunye tar – ekhutshiweyo kubuncinci bofakelo lwesixokelelwano. Iinguqulelo ezinkulu libncurses и libtommath ngaphezu kokufunekayo: 6 kunye no-1 endaweni yesi-5 kunye no-0, ngokulandelelanayo. Ukuba ipakethe efanayo ifakiwe kwaye iyafumaneka, uhlaziyo lukhutshiwe. Faka iipakethe ezingekhoyo:

sudo yum install 
libicu libtommath tar

Ubuntu 19

Izinto eziluncedo ziyilelwe ukulawula iipakethe apt, apt‑get и apt‑cache. Eyokuqala yenzelwe umsebenzi osebenzisanayo, kwaye ezimbini zokugqibela zenzelwe ukusetyenziswa kwizikripthi. Amagama ephakheji ahluke kancinane kwaye aquka uguqulelo.

Sijonga ubume beepakethe ezifunekayo (umyalelo udityanisiwe, umzekelo wemveliso ufinyeziwe, kwaye iipakethe ze-32-bit zihluzwa ngaphandle):

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]

Iipakethi apho izibiyeli ezisikwere zibonisa installed/upgradable – ifakiwe. Iyafumaneka kodwa ayifakwanga ncurses5, ngaphandle kwe curl ifakiwe wget. Faka iipakethe ezingekhoyo:

sudo apt‑get install 
libncurses5 libtommath1

Ukudala ii-symlinks

Ekubeni libtommath.so.1 и libncurses.so.6 ngasemva iyahambelana libtommath.so.0 и libncurses.so.5, ngoko kwi-Firebird kwanele ukwenza ii-symlink kwiinguqulelo ezikhoyo zamathala eencwadi.

Sifumene libtommath.so.1 (libncurses.so.? ibekwe kuluhlu olufanayo):

find /usr -name libtommath.so.1

CentOS:

/usr/lib64/libtommath.so.1

ubuntu:

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

Senza ii-symlinks.

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

Makhe sijonge umphumo (umyalelo unzima, imizekelo yemveliso ifinyeziwe):

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

Ukukhuphela ikhithi yokuhambisa i-Firebird DBMS.

Iwebhusayithi esemthethweni yeprojekthi ye-Firebird (firebirdsql.org) ipapasha izixhumanisi zokusasazwa kokukhutshwa "okusemthethweni" kunye nokwakhiwa "kwemihla ngemihla" (i-snapshot builds).

Ukukhutshwa kweLinux ngokusemthethweni kuyafumaneka njengoovimba (tar.gz) kunye neepakethe zedeb/rpm, kodwa ukwakhiwa kufumaneka kuphela njengoovimba. Siza kuthathela ingqalelo "isifakeli segeneric" (generic installer from tar.gz).

Uvimba wokwakha kufuneka ukhutshelwe kwaye ungapakishwa, kodwa siya kudibanisa zombini iinkqubo. Ukukhutshwa kuyenziwa ngaphakathi /tmp,URL ibonisa ikhonkco kwindawo ekhutshelweyo ekhutshelweyo.

curl:

curl -L URL | tar -zxC /tmp

wget:

wget -O– URL | tar -zxC /tmp

Ukungagqibeki curl ithumela idatha ekhutshelweyo kwistdout kodwa ayilubambi ukhombandlela kwaye songeza "‑L", a wget, ngokuchaseneyo: iphatha ulwalathiso, kodwa ibhala idatha kwifayile kwaye sibeka "‑O‑" Kuba tar bonisa ukusetyenziswa gzip-Icebo lokucoca kunye nolawulo apho ukukhutshwa kuya kwenziwa khona. Xa inkqubo igqityiwe, uluhlu olunje luza kuvela Firebird‑3.0.5.33220‑0.amd64 ngeefayile ezintathu: install.sh, buildroot.tar.gz и manifest.txt.

Ukufakela iFirebird

Ngethuba lokulungiselela kwangaphambili, silungelelanise ixabiso lepharamitha yenkqubo vm.max_map_count, kukhangelwe ukufumaneka kwaza kwafakelwa i-ICU, i-ncurses kunye namathala eencwadi e-tommath. Qinisekisa ukuba iinguqulelo ze-ncurses kunye ne-tommath zichanekile (libncures.so.5 и libtommath.so.0) kwaye wenze ii-symlinks eziyimfuneko.

Ufakelo lwangempela lulula kakhulu. Yiya kulawulo apho ugcino lonikezelo lweFirebird lungapakishwanga, khangela kwaye, ukuba kuyimfuneko, seta iflegi "ephunyeziweyo" yescript. install.sh:

chmod +x install.sh

sebenzisa iscript sokuhlohla:

sudo ./install.sh

Ngokucofa iqhosha elithi Faka siqinisekisa ukuqala kofakelo, kwaye emva kokufumana isicelo, faka igama lokugqitha le-sysdba.

Iscript sokufakela siqala ngokuzenzekelayo systemd-Iyunithi firebird-superserver (i-Firebird ethuleyo 3.0 uyilo). Inkonzo ye-Firebird iya kusebenza kunye neeparameters ezingagqibekanga ze-superserver: i-cache yephepha lamaphepha angama-2048 (ngesiseko sedatha), i-buffer yokuhlela ye-64 MB (ekwabelwana ngayo) kunye nokudibanisa kuphela inguqulo yesi-XNUMX yabaxhasi. Jonga iinketho firebird.conf:

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

Nceda uqaphele ukuba amaxabiso amatsha avela firebird.conf izakwenziwa isebenze kuphela emva kokuphinda iqalise inkonzo yeFirebird.

Xa ukhetha amaxabiso eparameter, kufuneka kuthathelwe ingqalelo ukuba kukho "abathengi" abathathu abaphambili: i-cache yephepha (yesiseko sedatha), i-buffer yokuhlela (ekwabelwana ngayo) kunye nememori eyabelwe umncedisi kuqhagamshelwano lwabaxhasi. Unokulawula kuphela ezimbini zokuqala - ubungakanani bememori yokudibanisa umxhasi kuxhomekeke kwinani kunye nesicatshulwa semibuzo efihliweyo, izicwangciso zabo kunye nezinto zesiseko sedatha ezibandakanyekayo kwimibuzo. Uqikelelo lwenkumbulo yoqhagamshelo lwabaxumi lwenziwa ngamandla kuphela kwaye lunokutshintsha njengoko izicelo zabaxhasi kunye/okanye izinto zesiseko sedatha zitshintsha.

Kwi-superserver kwiinginginya ezinenani elincinci lememori (ukuya kuthi ga kwi-12-16 GB), akufanele unikeze ngaphezu kwesithathu okanye ikota yesixa esipheleleyo se-RAM yekhasi le-cache kunye nokuhlelwa kwe-buffer.

Ukuba inani leedatha alilungiswanga kwaye lingatshintsha, inani elipheleleyo lememori ye-cache yekhasi kufuneka lihlulwe ngenani eliphezulu leenkcukacha ezinokuthi zibe kumncedisi. Ubungakanani becache yephepha buchaziwe kumaphepha kwaye kufuneka iguqulwe ngokwahlukeneyo ibe ngamabhayithi.

Ukutshintshela kwi-architecture yeklasikhi, kufuneka, ubuncinci, ucacise ngokucacileyo ServerMode в firebird.conf, nciphisa indawo efihlakeleyo yephepha apho (akukho ngaphezu kwe 2K), nciphisa uhlobo lwesixhobo (umthamo ovumelekileyo uwonke wazo zonke iintlobo ezahlulwe ngenani eliphezulu lodibaniso), khubaza kwaye umise iyunithi. firebird-superserver, yenza kwaye uqalise iyunithi firebird-classic.socket.

Ukusebenzisa i-architecture ye-superclassic kwi-Firebird 3.0 ayinangqondo ingako: "ukuthembeka" kufana ne-superserver kunye ne-buffer efanayo yokuhlela ngokubanzi. Akukho cache yephepha eliqhelekileyo kwaye "ilahleko" yokuvumelanisa unxibelelwano olwahlukeneyo kunye nomnye iyafana neyokudala.

Kufuneka kukhunjulwe ukuba kwi-Firebird 3.0 ezinye iiparameters (i-cache yephepha, ubungakanani beefayile ezitshixayo, iitafile zehashi kunye nezinye) zinokusetwa ngaphakathi. databases.conf ngabanye kwisiseko sedatha nganye. Kwi-superserver iluncedo, umzekelo, ukuseta ixabiso elincinci DefaultDbCachePages в firebird.conf kwaye ufake i-cache yephepha ngalinye logcino-lwazi olufunekayo kwi databases.conf.

Buza imibuzo malunga nenqaku kumazwana, okanye ubhale iileta kwidilesi yethu yenkxaso [imeyile ikhuselwe].

umthombo: www.habr.com

Yongeza izimvo