Ukuguqulwa kokusakaza kolwazi lwe-Firebird 2.5 kufomethi ye-ODS12 (Firebird 3.0)

Inguqulo ngayinye ye-Firebird inenguqulo yayo yefomethi yesakhiwo sediski egciniwe, O(n)D(isk)S(isakhiwo). Kuze kube yinguqulo engu-2.5 ehlanganisiwe, injini ye-Firebird ingasebenza ne-ODS yezinguqulo zangaphambilini, okungukuthi, imininingwane yolwazi evela ezinguqulweni ezindala yavulwa yinguqulo entsha futhi yasebenza ngemodi yokuhambisana, kodwa injini ye-Firebird 3.0 isebenza kuphela nedatha yolwazi enguqulweni yayo ye-ODS. 12.0.

Ukuze uthuthele ku-3.0, isizindalwazi sisuka ku-2.5 kufanele siguqulelwe kufomethi entsha ngokulondoloza/ukubuyisela. Yiqiniso, sicabanga ukuthi i-database yayilungiselelwe ukuguqulwa - i.e. imethadatha nemibuzo ihlolelwe ukuhambisana ne-Firebird 3.0.

Uma ulandela indlela evamile, lokhu kusho ukuthi udinga ukwenza ikhophi yasenqolobaneni kunguqulo 2.5, bese ufaka i-3.0 futhi wenze ukubuyisela. Inqubo enjalo iyamukeleka uma kunesikhathi esanele, kodwa lapho uthutha i-database enkulu, noma lapho uhambisa i-database eyishumi nambili ngesikhathi esifanayo, lapho isikhathi siphela, ungasebenzisa ukuguqulwa kokusakaza, okuyi-30-40% ngokushesha. Ungakwenza kanjani lokhu ngempela (ngaphansi kweWindows nangaphansi kweLinux), funda ngaphansi kokusikwa.

Umbono ojwayelekile ukuthi sizosebenzisa ipayipi ukusheshisa izinto:

gbak -b … база25 stdout | gbak -c … stdin база30

I-Gbak esuka ku-2.5 ikhiqiza ikhophi yasenqolobaneni ngefomethi yomugqa bese iyithumela ku-stdout, ethatha ngokushesha i-gbak ku-3.0 nge-stdin futhi yakhe isizindalwazi esisha.

Kuyadingeka ukuhlela ipayipi elinjalo ngendlela yokufinyelela yendawo (yefayela), njengoba ukufinyelela kwenethiwekhi (ngisho nangokusingatha kwendawo) kuzoyibambezela kakhulu inqubo.

Sidlula imininingwane yeWindows neLinux ngezansi.

Windows

Endabeni ye-Windows, indlela elula ukwenza isakhiwo esizimele ngokuphelele se-Firebird. Kulokhu sithatha shumeka-ngobo yomlando i-Firebird 2.5, qamba kabusha i-fbemded.dll ku-fbclient.dll, engeza i-gbak.exe kanye (ngokuzithandela) izinsiza ze-isql.exe zisuka endaweni yomlando "evamile" engu-2.5.

I-Firebird 3.0 isebenzisa umhlangano owodwa futhi ayidingi ukuguqulwa.

Inguqulo encane kakhulu (engadingi ukufakwa kwemitapo yolwazi yesikhathi sokusebenza ye-VS2008/VS2010 ohlelweni oluqondiwe) iqukethe amafayela alandelayo:

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

Umlawuli onesipiliyoni angase aqaphele ukuthi i-2.5 ayibandakanyi amafayela e-intl/fbintl.dll kanye ne-intl/fbintl.conf. Lokhu kuyiqiniso, njengoba i-gbak ingasebenzisi i-charset yokuxhumana futhi ayiguquli idatha phakathi kwama-charset, kodwa ohlangothini "lokwamukela" lwe-Firebird 3.0, lawa mafayela ayadingeka lapho udala izinkomba.

Ku-firebird.conf I-Firebird 3.0 iyanconywa ukuthi yengeze:

MaxUnflushedWrites = -1
MaxUnflushedWriteTime = -1

Futhi, kuyafiseleka ukusetha amanani ahlukile we-IpcName we-2.5 kanye ne-3.0.

Lapho sikhetha amanani amanye amapharamitha we-firebird.conf, siqhubeka ekucabangeleni okulula: esigabeni sokumpontshelwa kwedatha, i-gbak isebenzisa u-2.5 kunqubo eyodwa, no-3.0 kwenye, bese iphuma engu-2.5, bese u-3.0 iqala ukwakha. izinkomba.

Ukusheshisa isigaba sokwakha inkomba ku-3.0, kunconywa ukwandisa usayizi wepharamitha ye-TempCacheLimit ku-~ 40% RAM (uma kuyiseva ezinikezele, kunjalo).

Isibonelo, uma iseva ine-16 GB ye-RAM, ungabeka

TempCacheLimit=6G

Kunjalo, leli nani lingasethwa kuphela i-64-bit Firebird 3, njengoba noma iyiphi inqubo ye-32-bit ayikwazi ukwaba inkumbulo engaphezu kuka-2 gigabytes.

Ku-2.5, le parameter ayidingi ukushintshwa - ayikwazi ukuba ngaphezu kwamagigabhayithi angu-2 noma kunjalo, futhi ayithinti isivinini ngesikhathi sokulondoloza.

Ngaphambi kokwenza umsebenzi, udinga ukuhlola ukuthi inqolobane yekhasi kusihloko sedathabhethi isethwe ku-0 (command). gstat -h databasename, bheka umugqa we-Page buffers).

Uma inqolobane isethwe ngokucacile kusihloko sesizindalwazi, bese ikhipha amanani asuka ku-firebird.conf (kanye ne-database.conf ku-3.0), futhi esimweni samanani anganele amakhulu, ingaholela ekusetshenzisweni kwenkumbulo ngokweqile nokushintshaniswa.

Okulandelayo, kopisha amafayela ohlelweni oluqondiwe.

Ukuguqulwa kwenziwa ngemva kokumisa isevisi "yesistimu" ye-Firebird 2.5, kulayini womyalo onamalungelo aphakeme kumlawuli wendawo (isibonelo):

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

Lesi sibonelo sisebenzisa "i-forward slash" kumacaphuno ("isitayela se-unix esivumelekile"), kanye "nesigqoko" (uhlamvu "^") sibalekela uhlamvu lomugqa omusha, oluwusizo lapho uthayipha imiyalo emide. Inketho -st(atus) ivele ku-Firebird 2.5.8 futhi ikuvumela ukuthi uloge idatha mayelana nesikhathi inqubo ye-gbak yaqala ngaso (ukuthola imininingwane, bona amadokhumenti).

Linux

Ku-Linux Firebird 3 incike kulabhulali ye-tommath. Ku-CentOS (RHEL) lo mtapo wolwazi utholakala endaweni ye-epel, ku-Ubuntu (Debian) endaweni yesistimu.

Ku-CentOS, kufanele uqale uxhume inqolobane ye-epel bese wenze njalo

yum install libtommath

Ubuntu awudingi ukufaka amakhosombe engeziwe, kodwa Ubuntu 16 kanye no-Ubuntu 18 bafaka izinguqulo ezihlukene zamaphakheji - libtommath0 kanye ne-libtommath1, ngokulandelana.

I-Firebird 3.0 ibheka i-tommath.so.0 futhi ku-Ubuntu 18 iyadingeka futhi ukudala isixhumanisi (symlink) kusuka ku-tommath.so.0 kuya ku-tommath.so.1. Ukwenza lokhu, okokuqala udinga ukuthola i-tommath.so.1.

Sesha indlela ku-Ubuntu - /usr/lib/x86_64-linux-gnu/, kodwa okunye ukusabalalisa okusekelwe ku-Debian kungase kuhluke.

Inkinga yesibili ihlobene neqiniso lokuthi kuze kufike futhi kufaka phakathi i-Firebird 3.0.1, yayingekho indlela elula yokufaka izinguqulo ezimbili ezihlukene zeseva. Asiyicabangi inketho "yokuhlanganisa usuka emthonjeni nesiqalo esidingekayo" ngenxa yobunkimbinkimbi bayo obuhlobene.

OkweFirebird 3.0.2 nangaphezulu kusetshenziswe yakha nge --enable-binreloc kanye nenketho yesifaki ehlukile (-indlela yendlela).

Ngokucabangela ukuthi umtapo wezincwadi we-tommath kanye, uma kunesidingo, i-symlink ye-tommath.so.0 yengezwe ohlelweni, ungakwazi ukufaka okwamanje (ngesikhathi salokhu kubhala) Ukusabalalisa kwe-Firebird 3.0.4, isibonelo, /opt. /fb3:

./install.sh -path /opt/fb3

Ngemuva kwalokho, ungamisa isevisi yesistimu ye-Firebird futhi uqale ukuguqulwa kokusakaza-bukhoma.

Uma umisa i-Firebird, khumbula ukuthi izinqubo ze-Firebid 2.5 kumodi Yakudala ngokuvamile ziqalwa yi-xinetd - ngakho udinga ukukhubaza isevisi ye-firebird ye-xinetd noma uyeke i-xinetd ngokuphelele.

Ku-firebird.conf ye-3.0 ku-Linux, awudingi ukusetha amapharamitha e-MaxUnflushed (asebenza kuphela ku-Windows) futhi ushintshe izilungiselelo ze-Firebird 2.5.

Ku-Linux, ukufinyelela (kwefayela) kwasendaweni kwe-Firebird 2.5 akufani nenguqulo eshumekiwe ngaphansi kwe-Windows - iseva engu-2.5 izosebenza kunqubo ye-gbak (ngaphandle kwengxenye yenethiwekhi), kodwa amalungelo okufinyelela azohlolwa ngokumelene nesisekelo somsebenzisi, okusho ukuthi ukuthi hhayi kuphela ukungena ngemvume, kodwa futhi nephasiwedi kuzodingeka:

export ISC_USER=username ISC_PASSWORD=password
/opt/firebird/bin/gbak -b … база25 stdout
|/opt/fb3/bin/gbak -c … stdin база30

Ngemuva kokuguqulwa okuyimpumelelo, kufanele uqale ukhiphe i-Firebird 3.0 "eyengeziwe", bese "i-main" Firebird 2.5, futhi ngemva kwalokho wenze ukufakwa okuhlanzekile kwe-Firebird 2.5 - futhi ingcono kakhulu kusifaki esivamile se-tar.gz, hhayi ngokusebenzisa i-Firebird XNUMX. zokugcina, ngoba. inguqulo ekumakhosombe ingase isale ngemuva.

Futhi, ngemva kokubuyisela i-database ku-Linux nokufaka kabusha, udinga ukuhlola ukuthi isizindalwazi esisha singekamsebenzisi wezicishamlilo.

Uma kungenjalo, kuzomele kulungiswe.

chown firebird.firebird database

Umphumela

Ngaphezu kokulondoloza isikhathi nesikhala sediski, ukuguqulwa kokusakaza-bukhoma kunenye inzuzo ebalulekile - ukuguqulwa kwedathabhesi kwenziwa ngaphandle kokususa i-Firebird 2.5 ekhona, eyenza kube lula ukubuyisela emuva uma kwenzeka ukuguqulwa okungaphumeleli (imvamisa ngenxa yokuntuleka kwendawo noma ukuqalisa kabusha okungalindelekile ngesikhathi sokufuduka. inqubo).

Ukonga isikhathi kungenxa yokuthi ukuguqulwa "kwakudala" "isikhathi sokulondoloza" kanye "nesikhathi sokubuyisela". Ukuthola kabusha kuqukethe izingxenye ezimbili: ukufunda idatha efayelini eliyisipele nokwakha inkomba.

Ngokuguqulwa kokusakaza-bukhoma, isikhathi esiphelele sitholwa “njengesikhathi sokwenza ikhophi yasenqolobaneni kanye namaphesenti amahlanu kuya kwayishumi” kanye “nesikhathi sokwakha inkomba”.

Imiphumela ethile incike esakhiweni sesizindalwazi, kodwa ngokwesilinganiso, isikhathi sokuthola kabusha cishe siphindwe kabili kunesikhathi sokulondoloza. Ngakho-ke, uma sithatha isikhathi sokulondoloza njengeyunithi, khona-ke "ukuguqulwa kwakudala" amayunithi amathathu esikhathi, ukusakaza amayunithi amabili esikhathi. Ukwandisa i-TempCacheLimit kusiza ukwehlisa isikhathi.

Ngokuvamile, ukuguqulwa kokusakaza ekusebenzeni kukuvumela ukuthi wonge u-30-40% wesikhathi sokunye ukwenza isipele nokubuyisela.

Imibuzo?

Sicela ubhale yonke imibuzo kumazwana, noma uyithumele kumbhali wendlela yokusebenza kanye nombhali-mbisene walesi sihloko - uVasily Sidorov, i-iBase Leading System Engineer, ku-bs at ibase ru.

Abasebenzisi ababhalisiwe kuphela abangabamba iqhaza kuhlolovo. Ngena ngemvume, wamukelekile.

Iyiphi inguqulo ye-Firebird oyisebenzisayo?

  • I-Firebird 3.x

  • I-Firebird 2.5

  • I-Firebird 2.1

  • I-Firebird 2.0, 1.5 noma i-1.0

Bangu-16 abasebenzisi abavotile. Umsebenzisi ongu-1 ugobile.

Source: www.habr.com

Engeza amazwana