Kusakinisha Firebird 3 kwenye matoleo ya kisasa ya Linux: CentOS8 na Ubuntu 19

Katika makala hii tutaelezea seti ya chini ya vitendo vinavyohitajika kwa usakinishaji bora wa toleo la 3.0 la Firebird DBMS kwenye usambazaji mpya wa Linux. CentOS 8 na Ubuntu 19 zimechaguliwa kwa mifano.

Ili "kuwasilisha" usambazaji wa Firebird kwa mfumo lengwa, katika mwongozo huu, chaguo la kupakua kumbukumbu ya tar.gz limechaguliwa kwa kutumia kiungo kutoka kwa tovuti rasmi ya mradi (firebirdsql.org).

Kwa wasio na subira zaidi, nenda moja kwa moja kwenye vita:

Ufungaji wa haraka

Kuhariri faili /etc/sysctl.confkwa kuongeza mstari:

vm.max_map_count = 256000

Hifadhi faili na utumie mpangilio:

sudo sysctl -p /etc/sysctl.conf

Maagizo zaidi yanatofautiana kwa CentOS 8 na Ubuntu 19, lakini ССЫЛКА и КАТАЛОГ onyesha kiungo kutoka kwa tovuti rasmi ya mradi wa Firebird kwa ajili ya kupakua usambazaji na saraka ambayo usambazaji utapakuliwa wakati wa mchakato wa kupakua.
Hivi sasa (Machi 2020) toleo la sasa ni Firebird 3.0.5 (hapa ni kiungo kwa toleo la 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

Ufungaji halisi wa Firebird DBMS:

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

Ikiwa unataka kuelewa vizuri zaidi vitendo hivi hufanya, endelea.

Mwili kuu

Dibaji fupi

Inachukuliwa kuwa OS tayari imewekwa katika toleo la chini na ufikiaji wa hazina za umma au nakala zao za ndani zimesanidiwa.

Inachukuliwa kuwa msomaji ana ujuzi wa kimsingi wa Linux na Firebird DBMS.

Upangaji

Kwenye seva ya DBMS inashauriwa kutenga sehemu tofauti kwa faili za muda (/tmp), faili za hifadhidata na chelezo za ndani.

Zile za muda ni pamoja na faili za kufunga, kupanga faili, faili za "nyenzo" za majedwali ya muda ya kimataifa (GTT) na majedwali ya ufuatiliaji. Faili za kupanga na jedwali za muda za kimataifa ziko ndani /tmp, faili za mon$-meza na faili za kufuli - ndani /tmp/firebird.

Faili za kupanga "zimefutwa" (unlink) mara tu baada ya uundaji, kwa hivyo haziwezi "kuonekana" kwenye orodha ya saraka - tu kwenye orodha ya vishughulikia mchakato (iliyowekwa alama kama deleted):

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

Katika orodha ya saraka ya uwongo /proc/…/fd/ symlink zinaonyeshwa, na habari halisi kuhusu faili hutolewa na:

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

ambapo НОМЕР - mfafanuzi (mfafanuzi) wa faili ya riba.

Badala ya kupiga simu"pgrep исполняемый-файл"Unaweza kubadilisha mara moja kitambulisho cha mchakato wa maslahi.

Faili za muda zinaweza kuwa kubwa sana, hivyo /tmp Inashauriwa kutenga angalau 20-30 GB. Inapaswa kuzingatiwa kuwa ukubwa wa faili za kupanga hutegemea tu kiasi cha data iliyopangwa kwa uwazi au kwa ukamilifu katika ombi, na mtumiaji mmoja anaweza "kuunda" gigabytes ya faili za muda.

Sehemu ya faili za hifadhidata lazima ichukue faili zote za hifadhidata. pamoja na, kwa uchache, nakala ya faili kubwa zaidi ya hifadhidata. Inahitajika kuzingatia ukuaji wa faili za hifadhidata katika siku zijazo kwa miaka kadhaa ijayo.

Sehemu ya chelezo za ndani lazima iwe na angalau kumbukumbu moja ya hifadhidata ya hifadhidata zote pamoja na hifadhi rudufu ya hifadhidata kubwa zaidi. Inastahili kuwa sehemu hii pia ina nafasi ya kurejesha hifadhidata kubwa zaidi. Ukuaji wa chelezo na kumbukumbu za chelezo katika siku zijazo kwa miaka kadhaa zinapaswa kuzingatiwa.

Maandalizi ya awali

Seva ya Firebird 3.0 DBMS hutenga na kuachilia huru kumbukumbu ya mfumo, ambayo inaweza kusababisha kugawanyika kwake. Kwa mfano, baada ya idadi kubwa ya watumiaji kukatwa kutoka kwa msimamizi mara moja, makosa yanaweza kutokea wakati wa kufanya viunganisho vipya.

Kugawanyika kwa kumbukumbu kunadhibitiwa na kigezo cha mfumo vm.max_map_count, chaguomsingi ni 64K. Inashauriwa kuongeza thamani yake kwa mara nne:

sudo sysctl vm.max_map_count=256000

Ili thamani mpya imewekwa wakati mfumo unaanza upya, ongeza kwenye faili /etc/sysctl.conf mstari:

vm.max_map_count = 256000

Inashauriwa kufanya maoni ili sababu ya kubadilisha parameter hii iwe wazi. Unaweza kwanza kuhariri faili na kisha kutumia mipangilio iliyohifadhiwa ndani yake:

sudo sysctl -p /etc/sysctl.conf

Inasakinisha vifurushi vinavyohitajika

Faili zinazoweza kutekelezwa za Firebird 3.0 Linux DBMS hutegemea maktaba za ncurses (libncurses.so.5), ICU (haijafungwa kwa toleo na haijaonyeshwa kwenye pato ldd) na tommath (libtommath.so.0) Ili kupakua na kufungua kumbukumbu ya mkusanyiko, utahitaji huduma gzip, tar и curl au wget. matoleo ya ICU, gzip, tar и curl/wget - hazina maana.

Kufanya kazi na vifurushi inategemea mfumo na meneja wa kifurushi kinachotumiwa kwenye mfumo, kwa hivyo tutazingatia moja baada ya nyingine.

CentOS 8

CentOS 8 hutumia meneja mpya wa kifurushi - dnf na inaitwa "kwa uwazi" kwa amri yum. Kwa kuwa kwa madhumuni yetu hakuna tofauti kati yao - katika mifano kutakuwa na yum.

Sasisha akiba ya metadata: sudo yum makecache

Kifurushi cha libtomath kiko katika hazina tofauti ya E(ziada)P(shehena za)E(nterprise)L(inux), kwa hivyo tunaangalia kuwa tayari imejumuishwa:

yum -C repolist

Chaguo "tu kutoka kwa kashe" (-C au --cache-only) hutumika kuondoa ukaguzi na upakuaji usio wa lazima, na kufanya yum haraka. Ikiwa hakuna hazina ya epel kwenye orodha, isakinishe na usasishe kashe ya metadata:

sudo yum install epel-release &&
sudo yum makecache

Tunathibitisha maombi, ikiwa ni lazima, kuangalia thamani za funguo za pgp na zile ambazo tayari zinajulikana kutoka kwa chanzo kinachoaminika.

Ikiwa kuna matatizo ya kupakia metainformation ya hazina kutoka kwa rasilimali za https, basi hariri faili /etc/yum.repos.d/epel.repo, kuchukua nafasi https:// juu ya http:// na kurudia amri ya sasisho la kache.

Tunaangalia hali ya vifurushi vinavyohitajika (amri ni ngumu, katika pato la mfano kifurushi cha 32-bit kinachujwa):

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

Tunaona hilo curl, gzip и ncurses iliyoshikiliwa katika hazina ya kisakinishi ya uwongo (anaconda), na tar - haijajumuishwa kwenye usakinishaji wa mfumo wa chini kabisa. Matoleo makuu libncurses и libtommath zaidi ya inavyotakiwa: 6 na 1 badala ya 5 na 0, kwa mtiririko huo. Ikiwa kifurushi sawa kimesakinishwa na kinapatikana, sasisho limetolewa kwa ajili yake. Sakinisha vifurushi vilivyokosekana:

sudo yum install 
libicu libtommath tar

Ubuntu 19

Huduma zimeundwa ili kudhibiti vifurushi apt, apt‑get и apt‑cache. Ya kwanza imeundwa kwa kazi ya maingiliano, na mbili za mwisho zimeundwa kwa ajili ya matumizi katika maandiko. Majina ya kifurushi ni tofauti kidogo na yanajumuisha toleo.

Tunaangalia hali ya vifurushi vinavyohitajika (amri imejumuishwa, pato la mfano limefupishwa, na vifurushi 32-bit vinachujwa):

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]

Vifurushi ambavyo mabano ya mraba yanaonyesha installed/upgradable - imewekwa. Inapatikana lakini haijasakinishwa ncurses5, badala ya curl imewekwa wget. Sakinisha vifurushi vinavyokosekana:

sudo apt‑get install 
libncurses5 libtommath1

Kuunda ulinganifu

Tangu libtommath.so.1 и libncurses.so.6 nyuma sambamba na libtommath.so.0 и libncurses.so.5, basi kwa Firebird inatosha kuunda ulinganifu kwa matoleo yaliyopo ya maktaba.

Pata libtommath.so.1 (libncurses.so.? iko kwenye saraka sawa):

find /usr -name libtommath.so.1

CentOS:

/usr/lib64/libtommath.so.1

Ubuntu:

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

Tunaunda ulinganifu.

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

Wacha tuangalie matokeo (amri ni ngumu, mifano ya pato imefupishwa):

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

Inapakua kifaa cha usambazaji cha Firebird DBMS.

Tovuti rasmi ya mradi wa Firebird (firebirdsql.org) huchapisha viungo vya usambazaji wa matoleo "rasmi" na miundo ya "kila siku" (miundo ya picha).

Matoleo rasmi ya Linux yanapatikana kama kumbukumbu (tar.gz) na vifurushi vya deb/rpm, lakini miundo inapatikana tu kama kumbukumbu. Tutazingatia "kisakinishaji cha jumla" (kisakinishi cha kawaida kutoka tar.gz).

Kumbukumbu ya muundo inahitaji kupakuliwa na kufunguliwa, lakini tutachanganya michakato yote miwili. Upakiaji unafanywa ndani /tmp,URL inaashiria kiungo cha kumbukumbu inayoweza kupakuliwa.

curl:

curl -L URL | tar -zxC /tmp

wget:

wget -O– URL | tar -zxC /tmp

By default curl hutuma data iliyopakuliwa kwa stdout lakini haishughulikii uelekezaji kwingine na tunaongeza "‑L", a wget, kinyume chake: hushughulikia uelekezaji, lakini huandika data kwa faili na tunaweka "‑O‑" Kwa tar zinaonyesha matumizi gzip-chuja na saraka ambayo upakiaji utafanywa. Mchakato utakapokamilika, saraka kama hii itaonekana Firebird‑3.0.5.33220‑0.amd64 na faili tatu: install.sh, buildroot.tar.gz и manifest.txt.

Inaweka Firebird

Wakati wa maandalizi ya awali, tulirekebisha thamani ya parameter ya mfumo vm.max_map_count, imeangaliwa kwa upatikanaji na kusakinisha ICU, ncurses na maktaba za tommath. Hakikisha matoleo ya ncurses na tommath ni sahihi (libncures.so.5 и libtommath.so.0) na kuunda ulinganifu unaohitajika.

Ufungaji halisi ni rahisi sana. Nenda kwenye saraka ambapo kumbukumbu ya usambazaji wa Firebird ilitolewa, angalia na, ikiwa ni lazima, weka bendera "inayoweza kutekelezwa" kwa hati. install.sh:

chmod +x install.sh

endesha hati ya usakinishaji:

sudo ./install.sh

Kwa kushinikiza kitufe cha Ingiza tunathibitisha kuanza kwa usakinishaji, na baada ya kupokea ombi, ingiza nenosiri la sysdba.

Hati ya usakinishaji huanza kiatomati systemd- kitengo firebird-superserver (usanifu wa kimya wa Firebird 3.0). Huduma ya Firebird itafanya kazi na vigezo chaguo-msingi vya msimamizi mkuu: akiba ya ukurasa wa kurasa 2048 (kwa kila hifadhidata), buffer ya kupanga ya 64 MB (iliyoshirikiwa) na kuunganisha toleo la XNUMX la wateja pekee. Angalia chaguzi firebird.conf:

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

Tafadhali kumbuka kuwa maadili mapya kutoka firebird.conf itawashwa tu baada ya kuanzisha upya huduma ya Firebird.

Wakati wa kuchagua maadili ya parameter, inapaswa kuzingatiwa kuwa kuna "watumiaji" kuu tatu: cache ya ukurasa (kwa hifadhidata), buffer ya kuchagua (iliyoshirikiwa) na kumbukumbu iliyotolewa na seva kwa viunganisho vya mteja. Unaweza tu kudhibiti mbili za kwanza - kiasi cha kumbukumbu kwa miunganisho ya mteja inategemea nambari na maandishi ya maswali yaliyohifadhiwa, mipango yao na vitu vya hifadhidata vinavyohusika katika maswali. Makadirio ya kumbukumbu ya muunganisho wa mteja hufanywa kwa nguvu tu na yanaweza kubadilika kadiri programu za mteja na/au vitu vya hifadhidata vinavyobadilika.

Kwa msimamizi juu ya majeshi yenye kiasi kidogo cha kumbukumbu (hadi 12-16 GB), haipaswi kutenga zaidi ya theluthi moja au robo ya jumla ya kiasi cha RAM kwa cache ya ukurasa na buffer ya kupanga.

Ikiwa idadi ya hifadhidata haijasasishwa na inaweza kubadilika, jumla ya kumbukumbu ya kashe ya ukurasa inapaswa kugawanywa na idadi ya juu zaidi ya hifadhidata inayoweza kuwa kwenye seva. Saizi ya akiba ya ukurasa imebainishwa katika kurasa na lazima ibadilishwe kando kuwa baiti.

Ili kubadili usanifu wa classic, lazima, kwa kiwango cha chini, ueleze kwa uwazi ServerMode в firebird.conf, punguza kashe ya ukurasa hapo (si zaidi ya 2K), punguza bafa ya kupanga (jumla inayokubalika ya aina zote ikigawanywa na idadi ya juu zaidi ya viunganisho), zima na usimamishe kitengo. firebird-superserver, wezesha na uanzishe kitengo firebird-classic.socket.

Kutumia usanifu wa hali ya juu katika Firebird 3.0 haileti maana sana: "kutegemewa" ni kama seva kuu na bafa sawa ya upangaji ya jumla. Hakuna kashe ya kawaida ya ukurasa na "hasara" za kusawazisha miunganisho tofauti na kila mmoja ni sawa na ile ya zamani.

Ikumbukwe kwamba katika Firebird 3.0 baadhi ya vigezo (cache ya ukurasa, saizi za faili za kufuli, jedwali la hashi na zingine) zinaweza kuwekwa. databases.conf kibinafsi kwa kila hifadhidata. Kwa msimamizi ni muhimu, kwa mfano, kuweka thamani ndogo DefaultDbCachePages в firebird.conf na usakinishe akiba za ukurasa binafsi kwa hifadhidata zinazohitajika ndani databases.conf.

Uliza maswali kuhusu makala kwenye maoni, au andika barua kwa anwani yetu ya usaidizi [barua pepe inalindwa].

Chanzo: mapenzi.com

Kuongeza maoni