Iyipada ṣiṣanwọle ti awọn data data Firebird 2.5 si ọna kika ODS12 (Firebird 3.0)

Ẹya kọọkan ti Firebird ni ẹya tirẹ ti ọna kika disiki data data, O (n) D (isk) S (igbekalẹ). Titi di ẹya 2.5 inklusive, ẹrọ Firebird le ṣiṣẹ pẹlu ODS ti awọn ẹya ti tẹlẹ, iyẹn ni, awọn apoti isura infomesonu lati awọn ẹya atijọ ti ṣii nipasẹ ẹya tuntun ati ṣiṣẹ ni ipo ibamu, ṣugbọn ẹrọ Firebird 3.0 nikan ṣiṣẹ pẹlu awọn apoti isura infomesonu ni ẹya ODS tirẹ tirẹ. 12.0.

Lati jade lọ si 3.0, ibi ipamọ data lati 2.5 gbọdọ wa ni iyipada si ọna kika titun nipasẹ afẹyinti / mu pada. Nitoribẹẹ, a ro pe data ti pese tẹlẹ fun iyipada - i.e. metadata ati awọn ibeere ti ṣayẹwo fun ibamu pẹlu Firebird 3.0.

Ti o ba tẹle ọna boṣewa, eyi tumọ si pe o nilo lati ṣe afẹyinti lori ẹya 2.5, lẹhinna fi 3.0 sori ẹrọ ki o mu pada. Iru ilana bẹ jẹ itẹwọgba ti akoko ba wa, ṣugbọn nigbati o ba nṣipo awọn apoti isura infomesonu nla, tabi nigbati o ba nṣipo ọpọlọpọ awọn apoti isura infomesonu mejila ni akoko kanna, nigbati akoko ba pari, o le lo iyipada ṣiṣanwọle, eyiti o jẹ 30-40% yiyara. Bii o ṣe le ṣe deede (labẹ Windows ati labẹ Linux), ka labẹ gige.

Ero gbogbogbo ni pe a yoo lo opo gigun ti epo lati yara awọn nkan:

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

Gbak lati 2.5 ṣe ipilẹṣẹ afẹyinti ni ọna kika laini ati firanṣẹ si stdout, eyiti o mu gbak lẹsẹkẹsẹ lati 3.0 nipasẹ stdin ati ṣẹda data tuntun kan.

O jẹ dandan lati ṣeto iru opo gigun ti epo pẹlu ọna iwọle agbegbe (faili), nitori iraye si nẹtiwọọki (paapaa nipasẹ localhost) yoo fa fifalẹ ilana naa ni pataki.

A lọ lori awọn alaye fun Windows ati Lainos ni isalẹ.

Windows

Ninu ọran ti Windows, ọna ti o rọrun julọ ni lati ṣe agbero imurasilẹ ti Firebird patapata. Fun eyi a gba ifibọ-pamosi Firebird 2.5, tun lorukọ fbemded.dll si fbclient.dll, ṣafikun gbak.exe ati (iyan) awọn ohun elo isql.exe lati “deede” 2.5 pamosi.

Firebird 3.0 ipawo nikan ijọ ati pe ko beere eyikeyi iyipada.

Ẹya ti o kere julọ (eyiti ko nilo fifi sori ẹrọ ti awọn ile-ikawe asiko asiko VS2008/VS2010 lori eto ibi-afẹde) ni awọn faili wọnyi ninu:

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

Alakoso ti o ni iriri le ṣe akiyesi pe 2.5 ko pẹlu intl/fbintl.dll ati intl/fbintl.conf awọn faili. Eyi jẹ otitọ, nitori gbak ko lo charset asopọ ati pe ko ṣe iyipada data laarin awọn charsets, ṣugbọn ni ẹgbẹ “gbigba” ti Firebird 3.0, awọn faili wọnyi jẹ pataki nigbati o ṣẹda awọn atọka.

Ni firebird.conf Firebird 3.0 ni iṣeduro lati ṣafikun:

MaxUnflushedWrites = -1
MaxUnflushedWriteTime = -1

Paapaa, o jẹ iwunilori lati ṣeto awọn iye IpcName oriṣiriṣi fun 2.5 ati 3.0.

Nigbati o ba yan awọn iye ti awọn paramita miiran ti firebird.conf, a tẹsiwaju lati inu ero ti o rọrun: ni ipele gbigbe data, gbak nṣiṣẹ 2.5 ninu ilana kan, ati 3.0 ni ekeji, lẹhinna 2.5 jade, ati 3.0 bẹrẹ kikọ. awọn atọka.

Lati mu ipele ipele ile atọka ni iyara ni 3.0, a ṣe iṣeduro lati mu iwọn iwọn paramita TempCacheLimit pọ si ~ 40% Ramu (ti o ba jẹ olupin igbẹhin, dajudaju).

Fun apẹẹrẹ, ti olupin ba ni 16 GB ti Ramu, lẹhinna o le fi sii

TempCacheLimit=6G

Nitoribẹẹ, iye yii le ṣeto nikan fun 64-bit Firebird 3, nitori eyikeyi ilana 32-bit ko le pin diẹ sii ju 2 gigabytes ti iranti.

Ni 2.5, paramita yii ko nilo lati yipada - ko le jẹ diẹ sii ju 2 gigabytes lọnakọna, ati pe ko ni ipa iyara lakoko afẹyinti.

Ṣaaju ṣiṣe iṣẹ naa, o nilo lati ṣayẹwo pe kaṣe oju-iwe ninu akọsori data ti ṣeto si 0 (aṣẹ) gstat -h databasename, wo laini awọn buffers Page).

Ti a ba ṣeto kaṣe naa ni gbangba ninu akọsori data, lẹhinna o bori awọn iye lati firebird.conf (ati databases.conf ni 3.0), ati ni ọran ti awọn iye ti ko peye, o le ja si agbara iranti ti o pọ julọ ati yiyipada.

Nigbamii, daakọ awọn faili si eto ibi-afẹde.

Iyipada naa ni a ṣe lẹhin didaduro iṣẹ “eto” Firebird 2.5, lori laini aṣẹ pẹlu awọn ẹtọ giga si alabojuto agbegbe (apẹẹrẹ):

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

Apẹẹrẹ yii nlo “slash siwaju” ninu awọn agbasọ (wulo “ara “unix-style”), ati “ijanilaya” (“^” ihuwasi) yọ kuro ninu ohun kikọ tuntun, eyiti o wulo nigbati o ba tẹ awọn aṣẹ gigun. Aṣayan -st (atus) han ni Firebird 2.5.8 ati gba ọ laaye lati wọle data nipa akoko ti ilana gbak nṣiṣẹ (fun awọn alaye, wo iwe).

Linux

Lori Linux Firebird 3 da lori ile-ikawe tommath. Lori CentOS (RHEL) ile-ikawe yii wa ni ibi ipamọ epel, lori Ubuntu (Debian) ninu ibi ipamọ eto.

Fun CentOS, o gbọdọ kọkọ sopọ ibi ipamọ epel ati lẹhinna ṣe nikan

yum install libtommath

Ubuntu ko nilo lati ni awọn ibi ipamọ afikun, ṣugbọn Ubuntu 16 ati Ubuntu 18 fi awọn ẹya oriṣiriṣi ti awọn idii ṣe - libtommath0 ati libtommath1, ni atele.

Firebird 3.0 n wa tommath.so.0 ati fun Ubuntu 18 o tun nilo lati ṣẹda ọna asopọ (symlink) lati tommath.so.0 si tommath.so.1. Lati ṣe eyi, o nilo lati wa tommath.so.1 akọkọ.

Wa ọna ni Ubuntu - /usr/lib/x86_64-linux-gnu/, ṣugbọn awọn pinpin orisun Debian miiran le yatọ.

Iṣoro keji jẹ ibatan si otitọ pe titi de ati pẹlu Firebird 3.0.1, ko si ọna ti o rọrun lati fi awọn ẹya olupin oriṣiriṣi meji sori ẹrọ. A ko gbero aṣayan “akojọ lati orisun pẹlu asọtẹlẹ ti o nilo” nitori idiju ibatan rẹ.

Fun Firebird 3.0.2 ati ti o ga muse kọ pẹlu --enable-binreloc ati ki o kan lọtọ insitola aṣayan (-ona ona).

Ti a ro pe ile-ikawe tommath ati, ti o ba jẹ dandan, aami kan fun tommath.so.0 ti ṣafikun si eto naa, o le fi lọwọlọwọ (ni akoko kikọ yii) Firebird 3.0.4 pinpin ni, fun apẹẹrẹ, /opt. /fb3:

./install.sh -path /opt/fb3

Lẹhin iyẹn, o le da iṣẹ eto Firebird duro ki o bẹrẹ iyipada ṣiṣanwọle.

Nigbati o ba da Firebird duro, ranti pe awọn ilana Firebid 2.5 ni ipo Alailẹgbẹ nigbagbogbo bẹrẹ nipasẹ xinetd - nitorinaa o nilo lati pa iṣẹ firebird kuro fun xinetd tabi da xinetd duro patapata.

Ni firebird.conf fun 3.0 lori Lainos, iwọ ko nilo lati ṣeto awọn ipele MaxUnflushed (wọn nikan ṣiṣẹ lori Windows) ati yi awọn eto Firebird 2.5 pada.

Ni Lainos, iraye si agbegbe (faili) ti Firebird 2.5 ko ṣe deede si ẹya ti a fi sii labẹ Windows - olupin 2.5 yoo ṣiṣẹ ni ilana gbak (laisi apakan nẹtiwọọki), ṣugbọn awọn ẹtọ wiwọle yoo ṣayẹwo si ipilẹ olumulo, eyiti o tumọ si. pe kii ṣe iwọle nikan, ṣugbọn ọrọ igbaniwọle tun yoo nilo:

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

Lẹhin iyipada aṣeyọri, o gbọdọ kọkọ yọ “afikun” Firebird 3.0 kuro, lẹhinna “akọkọ” Firebird 2.5, ati lẹhin iyẹn ṣe fifi sori ẹrọ mimọ ti Firebird 2.5 - ati pe o dara julọ lati insitola tar.gz deede, kii ṣe nipasẹ awọn ibi ipamọ, nitori. awọn ti ikede ninu awọn ibi ipamọ le aisun sile.

Pẹlupẹlu, lẹhin mimu-pada sipo data lori Lainos ati fifi sori ẹrọ, o nilo lati ṣayẹwo pe data tuntun jẹ ohun ini nipasẹ olumulo firebird.

Ti eyi ko ba jẹ ọran, lẹhinna o yoo nilo lati ṣe atunṣe.

chown firebird.firebird database

Abajade

Ni afikun si fifipamọ akoko ati aaye disiki, iyipada ṣiṣanwọle ni anfani pataki miiran - iyipada data jẹ ṣe laisi piparẹ Firebird 2.5 ti o wa tẹlẹ, eyiti o jẹ irọrun simplback pupọ ni ọran ti iyipada ti ko ni aṣeyọri (julọ nigbagbogbo nitori aini aaye tabi atunbere airotẹlẹ lakoko ijira ilana).

Nfi akoko pamọ jẹ nitori otitọ pe iyipada "Ayebaye" jẹ "akoko afẹyinti" pẹlu "akoko imupadabọ". Imularada ni awọn ẹya meji: kika data lati faili afẹyinti ati kikọ atọka kan.

Pẹlu iyipada ṣiṣanwọle, akoko lapapọ ni a gba bi “akoko afẹyinti pẹlu marun si mẹwa mẹwa” ati “akoko kikọ atọka”.

Awọn abajade pato da lori eto data data, ṣugbọn ni apapọ, akoko imularada jẹ isunmọ lẹmeji akoko afẹyinti. Nitorinaa, ti a ba gba akoko afẹyinti bi ẹyọkan, lẹhinna “iyipada Ayebaye” jẹ awọn iwọn mẹta ti akoko, ṣiṣanwọle jẹ awọn iwọn meji ti akoko. Alekun TempCacheLimit ṣe iranlọwọ lati dinku akoko siwaju sii.

Ni gbogbogbo, iyipada ṣiṣanwọle ni iṣe n gba ọ laaye lati fipamọ 30-40% ti akoko ti afẹyinti miiran ati mimu-pada sipo.

Awọn ibeere?

Jọwọ kọ gbogbo awọn ibeere ninu awọn asọye, tabi fi wọn ranṣẹ si onkọwe ti ilana ati akọwe-iwe ti nkan yii - Vasily Sidorov, IBase Leading System Engineer, ni bs at ibase ru.

Awọn olumulo ti o forukọsilẹ nikan le kopa ninu iwadi naa. wọle, Jowo.

Ẹya ti Firebird wo ni o nlo?

  • Firebird 3.x

  • Firebird 2.5

  • Firebird 2.1

  • Firebird 2.0, 1.5 tabi 1.0

16 olumulo dibo. 1 olumulo abstained.

orisun: www.habr.com

Fi ọrọìwòye kun