Katrai Firebird versijai ir sava datu bÄzes diska struktÅ«ras formÄta versija O(n)D(isk)S(struktÅ«ra). LÄ«dz versijai 2.5 ieskaitot, Firebird dzinÄjs varÄja strÄdÄt ar iepriekÅ”Äjo versiju ODS, tas ir, datu bÄzes no vecajÄm versijÄm tika atvÄrtas ar jauno versiju un darbojÄs saderÄ«bas režīmÄ, bet Firebird 3.0 dzinÄjs darbojas tikai ar datu bÄzÄm savÄ ODS versijÄ. 12.0.
Lai migrÄtu uz 3.0, datu bÄze no 2.5 ir jÄkonvertÄ jaunajÄ formÄtÄ, izmantojot dublÄÅ”anu/atjaunoÅ”anu. Protams, pieÅemam, ka datubÄze iepriekÅ” bija sagatavota konvertÄÅ”anai ā t.i. Metadatu un vaicÄjumu saderÄ«ba ar Firebird 3.0 ir pÄrbaudÄ«ta.
Ja izmantojat standarta pieeju, tas nozÄ«mÄ, ka jums ir jÄizveido dublÄjums versijÄ 2.5, pÄc tam jÄinstalÄ 3.0 un jÄveic atjaunoÅ”ana. Å Äda procedÅ«ra ir pieÅemama, ja ir pietiekami daudz laika, bet, migrÄjot lielas datu bÄzes, vai vienlaikus migrÄjot vairÄkus desmitus datu bÄzu, kad laiks iet uz beigÄm, var izmantot straumÄÅ”anas konversiju, kas ir par 30-40% ÄtrÄka. KÄ tieÅ”i to izdarÄ«t (operÄtÄjsistÄmÄ Windows un Linux), lasiet sadaÄ¼Ä sadaļÄ.
VispÄrÄjÄ ideja ir tÄda, ka mÄs izmantosim cauruļvadu, lai paÄtrinÄtu darbu:
gbak -b ā¦ Š±Š°Š·Š°25 stdout | gbak -c ā¦ stdin Š±Š°Š·Š°30
Gbak no 2.5 Ä£enerÄ dublÄjumu lineÄrÄ formÄtÄ un nosÅ«ta to uz stdout, kas nekavÄjoties paÅem gbak no 3.0 caur stdin un izveido jaunu datu bÄzi.
Å Äds cauruļvads ir jÄorganizÄ ar lokÄlÄs (faila) piekļuves metodi, jo piekļuve tÄ«klam (pat caur localhost) ievÄrojami palÄninÄs procesu.
TÄlÄk ir sniegta informÄcija par Windows un Linux.
Windows
OperÄtÄjsistÄmas Windows gadÄ«jumÄ vienkÄrÅ”Äkais veids ir izveidot pilnÄ«gi atseviŔķu Firebird bÅ«vÄjumu. Å im nolÅ«kam mÄs Åemam
Firebird 3.0 lietojumi
VisminimÄlÄkÄ versija (kurai nav nepiecieÅ”ama VS2008/VS2010 izpildlaika bibliotÄku instalÄÅ”ana mÄrÄ·a sistÄmÄ) satur Å”Ädus failus:
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
PieredzÄjis administrators var pamanÄ«t, ka versijÄ 2.5 nav iekļauti faili intl/fbintl.dll un intl/fbintl.conf. TÄ ir taisnÄ«ba, jo gbak neizmanto savienojuma rakstzÄ«mju kopu un nepÄrvÄrÅ” datus starp rakstzÄ«mju kopÄm, taÄu Firebird 3.0 "saÅemÅ”anas" pusÄ Å”ie faili ir nepiecieÅ”ami, veidojot indeksus.
VietnÄ firebird.conf Firebird 3.0 ieteicams pievienot:
MaxUnflushedWrites = -1
MaxUnflushedWriteTime = -1
TÄpat ir vÄlams iestatÄ«t dažÄdas IpcName vÄrtÄ«bas 2.5 un 3.0.
IzvÄloties citu firebird.conf parametru vÄrtÄ«bas, mÄs rÄ«kojamies pÄc vienkÄrÅ”a apsvÄruma: datu pÄrsÅ«tÄ«Å”anas posmÄ gbak vienÄ procesÄ palaiž 2.5, bet otrÄ - 3.0, pÄc tam iziet 2.5, un 3.0 sÄk veidoÅ”anu. indeksi.
Lai paÄtrinÄtu indeksa veidoÅ”anas fÄzi 3.0 versijÄ, ir ieteicams palielinÄt TempCacheLimit parametra izmÄru lÄ«dz ~40% RAM (ja tas, protams, ir veltÄ«ts serveris).
PiemÄram, ja serverim ir 16 GB RAM, tad varat ievietot
TempCacheLimit=6G
Protams, Å”o vÄrtÄ«bu var iestatÄ«t tikai 64 bitu Firebird 3, jo jebkurÅ” 32 bitu process nevar pieŔķirt vairÄk par 2 gigabaitiem atmiÅas.
2.5 versijÄ Å”is parametrs nav jÄmaina - tas jebkurÄ gadÄ«jumÄ nevar bÅ«t lielÄks par 2 gigabaitiem, un tas neietekmÄ Ätrumu dublÄÅ”anas laikÄ.
Pirms operÄcijas veikÅ”anas ir jÄpÄrbauda, āāvai lapas keÅ”atmiÅa datu bÄzes galvenÄ ir iestatÄ«ta uz 0 (komanda gstat -h databasename
, skatiet rindiÅu Lapas buferi).
Ja keÅ”atmiÅa ir skaidri iestatÄ«ta datu bÄzes galvenÄ, tÄ ignorÄ vÄrtÄ«bas no faila firebird.conf (un datubÄzes.conf versijÄ 3.0), un, ja vÄrtÄ«bas nav pietiekami lielas, tas var izraisÄ«t pÄrmÄrÄ«gu atmiÅas patÄriÅu un apmaiÅu.
PÄc tam kopÄjiet failus mÄrÄ·a sistÄmÄ.
KonvertÄÅ”ana tiek veikta pÄc "sistÄmas" Firebird 2.5 pakalpojuma apturÄÅ”anas komandrindÄ ar paaugstinÄtÄm vietÄjÄ administratora tiesÄ«bÄm (piemÄrs):
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
Å ajÄ piemÄrÄ pÄdiÅÄs tiek izmantota slÄ«psvÄ«tra (derÄ«ga "unix stila"), un ar "cepure" (rakstzÄ«me "^") tiek izmantota jaunrindas rakstzÄ«me, kas ir noderÄ«ga, rakstot garas komandas. Opcija -st(atus) parÄdÄ«jÄs Firebird 2.5.8 un ļauj reÄ£istrÄt datus par gbak procesa darbÄ«bas laiku (sÄ«kÄku informÄciju skatiet dokumentÄcijÄ).
Linux
OperÄtÄjsistÄmÄ Linux Firebird 3 ir atkarÄ«gs no tommath bibliotÄkas. OperÄtÄjsistÄmÄ CentOS (RHEL) Ŕī bibliotÄka atrodas epel repozitorijÄ, bet Ubuntu (Debian) sistÄmas repozitorijÄ.
CentOS gadÄ«jumÄ vispirms ir jÄpievieno epel repozitorijs un tikai tad tas jÄdara
yum install libtommath
Ubuntu nav jÄiekļauj papildu krÄtuves, taÄu Ubuntu 16 un Ubuntu 18 instalÄ dažÄdas pakotÅu versijas - attiecÄ«gi libtommath0 un libtommath1.
Firebird 3.0 meklÄ tommath.so.0 un Ubuntu 18 papildus ir nepiecieÅ”ams izveidot saiti (symlink) no tommath.so.0 uz tommath.so.1. Lai to izdarÄ«tu, vispirms ir jÄatrod tommath.so.1.
MeklÄtais ceļŔ Ubuntu - /usr/lib/x86_64-linux-gnu/
, taÄu citi uz Debian balstÄ«ti izplatÄ«jumi var atŔķirties.
Otra problÄma ir saistÄ«ta ar faktu, ka lÄ«dz Firebird 3.0.1 ieskaitot nebija vienkÄrÅ”s veids, kÄ instalÄt divas dažÄdas servera versijas. MÄs neuzskatÄm iespÄju ākompilÄt no avota ar nepiecieÅ”amo prefiksuā tÄs relatÄ«vÄs sarežģītÄ«bas dÄļ.
Ir ieviesta Firebird 3.0.2 un jaunÄka versija
PieÅemot, ka sistÄmai ir pievienota tommath bibliotÄka un, ja nepiecieÅ”ams, saite uz tommath.so.0, jÅ«s varat instalÄt paÅ”reizÄjo (Ŕī rakstÄ«Å”anas brÄ«dÄ«) Firebird 3.0.4 izplatÄ«Å”anu, piemÄram, mapÄ /opt. /fb3:
./install.sh -path /opt/fb3
PÄc tam varat apturÄt Firebird sistÄmas pakalpojumu un sÄkt straumÄÅ”anas konvertÄÅ”anu.
Apturot Firebird, Åemiet vÄrÄ, ka Firebid 2.5 procesus klasiskajÄ režīmÄ parasti sÄk xinetd ā tÄpÄc jums ir jÄatspÄjo firebird pakalpojums xinetd vai pilnÄ«bÄ jÄaptur xinetd.
ProgrammÄ firebird.conf 3.0 operÄtÄjsistÄmÄ Linux nav jÄiestata MaxUnflushed parametri (tie darbojas tikai operÄtÄjsistÄmÄ Windows) un jÄmaina Firebird 2.5 iestatÄ«jumi.
Linux sistÄmÄ Firebird 2.5 lokÄlÄ (faila) piekļuve nav lÄ«dzvÄrtÄ«ga iegultajai versijai operÄtÄjsistÄmÄ Windows - 2.5 serveris darbosies gbak procesÄ (bez tÄ«kla daļas), bet piekļuves tiesÄ«bas tiks pÄrbaudÄ«tas pret lietotÄju bÄzi, kas nozÄ«mÄ, ka bÅ«s nepiecieÅ”ama ne tikai pieteikÅ”anÄs, bet arÄ« parole:
export ISC_USER=username ISC_PASSWORD=password
/opt/firebird/bin/gbak -b ā¦ Š±Š°Š·Š°25 stdout
|/opt/fb3/bin/gbak -c ā¦ stdin Š±Š°Š·Š°30
PÄc veiksmÄ«gas pÄrveidoÅ”anas vispirms ir jÄatinstalÄ "papildu" Firebird 3.0, pÄc tam "galvenais" Firebird 2.5 un pÄc tam jÄveic tÄ«ra Firebird 2.5 instalÄÅ”ana ā un tas ir vislabÄkais no parastÄ tar.gz instalÄÅ”anas programmas, nevis izmantojot krÄtuves, jo. versija krÄtuvÄs var atpalikt.
TÄpat pÄc datu bÄzes atjaunoÅ”anas operÄtÄjsistÄmÄ Linux un atkÄrtotas instalÄÅ”anas ir jÄpÄrbauda, āāvai jaunÄ datubÄze pieder firebird lietotÄjam.
Ja tas tÄ nav, tad tas bÅ«s jÄlabo.
chown firebird.firebird database
Kopsavilkums
Papildus laika un diska vietas taupÄ«Å”anai straumÄÅ”anas konvertÄÅ”anai ir vÄl viena svarÄ«ga priekÅ”rocÄ«ba - datu bÄzes konvertÄÅ”ana tiek veikta, neizdzÄÅ”ot esoÅ”o Firebird 2.5, kas ievÄrojami vienkÄrÅ”o atcelÅ”anu neveiksmÄ«gas konvertÄÅ”anas gadÄ«jumÄ (visbiežÄk vietas trÅ«kuma vai negaidÄ«tas pÄrstartÄÅ”anas dÄļ migrÄcijas laikÄ). process).
Laika ietaupÄ«jums ir saistÄ«ts ar faktu, ka "klasiskÄ" konversija ir "rezerves laiks" plus "atjaunoÅ”anas laiks". AtkopÅ”ana sastÄv no divÄm daļÄm: datu nolasÄ«Å”anas no dublÄjuma faila un indeksa izveides.
Izmantojot straumÄÅ”anas konvertÄÅ”anu, kopÄjais laiks tiek iegÅ«ts kÄ ārezerves laiks plus pieci lÄ«dz desmit procentiā un āindeksa izveides laiksā.
KonkrÄti rezultÄti ir atkarÄ«gi no datu bÄzes struktÅ«ras, taÄu vidÄji atkopÅ”anas laiks ir aptuveni divas reizes lielÄks par dublÄÅ”anas laiku. TÄpÄc, ja Åemam rezerves laiku kÄ vienÄ«bu, tad āklasiskÄ konversijaā ir trÄ«s laika vienÄ«bas, straumÄÅ”ana ir divas laika vienÄ«bas. TempCacheLimit palielinÄÅ”ana palÄ«dz vÄl vairÄk samazinÄt laiku.
KopumÄ straumÄÅ”anas konvertÄÅ”ana praksÄ Ä¼auj ietaupÄ«t 30ā40% no alternatÄ«vÄs dublÄÅ”anas un atjaunoÅ”anas laika.
JautÄjumi?
Visus jautÄjumus, lÅ«dzu, rakstiet komentÄros vai nosÅ«tiet metodikas autoram un Ŕī raksta lÄ«dzautoram - Vasilijam Sidorovam, iBase vadoÅ”ajam sistÄmu inženierim, bs at ibase ru.
AptaujÄ var piedalÄ«ties tikai reÄ£istrÄti lietotÄji.
KÄdu Firebird versiju jÅ«s izmantojat?
-
Firebird 3.x
-
Firebird 2.5
-
Firebird 2.1
-
Firebird 2.0, 1.5 vai 1.0
Nobalsoja 16 lietotÄji. 1 lietotÄjs atturÄjÄs.
Avots: www.habr.com