Kuyika Firebird 3 pa Mabaibulo Amakono a Linux: CentOS8 ndi Ubuntu 19

M'nkhaniyi tifotokoza zochepa zomwe zimafunika kuti mukhazikitse bwino Firebird DBMS version 3.0 pamagawidwe atsopano a Linux. CentOS 8 ndi Ubuntu 19 amasankhidwa kukhala zitsanzo.

Kuti "mupereke" kugawa kwa Firebird ku dongosolo lomwe mukufuna, mu bukhuli, njira yotsitsa zolemba za tar.gz imasankhidwa pogwiritsa ntchito ulalo wochokera patsamba lovomerezeka la polojekiti (firebirdsql.org).

Kwa omwe alibe chipiriro kwambiri, pitani kunkhondo molunjika:

Kukhazikitsa mwachangu

Kusintha fayilo /etc/sysctl.confpowonjezera mzere:

vm.max_map_count = 256000

Sungani fayilo ndikuyika zokonda:

sudo sysctl -p /etc/sysctl.conf

Malangizo ena amasiyana a CentOS 8 ndi Ubuntu 19, koma ССЫЛКА и КАТАЛОГ onetsani ulalo wochokera patsamba lovomerezeka la projekiti ya Firebird kuti mutsitse kugawa ndi bukhu lomwe magawowo adzamasulidwe panthawi yotsitsa.
Pakadali pano (Marichi 2020) zomwe zatulutsidwa pano ndi Firebird 3.0.5 (nawu ulalo ku mtundu wa 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

Kuyika kwenikweni kwa Firebird DBMS:

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

Ngati mukufuna kumvetsetsa bwino zomwe izi zimachitika, werengani.

Thupi lalikulu

Chiyambi chachifupi

Zimaganiziridwa kuti OS idayikidwa kale mu mtundu wocheperako komanso mwayi wopezeka m'malo osungira anthu kapena makope awo am'deralo amakonzedwa.

Zimaganiziridwa kuti owerenga ali ndi chidziwitso choyambirira cha Linux ndi Firebird DBMS.

Kupanga

Pa seva ya DBMS tikulimbikitsidwa kuti tigawire magawo osiyana a mafayilo osakhalitsa (/tmp), mafayilo a database ndi zosunga zobwezeretsera zakomweko.

Zosakhalitsa zimaphatikizapo mafayilo okhoma, kusanja mafayilo, mafayilo a "materialization" a Global temporary tables (GTT) ndi matebulo owunikira. Mafayilo osankha ndi matebulo osakhalitsa apadziko lonse lapansi ali mkati /tmp, mon$-table owona ndi loko-mafayilo - in /tmp/firebird.

Fayilo yosanja "yachotsedwa" (unlink) atangolengedwa, kotero kuti "sawonekere" pamndandanda wamakanema - pamndandanda wa zogwirira ntchito (zolembedwa ngati deleted):

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

M'ndandanda wa pseudo directory /proc/…/fd/ ma symlink amawonetsedwa, ndipo zambiri zenizeni za fayilo zimaperekedwa ndi:

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

kumene НОМЕР - wofotokozera (wofotokozera) wa fayilo yosangalatsa.

M'malo moyimba"pgrep исполняемый-файл"Mutha kusintha nthawi yomweyo chizindikiritso cha zomwe mukufuna kuchita.

Mafayilo osakhalitsa akhoza kukhala aakulu kwambiri, choncho /tmp Ndi bwino kugawa osachepera 20-30 GB. Ziyenera kuganiziridwa kuti kukula kwa mafayilo osankhidwa kumadalira kokha kuchuluka kwa deta momveka bwino kapena momveka bwino mu pempho, ndipo wogwiritsa ntchito mmodzi akhoza "kupanga" ma gigabytes a mafayilo osakhalitsa.

Gawo la mafayilo a database liyenera kukhala ndi mafayilo onse a database. kuphatikiza, osachepera, kopi ya fayilo yayikulu kwambiri ya database. Ndikofunikira kuganizira kukula kwa mafayilo a database mtsogolomo kwa zaka zingapo zikubwerazi.

Gawo la zosunga zobwezeretsera zakomweko liyenera kukhala ndi zosunga zobwezeretsera zosachepera imodzi ya nkhokwe zonse kuphatikiza zosunga zobwezeretsera zazikulu kwambiri. Ndizofunikira kuti gawoli lilinso ndi malo obwezeretsanso database yayikulu kwambiri. Kukula kwa zosunga zobwezeretsera ndi zosungira zakale mtsogolomo kwa zaka zingapo kuyenera kuganiziridwa.

Kukonzekera koyambirira

Seva ya Firebird 3.0 DBMS imagawa ndikumasula kukumbukira kwadongosolo, zomwe zingayambitse kugawanika. Mwachitsanzo, ambiri ogwiritsa ntchito atachotsedwa nthawi yomweyo, zolakwika zitha kuchitika popanga kulumikizana kwatsopano.

Kugawikana kwa kukumbukira kumayendetsedwa ndi parameter ya dongosolo vm.max_map_count, kusakhulupirika ndi 64K. Ndibwino kuti muwonjezere mtengo wake kanayi:

sudo sysctl vm.max_map_count=256000

Kotero kuti mtengo watsopano ukhazikitsidwe pamene dongosolo likuyambiranso, onjezani ku fayilo /etc/sysctl.conf mzere:

vm.max_map_count = 256000

Ndikoyenera kupanga ndemanga kuti chifukwa chosinthira chizindikirochi chiwonekere. Mutha kusintha kaye fayiloyo ndikuyika zokonda zosungidwa mmenemo:

sudo sysctl -p /etc/sysctl.conf

Kuyika mapepala ofunikira

Mafayilo otetezedwa a Firebird 3.0 Linux DBMS amadalira malaibulale a ncurses (libncurses.so.5), ICU (yosamangirizidwa ku mtundu ndipo osawonetsedwa pazotulutsa ldd) ndi tommath (libtommath.so.0). Kuti mutsitse ndi kumasula zolemba zakale za msonkhano, mudzafunika zofunikira gzip, tar и curl kapena wget. Mitundu ya ICU, gzip, tar и curl/wget - ndi zosafunika.

Kugwira ntchito ndi phukusi kumadalira dongosolo ndi woyang'anira phukusi omwe amagwiritsidwa ntchito mu dongosolo, kotero tidzawalingalira mmodzimmodzi.

CentOS 8

CentOS 8 imagwiritsa ntchito woyang'anira phukusi watsopano - dnf ndipo imatchedwa "powonekera" mwa kulamula yum. Popeza pa zolinga zathu palibe kusiyana pakati pawo - mu zitsanzo padzakhala yum.

Sinthani posungira metadata: sudo yum makecache

Phukusi la libtomath lili mu E(zowonjezera)P (zosungira) E(nterprise)L(inux) repository, kotero timayang'ana kuti zaphatikizidwa kale:

yum -C repolist

Njira "kuchokera ku cache" (-C kapena --cache-only) amagwiritsidwa ntchito kuthetsa cheke ndi kutsitsa kosafunikira, kupanga yum mwachangu. Ngati palibe chosungira cha epel pamndandanda, yikani ndikusintha cache ya metadata:

sudo yum install epel-release &&
sudo yum makecache

Timatsimikizira zopempha, ngati kuli kofunikira, kuwunika makiyi a pgp ndi omwe amadziwika kale kuchokera ku gwero lodalirika.

Ngati pali zovuta pakutsitsa zosungirako kuchokera kuzinthu za https, ndiye sinthani fayilo /etc/yum.repos.d/epel.repo, m'malo https:// pa http:// ndikubwereza lamulo losintha cache.

Timayang'ana momwe ma phukusi ofunikira (lamulolo ndi lovuta, mu chitsanzo chotulutsa phukusi la 32-bit lasefedwa):

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

Ife tikuziwona izo curl, gzip и ncurses zosungidwa mu installer pseudo-repository (anaconda), ndipo tar - kuchotsedwa ku unsembe osachepera dongosolo. Mabaibulo akuluakulu libncurses и libtommath kuposa kufunikira: 6 ndi 1 m'malo mwa 5 ndi 0, motsatana. Ngati phukusi lomwelo lakhazikitsidwa komanso likupezeka, zosintha zatulutsidwa. Ikani paketi zomwe zikusowa:

sudo yum install 
libicu libtommath tar

Ubuntu 19

Zothandizira zidapangidwa kuti ziziyang'anira phukusi apt, apt‑get и apt‑cache. Yoyamba idapangidwira ntchito yolumikizana, ndipo ziwiri zomaliza zidapangidwa kuti zizigwiritsidwa ntchito m'malemba. Mayina a phukusi ndi osiyana pang'ono ndipo akuphatikizapo mtunduwo.

Timayang'ana momwe ma phukusi ofunikira (lamulo likuphatikizidwa, zotulutsa zachitsanzo zimafupikitsidwa, ndipo phukusi la 32-bit limasefedwa):

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]

Maphukusi omwe mabulaketi amakona amawonetsa installed/upgradable - anaika. Zilipo koma sizinayikidwe ncurses5, m'malo mwa curl kuyika wget. Ikani paketi zomwe zikusowa:

sudo apt‑get install 
libncurses5 libtommath1

Kupanga ma symlink

monga libtommath.so.1 и libncurses.so.6 m'mbuyo n'zogwirizana ndi libtommath.so.0 и libncurses.so.5, ndiye kwa Firebird ndikokwanira kupanga ma symlink kumitundu yomwe ilipo ya malaibulale.

Timapeza libtommath.so.1 (libncurses.so.? zili m'ndandanda womwewo):

find /usr -name libtommath.so.1

CentOS:

/usr/lib64/libtommath.so.1

Ubuntu:

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

Timapanga ma symlink.

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

Tiyeni tiwone zotsatira zake (lamulo ndi lovuta, zitsanzo zotuluka ndizofupikitsidwa):

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

Kutsitsa zida zogawa za Firebird DBMS.

Webusaiti yovomerezeka ya polojekiti ya Firebird (firebirdsql.org) imasindikiza maulalo ogawa "zovomerezeka" komanso zomanga "tsiku ndi tsiku" (zomangamanga).

Kutulutsa kovomerezeka kwa Linux kumapezeka ngati zosungidwa (tar.gz) ndi phukusi la deb/rpm, koma zomanga zimangopezeka ngati zosungira. Tiganizira za "generic installer" (generic installer kuchokera ku tar.gz).

Zosungidwa zakale ziyenera kutsitsidwa ndikumasulidwa, koma tidzaphatikiza njira zonse ziwiri. Kumasula kumachitidwa mkati /tmp,URL ikuwonetsa ulalo womwe ungatsitsidwe.

kupindika:

curl -L URL | tar -zxC /tmp

wonetsani:

wget -O– URL | tar -zxC /tmp

zotsatira curl imatumiza zomwe zidatsitsidwa ku stdout koma sizigwiranso ntchito zowongolera ndipo timawonjezera "‑L", a wget, m'malo mwake: imagwiranso ntchito, koma imalemba deta ku fayilo ndikuyika "‑O‑" Za tar kusonyeza ntchito gzip-sefa ndi chikwatu chomwe kumasula kudzachitidwa. Ntchito ikamalizidwa, chikwatu chonga ichi chidzawonekera Firebird‑3.0.5.33220‑0.amd64 ndi mafayilo atatu: install.sh, buildroot.tar.gz и manifest.txt.

Kukhazikitsa Firebird

Pokonzekera koyambirira, tinasintha mtengo wa parameter ya dongosolo vm.max_map_count, kufufuzidwa ngati kulipo ndikuyika ICU, ncurses ndi malaibulale a tommath. Onetsetsani kuti zomasulira za ncurses ndi tommath ndizolondola (libncures.so.5 и libtommath.so.0) ndikupanga ma symlink ofunikira.

Kuyika kwenikweni ndikosavuta. Pitani ku chikwatu komwe zosungirako za Firebird zidatsegulidwa, fufuzani ndipo, ngati kuli kofunikira, ikani mbendera "yoyenera" pa script. install.sh:

chmod +x install.sh

yendetsani script install:

sudo ./install.sh

Mwa kukanikiza Enter key timatsimikizira kuyambika kwa kukhazikitsa, ndipo tikalandira pempho, lowetsani mawu achinsinsi a sysdba.

Kukhazikitsa script kumayamba basi systemd-gawo firebird-superserver (zomangamanga za Firebird 3.0). Utumiki wa Firebird udzagwira ntchito ndi magawo osasinthika a superserver: cache ya masamba a masamba 2048 (pa database), malo osungira 64 MB (ogawana) ndikulumikiza makasitomala amtundu wa XNUMX okha. Onani zosankha firebird.conf:

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

Chonde dziwani kuti zatsopano zochokera firebird.conf idzatsegulidwa pokhapokha mutayambitsanso ntchito ya Firebird.

Posankha zikhalidwe za parameter, ziyenera kuganiziridwa kuti pali "ogula" akuluakulu atatu: cache ya tsamba (ya database), buffer yosankha (yogawana) ndi kukumbukira komwe kumaperekedwa ndi seva kuti agwirizane ndi kasitomala. Mutha kungoyang'anira ziwiri zoyambirira - kuchuluka kwa kukumbukira kwamalumikizidwe amakasitomala kumadalira kuchuluka ndi zolemba zamafunso osungidwa, mapulani awo ndi zinthu za database zomwe zikukhudzidwa. Kuyerekeza kwa kukumbukira kwamakasitomala kumapangidwa mwamphamvu kokha ndipo kumatha kusintha pomwe ntchito zamakasitomala ndi/kapena zinthu za database zikusintha.

Kwa superserver pa makamu omwe ali ndi kukumbukira pang'ono (mpaka 12-16 GB), simuyenera kugawa kupitilira gawo limodzi mwa magawo atatu kapena kotala la kuchuluka kwa RAM pa cache yatsamba ndikusankha buffer.

Ngati chiwerengero cha nkhokwe sichinakhazikitsidwe ndipo chingasinthe, chiwerengero chonse cha cache cache cache chiyenera kugawidwa ndi chiwerengero chachikulu cha ma database omwe angakhale pa seva. Kukula kwa kache yatsamba kumatchulidwa m'masamba ndipo kuyenera kusinthidwa padera kukhala ma byte.

Kuti musinthe ku zomangamanga zachikale, muyenera, osachepera, kufotokoza momveka bwino ServerMode в firebird.conf, chepetsani posungira masamba pamenepo (osapitirira 2K), chepetsani chosungira chamtundu (chiwerengero chonse chovomerezeka chamitundu yonse chogawidwa ndi kuchuluka kwa maulumikizidwe), zimitsani ndikuyimitsa firebird-superserver, yambitsani ndi kuyambitsa unit firebird-classic.socket.

Kugwiritsa ntchito zomangamanga zapamwamba mu Firebird 3.0 sikumveka bwino: "kudalirika" kuli ngati superserver ndi buffer yofananira. Palibe cache wamba wamasamba ndipo "zotayika" pakulumikiza kulumikizana kosiyana wina ndi mnzake ndizofanana ndi zakale.

Tiyenera kukumbukira kuti mu Firebird 3.0 magawo ena (cache yamasamba, kukula kwa fayilo, ma hashi ndi ena) akhoza kukhazikitsidwa. databases.conf payekhapayekha pa database iliyonse. Kwa superserver ndizothandiza, mwachitsanzo, kukhazikitsa mtengo wochepa DefaultDbCachePages в firebird.conf ndikuyika ma cache atsamba pawokha pazosungidwa zofunika databases.conf.

Funsani mafunso okhudza nkhaniyi mu ndemanga, kapena lembani makalata ku adiresi yathu yothandizira [imelo ndiotetezedwa].

Source: www.habr.com

Kuwonjezera ndemanga