Ho kenya Firebird 3 ho Liphetolelo tsa Kajeno tsa Linux: CentOS8 le Ubuntu 19

Sehloohong sena re tla hlalosa bonyane ba liketso tse hlokahalang bakeng sa ho kenya mofuta o nepahetseng oa Firebird DBMS version 3.0 ho li-distributions tse ncha tsa Linux. CentOS 8 le Ubuntu 19 li khethiloe bakeng sa mehlala.

Ho "fana ka" phepelo ea Firebird ho sistimi e shebiloeng, tataisong ena, khetho ea ho khoasolla polokelo ea tar.gz e khethoa ho sebelisoa sehokelo se tsoang webosaeteng ea projeke ea semmuso (firebirdsql.org).

Bakeng sa ba se nang mamello haholo, leba ntoeng ka ho toba:

Ho kenya ka potlako

Ho hlophisa faele /etc/sysctl.confka ho eketsa mohala:

vm.max_map_count = 256000

Boloka faele 'me u sebelise litlhophiso:

sudo sysctl -p /etc/sysctl.conf

Litaelo tse ling li fapane bakeng sa CentOS 8 le Ubuntu 19, empa ССЫЛКА и КАТАЛОГ bonts'a sehokelo ho tsoa webosaeteng ea semmuso ea morero oa Firebird bakeng sa ho khoasolla kabo le bukana eo kabo e tla phutholloa ho eona nakong ea ts'ebetso ea ho jarolla.
Hajoale (March 2020) tokollo ea hajoale ke Firebird 3.0.5 (sehokelo ke sena ho mofuta oa 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 ССЫЛКА|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

Ho kenngoa ha sebele ha Firebird DBMS:

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

Haeba u batla ho utloisisa hamolemo seo liketso tsena li se etsang, bala ho ea pele.

Karolo e kholo

Ketapele e kgutshwane

Ho nahanoa hore OS e se e kentsoe ka mofuta o fokolang mme phihlello ea polokelo ea sechaba kapa likopi tsa bona tsa lehae li lokisitsoe.

Ho nahanoa hore 'mali o na le tsebo ea mantlha ea Linux le Firebird DBMS.

Moralo

Ho seva sa DBMS ho khothalletsoa ho fana ka likarolo tse arohaneng bakeng sa lifaele tsa nakoana (/tmp), lifaele tsa database le li-backups tsa lehae.

Tsa nakoana li kenyelletsa lifaele tsa linotlolo, ho hlopha lifaele, lifaele tsa "materialization" tsa litafole tsa lefatše tsa nakoana (GTT) le litafole tsa tlhahlobo. Lifaele tsa ho hlopha le litafole tsa nakoana tsa lefats'e li teng /tmp, lifaele tsa mon$-tafole le lifaele tsa senotlolo - ho /tmp/firebird.

Lifaele tsa ho hlopha li "hlakotsoe" (unlink) hang ka mor'a ho bōptjoa, kahoo li ke ke tsa "bonoa" lethathamong la li-directory - feela lethathamong la mekhoa ea ts'ebetso (e tšoailoeng e le deleted):

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

Lethathamong la pseudo directory /proc/…/fd/ li-symlink li hlahisoa, 'me lintlha tsa' nete mabapi le faele li fanoa ke:

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

moo НОМЕР - tlhaloso (e hlalosang) ea faele ea thahasello.

Ho e-na le ho letsetsa "pgrep исполняемый-файл"O ka fetola hang-hang lebitso la ts'ebetso ea thahasello.

Lifaele tsa nakoana li ka ba kholo haholo, kahoo /tmp Ho kgothaletswa ho abela bonyane 20-30 GB. Ho lokela ho nahanoa hore boholo ba ho hlophisa lifaele bo itšetlehile feela ka palo ea data e hlophisitsoeng ka ho hlaka kapa ka mokhoa o sa hlakang ka kopo, 'me mosebedisi a le mong a ka "etsa" li-gigabytes tsa lifaele tsa nakoana.

Karolo ea lifaele tsa database e tlameha ho amohela lifaele tsohle tsa database. hammoho, bonyane, kopi ea faele e kholo ka ho fetisisa ea database. Hoa hlokahala ho ela hloko kholo ea lifaele tsa database nakong e tlang bakeng sa lilemo tse 'maloa tse tlang.

Karolo ea li-backups ea lehae e tlameha ho ba le bonyane polokelo e le 'ngoe ea polokelo ea li-database kaofela hammoho le bekapo ea polokelo ea polokelo e kholo ka ho fetisisa. Ke ntho e lakatsehang hore karolo ena e boetse e na le sebaka sa ho tsosolosa database e kholo ka ho fetisisa. Ho hola ha li-backups le li-archives nakong e tlang bakeng sa lilemo tse 'maloa ho lokela ho nahanoa.

Tokisetso ea pele

Seva ea Firebird 3.0 DBMS e fana ka matla le ho lokolla memori ea sistimi, e ka lebisang ho arohaneng ha eona. Ka mohlala, ka mor'a hore palo e kholo ea basebelisi e khaotsoe ho tloha ho superserver hang-hang, liphoso li ka 'na tsa etsahala ha ho etsoa likhokahano tse ncha.

Ho arohana ha memori ho laoloa ke parameter ea tsamaiso vm.max_map_count, kamehla ke 64K. Ho khothalletsoa ho eketsa boleng ba eona ka makhetlo a mane:

sudo sysctl vm.max_map_count=256000

E le hore boleng bo bocha bo behoe ha sistimi e qala hape, eketsa faeleng /etc/sysctl.conf mola:

vm.max_map_count = 256000

Ho eletsoa ho fana ka maikutlo e le hore lebaka la ho fetola parameter ena le hlakile. U ka qala ho hlophisa faele ebe u sebelisa litlhophiso tse bolokiloeng ho eona:

sudo sysctl -p /etc/sysctl.conf

Ho kenya liphutheloana tse hlokahalang

Lifaele tse sebetsang tsa Firebird 3.0 Linux DBMS li itšetlehile ka lilaebrari tsa ncurses (libncurses.so.5), ICU (e sa tlamelletsoeng ho mofuta ebile ha e bontšoe tlhahiso ldd) le tommath (libtommath.so.0). Ho khoasolla le ho notlolla polokelo ea pokello ea litaba, o tla hloka lisebelisoa gzip, tar и curl kapa wget. Mefuta ea ICU, gzip, tar и curl/wget – ha li na thuso.

Ho sebetsana le liphutheloana ho itšetlehile ka tsamaiso le mookameli oa sephutheloana se sebelisoang tsamaisong, kahoo re tla e nka ka bonngoe.

CentOS 8

CentOS 8 e sebelisa mookameli oa sephutheloana se secha - dnf mme e bitsoa “ho pepeneneng” ka taelo yum. Kaha bakeng sa merero ea rona ha ho na phapang pakeng tsa bona - mehlaleng e tla ba teng yum.

Ntlafatsa cache ea metadata: sudo yum makecache

Sephutheloana sa libtomath se sebakeng se arohaneng sa E(extra)P(ackages for)E(nterprise)L(inux) repository, kahoo re hlahloba hore se se se kenyelelitsoe:

yum -C repolist

Khetho "ho tsoa ho cache feela" (-C kapa --cache-only) e sebelisetsoa ho felisa ho hlahloba le ho khoasolla ho sa hlokahaleng, ho etsa hore yum e be kapele. Haeba ho se na polokelo ea epel lethathamong, e kenye 'me u ntlafatse cache ea metadata:

sudo yum install epel-release &&
sudo yum makecache

Re netefatsa likopo, ha ho hlokahala, re lekola boleng ba linotlolo tsa pgp le tse seng li ntse li tsejoa ho tsoa mohloling o tšepahalang.

Haeba ho na le mathata a ho kenya metainformation ea polokelo ho tsoa mehloling ea https, joale hlophisa faele /etc/yum.repos.d/epel.repo, ho nkela sebaka https:// mabapi le http:// ebe u pheta taelo ea ntlafatso ea cache.

Re lekola boemo ba liphutheloana tse hlokahalang (taelo e rarahane, mohlaleng o hlahisoang sephutheloana sa 32-bit se tlhotliloeng):

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

Re bona seo curl, gzip и ncurses e tšoaroa ka har'a setsi sa pseudo-repository (anaconda), le tar - e qheletsoe ka thoko ho bonyane ba ho kenya sistimi. Liphetolelo tse kholo libncurses и libtommath ho feta kamoo ho hlokehang: 6 le 1 sebakeng sa 5 le 0, ka ho latellana. Haeba sephutheloana se tšoanang se kentsoe 'me se fumaneha, ho lokolotsoe ntlafatso bakeng sa sona. Kenya liphutheloana tse sieo:

sudo yum install 
libicu libtommath tar

Ubuntu 19

Lisebelisoa li etselitsoe ho laola liphutheloana apt, apt‑get и apt‑cache. Ea pele e etselitsoe mosebetsi o kopanetsoeng, 'me tse peli tsa ho qetela li etselitsoe ho sebelisoa mengolong. Mabitso a sephutheloana a fapane hanyane mme a kenyelletsa mofuta.

Re lekola boemo ba liphutheloana tse hlokahalang (taelo e kopantsoe, tlhahiso ea mohlala e khutsufalitsoe mme liphutheloana tsa 32-bit li tlhotliloeng):

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]

Liphutheloana tseo masakana a lisekoere a li bontšang installed/upgradable – e kentswe. E teng empa ha e ea kengoa ncurses5, sebakeng sa curl hlomamisa wget. Kenya liphutheloana tse sieo:

sudo apt‑get install 
libncurses5 libtommath1

Ho theha li-symlink

Ho tloha ho libtommath.so.1 и libncurses.so.6 ka morao e tsamaellanang le libtommath.so.0 и libncurses.so.5, joale bakeng sa Firebird ho lekane ho theha li-symlink ho liphetolelo tse teng tsa lilaebrari.

Rea fumana libtommath.so.1 (libncurses.so.? e fumaneha bukeng e tšoanang):

find /usr -name libtommath.so.1

CentOS:

/usr/lib64/libtommath.so.1

Botho:

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

Re theha li-symlink.

CentOS:

sudo ln -s libtommath.so.1 
/usr/lib64/libtommath.so.0
sudo ln -s libncurses.so.6 
/usr/lib64/libncurses.so.5

Botho:

sudo ln -s libtommath.so.1 
/usr/lib/x86_64-linux-gnu/libtommath.so.0

Ha re hlahlobe sephetho (taelo e rarahane, mehlala ea tlhahiso e khutsufalitsoe):

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*

Botho:

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

Ho khoasolla lisebelisoa tsa kabo ea Firebird DBMS.

Webosaete ea semmuso ea morero oa Firebird (firebirdsql.org) e phatlalatsa likhokahano tsa kabo ea litokollo tsa "molao" le "letsatsi le leng le le leng" kaho (snapshot builds).

Litokollo tsa semmuso tsa Linux li fumaneha joalo ka li-archives (tar.gz) le liphutheloana tsa deb/rpm, empa li-build li fumaneha feela joalo ka li-archives. Re tla nahana ka "generic installer" (generic installer ho tloha tar.gz).

Sebaka sa polokelo ea litaba se hloka ho kopitsoa le ho phutholloa, empa re tla kopanya lits'ebetso ka bobeli. Ho manolla ho etsoa ka hare /tmp,URL e supa sehokelo sa polokelong ea polokelo e ka khoasoang.

curl:

curl -L URL | tar -zxC /tmp

hlakola:

wget -O– URL | tar -zxC /tmp

ke default curl e romella data e jarollotsoeng ho stdout empa ha e sebetsane le li-redirections mme rea eketsa "‑L", a wget, ho fapana le hoo: e sebetsana le li-redirections, empa e ngola data ho faele mme re beha "‑O‑" Bakeng sa tar bontsha tshebediso gzip-filter le bukana eo ho phurolloa ho tla etsoa ho eona. Ha ts'ebetso e phethiloe, lethathamo le kang lena le tla hlaha Firebird‑3.0.5.33220‑0.amd64 ka lifaele tse tharo: install.sh, buildroot.tar.gz и manifest.txt.

Ho kenya Firebird

Nakong ea litokisetso tsa pele, re ile ra fetola boleng ba parameter ea tsamaiso vm.max_map_count, e hlahlobiloe hore na e teng 'me ea kenya ICU, lilaebrari tsa ncurses le tommath. Etsa bonnete ba hore liphetolelo tsa ncurses le tommath li nepahetse (libncures.so.5 и libtommath.so.0) le ho theha li-symlink tse hlokahalang.

Ho kenngoa ha sebele ho bonolo haholo. E-ea lethathamong moo polokelo ea polokelo ea Firebird e sa buloang, hlahloba 'me, ha ho hlokahala, beha folakha e "phethiloeng" bakeng sa script. install.sh:

chmod +x install.sh

tsamaisa script ea ho kenya:

sudo ./install.sh

Ka ho tobetsa konopo ea Enter re tiisa qalo ea ho kenya, 'me ha re fumana kopo, kenya phasewete ea sysdba.

Mongolo oa ho instola o qala ka bo eona systemd- yuniti firebird-superserver (mohaho o khutsitseng oa Firebird 3.0). Ts'ebeletso ea Firebird e tla sebetsa le li-parameter tsa kamehla bakeng sa superserver: cache ea leqephe ea maqephe a 2048 (database ka 'ngoe), buffer ea 64 MB (e arolelanoeng) le ho hokahanya bareki ba mofuta oa XNUMX feela. Sheba likhetho firebird.conf:

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

Ka kopo hlokomela hore litekanyetso tse ncha tse tsoang ho firebird.conf e tla kengoa tšebetsong feela kamora ho qala ts'ebeletso ea Firebird bocha.

Ha u khetha litekanyetso tsa parameter, ho lokela ho nahanoa hore ho na le "basebelisi" ba bararo ba ka sehloohong: cache ea leqephe (bakeng sa database), buffer ea ho hlopha (e arolelanoeng) le memori e fanoeng ke seva bakeng sa likhokahano tsa bareki. U ka khona ho laola tse peli tsa pele feela - palo ea memori bakeng sa likhokahano tsa bareki e itšetlehile ka palo le mongolo oa lipotso tse bolokiloeng, merero ea bona le lintho tsa database tse amehang lipotsong. Litekanyetso tsa memori ea khokahanyo ea bareki li entsoe ka matla feela 'me li ka fetoha ha lits'ebetso tsa bareki le/kapa lintho tsa database li fetoha.

Bakeng sa superserver ho mabotho a nang le mohopolo o fokolang (ho fihla ho 12-16 GB), ha oa lokela ho fana ka chelete e fetang karolo ea boraro kapa kotara ea kakaretso ea RAM bakeng sa cache ea leqephe le ho hlophisa buffer.

Haeba palo ea li-database e sa ts'oaroe 'me e ka fetoha, kakaretso ea memori ea cache ea leqephe e lokela ho aroloa ke palo e kholo ea li-database tse ka bang ho seva. Boholo ba cache ea leqephe bo hlalositsoe maqepheng 'me e tlameha ho fetoloa ka thoko ho li-byte.

Ho fetohela ho meaho ea khale, o tlameha, bonyane, o hlalose ka ho hlaka ServerMode в firebird.conf, fokotsa cache ea leqephe moo (e seng ho feta 2K), fokotsa "buffer" ea mofuta (palo-palo e lumelletsoeng ea mefuta eohle e arotsoe ke palo e kholo ea likhokahano), tima 'me u emise yuniti. firebird-superserver, nolofalletsa le ho qala yuniti firebird-classic.socket.

Ho sebelisa meralo ea superclassic ho Firebird 3.0 ha ho utloahale haholo: "ts'epeho" e tšoana le superserver le buffer e tšoanang ea ho hlopha ka kakaretso. Ha ho na cache e tloaelehileng ea leqephe 'me "litahlehelo" tsa ho hokahanya likhokahano tse fapaneng li tšoana le tsa khale.

Ho lokela ho hopoloa hore ho Firebird 3.0 ho ka hlophisoa likarolo tse ling (cache ea leqephe, boholo ba lifaele, litafole tsa hash le tse ling) databases.conf ka bomong bakeng sa database ka 'ngoe. Bakeng sa superserver ho molemo, ka mohlala, ho beha boleng bo fokolang DefaultDbCachePages в firebird.conf 'me u kenye li-cache tsa leqephe ka bomong bakeng sa li-database tse hlokahalang ho databases.conf.

Botsa lipotso mabapi le sengoloa ho maikutlo, kapa u ngolle mangolo ho aterese ea rona ea tšehetso [imeile e sirelelitsoe].

Source: www.habr.com

Eketsa ka tlhaloso