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.

Если следовать стандартному подходу, это означает, что нужно произвести бэкап на версии 2.5, затем установить 3.0 и сделать рестор. Такая процедура приемлема, если есть достаточно времени, но при миграции больших баз данных, или при одновременной миграции нескольких десятков БД, когда время поджимает, можно воспользоваться поточной конвертацией, которая на 30-40% быстрее. Как именно это сделать (под Windows ndi pansi Linux), читайте под катом.

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.

Ниже мы рассматриваем детали для Windows и Linux.

Windows

M'malo mwa Windows проще всего сделать полностью автономную сборку Firebird. Для этого берём 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 зависит от библиотеки tommath. В CentOS (RHEL) эта библиотека находится в epel-репозитории, в Ubuntu (Debian) в – системном.

chifukwa CentOS требуется сначала подключить epel-репозиторий и только потом делать

yum install libtommath

Ubuntu не нужно подключать дополнительные репозитории, но в Ubuntu 16 ndi mkati Ubuntu 18 устанавливаются разные версии пакетов – libtommath0 и libtommath1, соответственно.

Firebird 3.0 ищет tommath.so.0 и для Ubuntu 18 дополнительно требуется создать ссылку (symlink) c tommath.so.0 на tommath.so.1. Для этого сначала надо найти tommath.so.1.

Искомый путь в Ubuntu - /usr/lib/x86_64-linux-gnu/, но в других Debian-based дистрибутивах может быть иначе.

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.

В firebird.conf для 3.0 на Linux не нужно задавать MaxUnflushed-параметры (они работают только на Windows) и менять настройки Firebird 2.5.

В линуксе локальный (файловый) доступ Firebird 2.5 не эквивалентен embeded-варианту под Windows – сервер 2.5 будет работать в процессе gbak (без сетевой части), но права доступа будут проверяться по базе пользователей, а значит, потребуется не только логин, но и пароль:

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.

Также, после рестора БД на Linux и переустановки надо проверить, чтобы новая БД имела владельцем пользователя firebird.

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

Gulani kuchititsa kodalirika kwamasamba okhala ndi chitetezo cha DDoS, ma seva a VPS VDS Gulani malo odalirika osungira mawebusayiti okhala ndi chitetezo cha DDoS, ma seva a VPS VDS | ProHoster