Canza yawo na bayanan bayanan Firebird 2.5 zuwa tsarin ODS12 (Firebird 3.0)

Kowane juzu'in Firebird yana da nasa nau'in tsarin tsarin faifan bayanai, O(n)D(isk)S (tsarin). Har zuwa nau'in 2.5 mai haɗawa, injin Firebird zai iya aiki tare da ODS na sigogin da suka gabata, wato, sabon sigar ta buɗe rumbun adana bayanai daga tsoffin juzu'ai kuma suna aiki cikin yanayin dacewa, amma injin Firebird 3.0 kawai yana aiki tare da bayanan bayanai a cikin sigar ODS ta kansa. 12.0.

Don ƙaura zuwa 3.0, dole ne a canza ma'ajin bayanai daga 2.5 zuwa sabon tsari ta hanyar madadin/mayarwa. Tabbas, muna ɗauka cewa an riga an shirya rumbun adana bayanai don canzawa - watau. An duba metadata da tambayoyi don dacewa da Firebird 3.0.

Idan kun bi tsarin daidaitaccen tsari, wannan yana nufin cewa kuna buƙatar yin wariyar ajiya akan sigar 2.5, sannan shigar da 3.0 kuma ku sake dawowa. Irin wannan hanya ana yarda da ita idan akwai isasshen lokaci, amma lokacin ƙaura manyan bayanai, ko kuma lokacin ƙaura dozin da yawa a lokaci guda, lokacin da lokaci ya kure, za ku iya amfani da juyawa mai gudana, wanda shine 30-40% sauri. Yadda ake yin wannan daidai (a ƙarƙashin Windows da Linux), karanta ƙarƙashin yanke.

Babban ra'ayin shi ne cewa za mu yi amfani da bututu don hanzarta abubuwa:

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

Gbak daga 2.5 yana samar da madadin a cikin tsarin layi kuma ya aika shi zuwa stdout, wanda nan da nan ya ɗauki gbak daga 3.0 ta stdin kuma ya haifar da sabon bayanai.

Wajibi ne a tsara irin wannan bututun tare da hanyar shiga cikin gida (fayil), tun da damar hanyar sadarwa (har ma ta hanyar localhost) zai rage saurin aiki.

Mun bincika cikakkun bayanai don Windows da Linux a ƙasa.

Windows

A cikin yanayin Windows, hanya mafi sauƙi ita ce yin ginin Firebird gabaɗaya. Don wannan muna ɗauka Zazzage kayan tarihin Firebird 2.5, sake suna fbemded.dll zuwa fbclient.dll, ƙara gbak.exe da (na zaɓi) isql.exe utilities daga "na yau da kullum" 2.5 Rumbun.

Firebird 3.0 yana amfani taro guda ɗaya kuma baya buƙatar wani gyara.

Mafi ƙarancin sigar (wanda baya buƙatar shigar da ɗakunan karatu na lokaci-lokaci na VS2008/VS2010 akan tsarin manufa) ya ƙunshi fayiloli masu zuwa:

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

Gogaggen mai gudanarwa na iya lura cewa 2.5 bai haɗa da fayilolin intl/fbintl.dll da intl/fbintl.conf ba. Wannan gaskiya ne, tunda gbak baya amfani da charset na haɗin gwiwa kuma baya canza bayanai tsakanin charsets, amma a gefen “karɓa” na Firebird 3.0, waɗannan fayilolin suna da mahimmanci yayin ƙirƙirar firikwensin.

A cikin firebird.conf Firebird 3.0 ana bada shawarar ƙara:

MaxUnflushedWrites = -1
MaxUnflushedWriteTime = -1

Hakanan, yana da kyawawa don saita ƙimar IpcName daban-daban don 2.5 da 3.0.

Lokacin zabar ƙimar wasu sigogi na firebird.conf, muna ci gaba daga la'akari mai sauƙi: a matakin watsa bayanai, gbak yana gudanar da 2.5 a cikin tsari ɗaya, kuma 3.0 a ɗayan, sannan 2.5 ya fita, kuma 3.0 ya fara gini. fihirisa.

Don hanzarta tsarin ginin index a cikin 3.0, ana ba da shawarar ƙara girman ma'aunin TempCacheLimit zuwa ~ 40% RAM (idan uwar garken sadaukarwa ce, ba shakka).

Misali, idan uwar garken yana da 16 GB na RAM, to zaku iya sakawa

TempCacheLimit=6G

Tabbas, ana iya saita wannan ƙimar don 64-bit Firebird 3, tunda kowane tsari na 32-bit ba zai iya ware fiye da gigabytes 2 na ƙwaƙwalwar ajiya ba.

A cikin 2.5, wannan siga ba ya buƙatar canzawa - ba zai iya zama fiye da 2 gigabytes ba, kuma ba ya shafar saurin lokacin ajiya.

Kafin aiwatar da aikin, kuna buƙatar bincika cewa cache ɗin shafi a cikin taken bayanan an saita zuwa 0 (umurni gstat -h databasename, duba layin buffers Page).

Idan an saita cache a sarari a cikin bayanan bayanan, to, yana ƙetare ƙimar daga firebird.conf (da databases.conf a cikin 3.0), kuma idan ba a cika manyan ƙima ba, yana iya haifar da yawan amfani da ƙwaƙwalwar ajiya da musanyawa.

Na gaba, kwafi fayilolin zuwa tsarin manufa.

Ana yin jujjuyawar bayan dakatar da sabis na "tsarin" Firebird 2.5, akan layin umarni tare da haƙƙin haƙƙin mai gudanarwa na gida (misali):

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

Wannan misalin yana amfani da "slash na gaba" a cikin ƙididdiga (mai inganci "unix-style"), da kuma "hat" (halayen "^") ya tsere wa sabon layi, wanda ke da amfani yayin buga dogayen umarni. Zaɓin -st (atus) ya bayyana a cikin Firebird 2.5.8 kuma yana ba ku damar shiga bayanai game da lokacin da tsarin gbak ke gudana (don cikakkun bayanai, duba takaddun).

Linux

A Linux Firebird 3 ya dogara da ɗakin karatu na tommath. Akan CentOS (RHEL) wannan ɗakin karatu yana cikin ma'ajiyar epel, akan Ubuntu (Debian) a cikin ma'ajiyar tsarin.

Don CentOS, dole ne ka fara haɗa ma'ajiyar epel sannan ka yi

yum install libtommath

Ubuntu baya buƙatar haɗa ƙarin ma'ajiyar ajiya, amma Ubuntu 16 da Ubuntu 18 suna shigar da nau'ikan fakiti daban-daban - libtommath0 da libtommath1, bi da bi.

Firebird 3.0 yana neman tommath.so.0 kuma don Ubuntu 18 kuma ana buƙatar ƙirƙirar hanyar haɗi (symlink) daga tommath.so.0 zuwa tommath.so.1. Don yin wannan, da farko kuna buƙatar nemo tommath.so.1.

Hanyar da aka nema a cikin Ubuntu - /usr/lib/x86_64-linux-gnu/, amma sauran rabawa na tushen Debian na iya bambanta.

Matsala ta biyu tana da alaƙa da gaskiyar cewa har zuwa kuma haɗa da Firebird 3.0.1, babu wata hanya mai sauƙi don shigar da nau'ikan sabar guda biyu daban-daban. Ba ma la'akari da zaɓin "a tattara daga tushe tare da prefix ɗin da ake buƙata" saboda ƙayyadaddun ƙayyadaddun sa.

Don Firebird 3.0.2 da mafi girma aiwatarwa gina tare da --enable-binreloc da zaɓin mai sakawa daban (-hanyar hanya).

Da ɗauka cewa ɗakin karatu na tommath da kuma, idan ya cancanta, alamar alamar tommath.so.0 a cikin tsarin, za ka iya shigar da na yanzu (a lokacin wannan rubutun) Firebird 3.0.4 rarraba a, misali, /opt. /fb3:

./install.sh -path /opt/fb3

Bayan haka, zaku iya dakatar da sabis ɗin tsarin Firebird kuma fara jujjuyawa.

Lokacin dakatar da Firebird, ku tuna cewa ayyukan Firebid 2.5 a cikin yanayin Classic yawanci ana farawa ta hanyar xinetd - don haka kuna buƙatar ko dai musaki sabis ɗin firebird don xinetd ko dakatar da xinetd gaba ɗaya.

A cikin firebird.conf don 3.0 akan Linux, ba kwa buƙatar saita sigogin MaxUnflushed (suna aiki akan Windows kawai) kuma canza saitunan Firebird 2.5.

A cikin Linux, samun damar shiga cikin gida (fayil) na Firebird 2.5 baya daidai da sigar da aka haɗa a ƙarƙashin Windows - uwar garken 2.5 zai gudana a cikin tsarin gbak (ba tare da ɓangaren cibiyar sadarwa ba), amma za a bincika haƙƙin shiga akan tushen mai amfani, wanda ke nufin cewa ba kawai shiga ba, amma kuma kalmar sirri za a buƙaci:

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

Bayan nasarar nasarar juyawa, dole ne ku fara cire "ƙarin" Firebird 3.0, sannan "babban" Firebird 2.5, sannan ku aiwatar da tsaftataccen shigarwa na Firebird 2.5 - kuma yana da kyau daga mai saka tar.gz na yau da kullun, kuma ba ta hanyar wuraren ajiya, saboda. sigar da ke cikin ma'ajiya na iya koma baya.

Hakanan, bayan maido da bayanan akan Linux kuma an sake shigar da shi, kuna buƙatar bincika cewa sabon bayanan mallakar mai amfani da firebird ne.

Idan kuwa ba haka ba, to zai bukaci gyara.

chown firebird.firebird database

Sakamakon

Baya ga adana lokaci da sararin faifai, canjin yawo yana da wata muhimmiyar fa'ida - ana yin canjin bayanai ba tare da share Firebird 2.5 na yanzu ba, wanda ke sauƙaƙa jujjuyawa sosai a yanayin jujjuyawar da bai yi nasara ba (mafi yawancin lokuta saboda rashin sarari ko sake yi ba zato ba tsammani yayin ƙaura. tsari).

Ajiye lokaci saboda gaskiyar cewa "classic" juzu'i shine "lokacin ajiya" da "maida lokaci". Farfadowa ya ƙunshi sassa biyu: karanta bayanai daga fayil ɗin ajiya da gina fihirisa.

Tare da juyawa yawo, ana samun jimlar lokacin azaman "lokacin wariyar ajiya da kashi biyar zuwa goma" da "lokacin ginin ƙididdiga".

Takamammen sakamako ya dogara da tsarin ma'ajin bayanai, amma a matsakaita, lokacin dawo da kusan sau biyu na lokacin ajiyar bayanai. Don haka, idan muka ɗauki lokacin ajiyewa a matsayin raka'a, to "classic Converter" shine raka'a uku na lokaci, yawo raka'a biyu ne na lokaci. Ƙara TempCacheLimit yana taimakawa don ƙara rage lokaci.

Gabaɗaya, canjin yawo a aikace yana ba ku damar adana 30-40% na lokacin madadin madadin da maidowa.

Tambayoyi?

Da fatan za a rubuta duk tambayoyi a cikin sharhi, ko aika su zuwa ga marubucin hanyoyin da mawallafin wannan labarin - Vasily Sidorov, Injiniyan Jagoran Jagoran iBase, a bs at ibase ru.

Masu amfani da rajista kawai za su iya shiga cikin binciken. Shigadon Allah.

Wane nau'in Firebird kuke amfani da shi?

  • Firebird 3.x

  • Firebird 2.5

  • Firebird 2.1

  • Firebird 2.0, 1.5 ko 1.0

Masu amfani 16 sun kada kuri'a. 1 mai amfani ya ƙi.

source: www.habr.com

Add a comment