Kusintha kwa intaneti kwa database ya Firebird 2.5 kukhala mtundu wa ODS12 (Firebird 3.0)

Mtundu uliwonse wa Firebird uli ndi mtundu wake wa mawonekedwe a disk disk - O(n)D(isk)S(tructure). Kufikira mtundu wa 2.5 kuphatikiza, injini ya Firebird imatha kugwira ntchito ndi ODS yamitundu yam'mbuyomu, ndiye kuti, zosungiramo zakale zidatsegulidwa ndi mtundu watsopanowu ndikugwira ntchito mofananira, koma injini ya Firebird 3.0 imangogwira ntchito ndi nkhokwe mu mtundu wake wa ODS. 12.0.

Kuti musinthe ku 3.0, database kuchokera ku 2.5 iyenera kusinthidwa kukhala mawonekedwe atsopano kudzera pakusunga / kubwezeretsa. Inde, timaganiza kuti database idakonzedwa kale kuti itembenuke - i.e. metadata ndi mafunso adafufuzidwa kuti agwirizane ndi Firebird 3.0.

Ngati mutsatira njira yokhazikika, izi zikutanthauza kuti muyenera kupanga zosunga zobwezeretsera pa mtundu wa 2.5, kenako ikani 3.0 ndikupanga zobwezeretsa. Njirayi ndi yovomerezeka ngati muli ndi nthawi yokwanira, koma mukasamuka nkhokwe zazikulu, kapena mukamasamuka zingapo zingapo, nthawi ikatha, mutha kugwiritsa ntchito kutembenuka kwamtsinje, komwe ndi 30-40% mwachangu. Momwe mungachitire izi (pansi pa Windows ndi Linux), werengani pansi pa odulidwa.

Lingaliro lambiri ndikuti tigwiritsa ntchito payipi kufulumizitsa zinthu:

gbak -b … Π±Π°Π·Π°25 stdout | gbak -c … stdin Π±Π°Π·Π°30

Gbak kuchokera ku 2.5 imapanga zosunga zobwezeretsera mumtundu wa mzere ndikuzitumiza ku stdout, yomwe nthawi yomweyo imatenga gbak kuchokera ku 3.0 kudzera pa stdin ndikupanga database yatsopano.

Ndikofunikira kukonza mapaipi oterowo pogwiritsa ntchito njira yakumaloko (mafayilo), popeza mwayi wofikira pa netiweki (ngakhale kudzera pa localhost) udzachedwetsa kwambiri ntchitoyi.

Pansipa tiwona zambiri za Windows ndi Linux.

Windows

Pankhani ya Windows, njira yosavuta ndiyo kupanga choyimira chokha cha Firebird. Kwa ichi timatenga embed-archive Firebird 2.5, tchulani dzina lakuti fbemded.dll ku fbclient.dll, onjezerani "zokhazikika" 2.5 gbak.exe ndi (ngati mukufuna) isql.exe kuchokera kumalo osungirako zakale.

Firebird 3.0 amagwiritsa ntchito msonkhano umodzi ndipo sichifuna kusinthidwa kulikonse.

Njira yaying'ono kwambiri (yomwe sifunikira kukhazikitsa malaibulale a VS2008/VS2010 panjira yomwe mukufuna) ili ndi mafayilo otsatirawa:

25/gbak.exe
25/fbclient.dll
25/firebird.conf
25/firebird.log
25/firebird.msg
25/ib_util.dll
25/icudt30.dll
25/icuin30.dll
25/icuuc30.dll
25/Microsoft.VC80.CRT.manifest
25/msvcp80.dll
25/msvcr80.dll

30/fbclient.dll
30/firebird.conf
30/firebird.msg
30/gbak.exe
30/ib_util.dll
30/icudt52.dll
30/icudt52l.dat
30/icuin52.dll
30/icuuc52.dll
30/msvcp100.dll
30/msvcr100.dll
30/intl/fbintl.conf
30/intl/fbintl.dll
30/plugins/engine12.dll

Woyang'anira wodziwa zambiri angazindikire kuti 2.5 sikuphatikiza mafayilo a intl/fbintl.dll ndi intl/fbintl.conf. Izi ndi zoona, popeza gbak sagwiritsa ntchito charset yolumikizira ndipo satembenuza deta pakati pa ma charset, koma kumbali ya "kulandira" ya Firebird 3.0 mafayilowa amafunikira popanga ma index.

Mu Firebird 3.0 firebird.conf tikulimbikitsidwa kuwonjezera:

MaxUnflushedWrites = -1
MaxUnflushedWriteTime = -1

Komanso, ndikofunikira kukhazikitsa ma IpcName osiyanasiyana a 2.5 ndi 3.0.

Posankha zikhalidwe za firebird.conf zina, timapita ku lingaliro losavuta: pa siteji yotengera deta, gbak 2.5 ikugwira ntchito imodzi, ndipo 3.0 ikugwira ntchito ina, ndiye 2.5 imamaliza ntchito yake, ndipo 3.0 ikuyamba. kupanga indexes.

Kuti mufulumizitse gawo lomanga ndondomeko mu 3.0, tikulimbikitsidwa kuonjezera kukula kwa TempCacheLimit parameter ku ~ 40% RAM (ngati ndi seva yodzipatulira, ndithudi).

Mwachitsanzo, ngati seva ili ndi 16 GB ya RAM, ndiye kuti mutha kukhazikitsa

TempCacheLimit=6G

Zachidziwikire, mtengo uwu ukhoza kukhazikitsidwa kwa 64-bit Firebird 3, popeza njira iliyonse ya 32-bit sichitha kugawa ma gigabytes opitilira 2 a kukumbukira.

Kwa 2.5, chizindikiro ichi sichiyenera kusinthidwa - sichingakhale choposa 2 gigabytes, ndipo ngakhale panthawi yosunga zobwezeretsera sichimakhudza liwiro.

Musanagwire ntchitoyo, muyenera kuwona kuti cache yatsamba pamutu wa database yakhazikitsidwa ku 0 (command gstat -h databasename, onani mzere wa Page buffers).

Ngati cacheyo yakhazikitsidwa momveka bwino pamutu wa database, ndiye kuti imaposa mikhalidwe yochokera ku firebird.conf (ndi databases.conf mu 3.0), ndipo pakakhala zinthu zazikulu zosayenera, zimatha kuyambitsa kugwiritsa ntchito kukumbukira kosafunikira komanso yosungirako posinthana.

Kenako, koperani mafayilo ku dongosolo lomwe mukufuna.

Kutembenuka kumachitika pambuyo poyimitsa ntchito ya Firebird 2.5 "system", pamzere wolamula wokhala ndi ufulu wokwezedwa kwa woyang'anira wamba (chitsanzo):

set ISC_USER=Π²Π»Π°Π΄Π΅Π»Π΅Ρ†
"25/gbak" -z -b -g -v -st t -y 25.log Π±Π°Π·Π°25 stdout|^
"30/gbak" -z -c -v -st t -y 30.log stdin Π±Π°Π·Π°30

Chitsanzochi chimagwiritsa ntchito "forward slash" m'mawu obwereza (zovomerezeka za "unix-style"), ndi "chipewa" (chilembo cha "^") chimatuluka pamzere, chomwe chimakhala chosavuta polemba malamulo autali. Njira ya -st(atus) idawonekera mu Firebird 2.5.8 ndipo imakulolani kuti mulembe zambiri za nthawi yoyendetsera gbak (zambiri pazolembedwa).

Linux

Pa Linux, Firebird 3 imadalira laibulale ya tommath. Ku CentOS (RHEL) laibulale iyi ili mu epel repository, ku Ubuntu (Debian) mu dongosolo losungiramo.

Kwa CentOS muyenera choyamba kulumikiza chosungira cha epel kenako ndikuchita

yum install libtommath

Ubuntu safunika kulumikiza nkhokwe zowonjezera, koma Ubuntu 16 ndi Ubuntu 18 amaika mitundu yosiyanasiyana ya phukusi - libtommath0 ndi libtommath1, motsatira.

Firebird 3.0 imayang'ana tommath.so.0 ndipo kwa Ubuntu 18 imafunikanso kupanga symlink kuchokera ku tommath.so.0 kupita ku tommath.so.1. Kuti muchite izi, choyamba muyenera kupeza tommath.so.1.

Njira yosaka mu Ubuntu - /usr/lib/x86_64-linux-gnu/, koma zitha kukhala zosiyana ndi magawo ena a Debian.

Vuto lachiwiri limachokera ku mfundo yakuti mpaka Firebird 3.0.1, kuphatikizapo, panalibe njira yosavuta yoyika mitundu iwiri yosiyana ya seva. Sitiganizira njira ya "kuphatikiza kuchokera ku magwero okhala ndi mawu ofunikira" chifukwa cha kuchuluka kwa ntchito.

Zakhazikitsidwa kwa Firebird 3.0.2 ndi kupitilira apo kumanga ndi --enable-binreloc ndi njira ina yoyika (-path path).

Poganiza kuti laibulale ya tommath ndipo, ngati kuli kofunikira, symlink ya tommath.so.0 yawonjezedwa ku dongosolo, mukhoza kukhazikitsa zamakono (panthawi yolemba nkhaniyi) Firebird 3.0.4 kugawa, mwachitsanzo, / kusankha/fb3:

./install.sh -path /opt/fb3

Zitatha izi, mukhoza kusiya utumiki Firebird dongosolo ndi kuyamba kusonkhana kutembenuka.

Mukayimitsa Firebird, muyenera kuganizira kuti njira za Firebid 2.5 mu Classic mode nthawi zambiri zimayambitsidwa ndi xinetd - chifukwa chake, muyenera kuletsa ntchito ya firebird ya xinetd kapena kuyimitsa xinetd kwathunthu.

Mu firebird.conf ya 3.0 pa Linux, simuyenera kukhazikitsa magawo a MaxUnflushed (amangogwira ntchito pa Windows) ndikusintha zoikamo za Firebird 2.5.

Pa Linux, kulowa (mafayilo) a Firebird 2.5 sikufanana ndi mtundu wophatikizidwa pansi pa Windows - seva 2.5 idzayenda munjira ya gbak (popanda gawo la netiweki), koma ufulu wofikira udzayang'aniridwa motsutsana ndi ogwiritsa ntchito, zomwe zikutanthauza kuti inu. sichidzafunika lolowera, komanso mawu achinsinsi:

export ISC_USER=username ISC_PASSWORD=password
/opt/firebird/bin/gbak -b … Π±Π°Π·Π°25 stdout
|/opt/fb3/bin/gbak -c … stdin Π±Π°Π·Π°30

Mukatembenuka bwino, muyenera kuchotsa kaye Firebird 3.0 "yowonjezera", kenako "main" Firebird 2.5, ndipo pambuyo pake pangani kukhazikitsa koyera kwa Firebird 2.5 - koposa zonse kuchokera pa okhazikitsa wamba tar.gz, osati kudzera m'malo osungirako zinthu, chifukwa Mtundu wa nkhokwe ukhoza kuchedwa.

Komanso, mutatha kubwezeretsanso nkhokwe pa Linux ndikuyiyikanso, muyenera kuyang'ana kuti malo atsopanowa ndi a wosuta.

Ngati izi siziri choncho, ndiye kuti ziyenera kukonzedwa

chown firebird.firebird database

Zotsatira

Kuphatikiza pa kupulumutsa nthawi ndi malo a disk, kutembenuka kwa mitsinje kuli ndi mwayi wina wofunikira - kutembenuka kwa database kumachitika popanda kuchotsa Firebird 2.5 yomwe ilipo, zomwe zimapangitsa kuti zikhale zosavuta kubwereranso ngati kutembenuka kulephera (nthawi zambiri chifukwa cha kusowa kwa malo kapena yambitsaninso mosayembekezereka panthawi yakusamuka).

Kupulumutsa nthawi ndi chifukwa chakuti kutembenuka kwa "classic" ndi "nthawi yosungira" komanso "nthawi yobwezeretsa". Kubwezeretsa kumakhala ndi magawo awiri: kuwerenga zambiri kuchokera ku fayilo yosunga zobwezeretsera ndikupanga index.

Ndi kutembenuka kosalekeza, nthawi yonse imapezeka ngati "nthawi yosunga zosunga zobwezeretsera kuphatikiza zisanu mpaka khumi paperesenti" ndi "nthawi yomanga index."

Zotsatira zenizeni zimatengera kapangidwe ka nkhokwe, koma pafupifupi, nthawi yobwezeretsa imakhala pafupifupi kawiri nthawi yosunga zobwezeretsera. Chifukwa chake, ngati titenga nthawi yosunga zobwezeretsera ngati gawo, ndiye kuti "kutembenuka kwakanthawi" ndi magawo atatu a nthawi, kusuntha ndi magawo awiri a nthawi. Kuchulukitsa TempCacheLimit kumathandiza kuchepetsa nthawi.

Nthawi zambiri, kutembenuka kwapaintaneti kumakuthandizani kuti musunge 30-40% ya nthawi yofunikira pakusunga kwina ndikubwezeretsanso.

Mafunso?

Chonde lembani mafunso onse mu ndemanga, kapena muwatumize kwa wolemba njira ndi wolemba nawo nkhaniyi - Vasily Sidorov, injiniya wotsogolera ku iBase, pa bs pa ibase ru.

Ogwiritsa ntchito olembetsedwa okha ndi omwe angatenge nawo gawo pa kafukufukuyu. Lowani muakauntichonde.

Mukugwiritsa ntchito mtundu wanji wa Firebird?

  • Firebird 3.x

  • Firebird 2.5

  • Firebird 2.1

  • Firebird 2.0, 1.5 kapena 1.0

Ogwiritsa 16 adavota. Wogwiritsa m'modzi adasala.

Source: www.habr.com

Kuwonjezera ndemanga