Te whakawhiti rerenga o nga papaa raraunga Firebird 2.5 ki te whakatakotoranga ODS12 (Firebird 3.0)

Kei ia putanga o Firebird tana ake putanga o te whakatakotoranga o te whakatakotoranga kōpae raraunga, O(n)D(isk)S(hanganga). Tae atu ki te putanga 2.5 whakauru, ka taea e te miihini Firebird te mahi tahi me te ODS o nga putanga o mua, ara, ko nga papaa raraunga mai i nga putanga tawhito i whakatuwherahia e te putanga hou me te mahi i roto i te aratau hototahi, engari ko te Firebird 3.0 engine anake te mahi me nga papaarangi i roto i tana ake putanga ODS 12.0.

Hei heke ki te 3.0, me tahuri te papaa raraunga mai i te 2.5 ki te whakatakotoranga hou ma te tārua/whakaora. Ko te tikanga, ka whakaarohia e matou ko te papaarangi kua rite i mua mo te hurihanga - i.e. kua tirohia nga metadata me nga patai mo te hototahi ki te Firebird 3.0.

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

Ko te whakaaro whanui ka whakamahia e matou he paipa hei tere ake:

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

Ko te Gbak mai i te 2.5 ka whakaputa i te taapiri i roto i te whakatakotoranga raina ka tukuna ki te stdout, ka kohia tonutia te gbak mai i te 3.0 ma te stdin me te hanga i tetahi papaa raraunga hou.

He mea tika ki te whakarite i taua pipeline me te tikanga uru (kōnae) o te rohe, na te mea ko te uru ki te whatunga (ara ma te localhost) ka tino whakaroa te mahi.

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

Windows

Tuhinga o mua Windows проще всего сделать полностью автономную сборку Firebird. Для этого берём tāmau-pūranga Firebird 2.5, whakaingoa ano te fbemded.dll ki te fbclient.dll, taapirihia te gbak.exe me te (mehemea ka taea) nga taputapu isql.exe mai i te puranga "noa" 2.5.

Ka whakamahia e Firebird 3.0 hui kotahi a kaore e hiahiatia he whakarereketanga.

Ko te putanga iti rawa (kaore e hiahiatia kia whakauruhia nga whare pukapuka VS2008/VS2010 i runga i te punaha whaainga) kei roto nga konae e whai ake nei:

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

Ka kite pea tetahi kaiwhakahaere mohio ko te 2.5 karekau he whakauru i nga konae intl/fbintl.dll me intl/fbintl.conf. He pono tenei, na te mea kaore a gbak e whakamahi i te hononga hono me te kore e huri i nga raraunga i waenga i nga tohu, engari i runga i te taha "whiwhi" o Firebird 3.0, ka hiahiatia enei konae i te wa e hanga ana nga tohu.

I roto i te firebird.conf E taunaki ana a Firebird 3.0 ki te taapiri:

MaxUnflushedWrites = -1
MaxUnflushedWriteTime = -1

Ano, he mea pai ki te whakarite i nga uara IpcName rereke mo te 2.5 me te 3.0.

I te wa e whiriwhiri ana i nga uara o etahi atu tawhā o firebird.conf, ka puta mai i te whakaaro ngawari: i te wa o te whakawhitinga raraunga, ka rere te gbak i te 2.5 i roto i tetahi tukanga, me te 3.0 i tetahi atu, ka 2.5 ka puta, ka timata a 3.0 ki te hanga. taupū.

Hei tere ake i te wahanga hanga taupū i roto i te 3.0, e taunaki ana kia whakanuia te rahi o te tawhā TempCacheLimit ki ~40% RAM (mehemea he tūmau whakatapua, o te akoranga).

Hei tauira, ki te he 16 GB o RAM te tūmau, ka taea e koe te hoatu

TempCacheLimit=6G

Ae ra, ka taea anake te whakarite i tenei uara mo te 64-bit Firebird 3, na te mea kaore e taea e tetahi mahinga 32-bit te toha neke atu i te 2 gigabytes o te mahara.

I roto i te 2.5, kaore e tika kia whakarereketia tenei tawhā - kaore e neke ake i te 2 gigabytes, kaore hoki e pa ki te tere i te wa o te taapiri.

I mua i te mahi i te mahi, me tirotiro koe kua tautuhia te keteroki wharangi kei roto i te pane patengi raraunga ki te 0 (whakahau gstat -h databasename, kite i te rarangi parepare Whārangi).

Mēnā kua āta whakatakotohia te keteroki ki te pane pātengi raraunga, kātahi ka takahia e ia ngā uara mai i firebird.conf (me databases.conf i te 3.0), a, ki te kore e tika te rahi o te uara, ka nui rawa te kohi mahara me te whakawhiti.

Muri iho, kape nga konae ki te punaha whaainga.

Ko te huringa ka mahia i muri i te whakamutu i te ratonga "pūnaha" Firebird 2.5, i runga i te raina whakahau me nga mana teitei ki te kaiwhakahaere o te rohe (tauira):

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

Ko tenei tauira ka whakamahi i te "riitaha whakamua" i roto i nga korukī (tika "unix-style"), me te "potae" (te "^" pūāhua) ka mawhiti i te pūāhua raina hou, e whai hua ana ina patohia nga whakahau roa. Ko te kōwhiringa -st(atus) i puta i roto i te Firebird 2.5.8 ka taea e koe te takiuru i nga raraunga mo te wa e rere ana te tukanga gbak (mo nga taipitopito, tirohia te tuhinga).

Linux

I roto i te Linux Firebird 3 зависит от библиотеки tommath. В CentOS (RHEL) эта библиотека находится в epel-репозитории, в Ubuntu (Debian) в – системном.

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

yum install libtommath

Ubuntu не нужно подключать дополнительные репозитории, но в Ubuntu 16 и в 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 дистрибутивах может быть иначе.

Ko te raruraru tuarua e pa ana ki te meka tae atu ki a Firebird 3.0.1, kaore he huarahi ngawari ki te whakauru i nga putanga tūmau rereke e rua. Kaore matou e whakaaro ki te "whakahiato mai i te puna me te tohu tuatahi" na tona uaua.

Mo te Firebird 3.0.2 me teitei ake kua whakatinanahia hanga ki te --enable-binreloc me te kōwhiringa pūtāuta motuhake (-ara ara).

Ki te whakaaro ko te whare pukapuka tommath me, mehemea e tika ana, he hononga hono mo tommath.so.0 kua taapirihia ki te punaha, ka taea e koe te whakauru i te waa (i te wa e tuhi ana) Firebird 3.0.4 tohatoha ki roto, hei tauira, /opt /fb3:

./install.sh -path /opt/fb3

I muri i tera, ka taea e koe te aukati i te ratonga punaha Firebird ka tiimata te whakawhiti whakawhiti.

Ka mutu te Firebird, kia maumahara ko nga tukanga Firebid 2.5 i roto i te aratau Tauhira ka timatahia e te xinetd - na me whakakorehia e koe te ratonga firebird mo te xinetd, me mutu ranei te xinetd.

В 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

I muri i te huringa angitu, me tango tuatahi koe i te "taapiri" Firebird 3.0, katahi te "matua" Firebird 2.5, a muri iho ka mahi i te whakaurunga ma o Firebird 2.5 - a he pai rawa atu mai i te kaiwhakaputa tar.gz auau, kaua ma te whare putunga, no te mea. ko te putanga kei roto i nga putunga kei muri pea.

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

Ki te kore e penei, katahi ka tika kia whakatikaina.

chown firebird.firebird database

Ko te hua

I tua atu i te penapena wa me te mokowā kōpae, he painga nui ano te whakawhiti rerenga korero - ka mahia te hurihanga raraunga me te kore e mukua te Firebird 2.5, e tino whakangwarihia ai te hokinga ki te kore e angitu te hurihanga (te nuinga na te kore o te waahi, te whakaara ano ranei i te wa o te hekenga. tukanga).

Ko te wa whakaora he tika ki te meka e te "matarohia" faafariuraa ko "wā pūrua" me te "wā whakaora". E rua nga wahanga o te whakaoranga: te panui raraunga mai i te konae taapiri me te hanga taurangi.

Ma te hurihanga roma, ka riro te wa katoa hei "wa taapiri me te rima ki te tekau ōrau" me te "wa hanga taupū".

Ko nga hua motuhake e whakawhirinaki ana ki te hanganga o te paataka raraunga, engari i te toharite, ko te wa whakaora he tata ki te rua o te wa taapiri. No reira, ki te tango tatou i te wa taapiri hei waeine, katahi ko te "huringa matarohia" e toru nga waahanga o te wa, ko te roma e rua nga waahanga o te wa. Ko te whakanui ake i te TempCacheLimit ka awhina ki te whakaiti ake i te waa.

I te nuinga o te waa, ka taea e koe te penapena i te 30-40% o te waa o te taapiri me te whakaora.

Nga Patai?

Tena koa tuhia nga paatai ​​​​katoa i roto i nga korero, ka tukuna atu ranei ki te kaituhi o te tikanga me te kaituhi o tenei tuhinga - Vasily Sidorov, iBase Leading System Engineer, i bs at ibase ru.

Ko nga kaiwhakamahi kua rehita anake ka uru ki te rangahau. Waitohu maitēnā.

He aha te putanga o Firebird e whakamahia ana e koe?

  • Manu ahi 3.x

  • Manu ahi 2.5

  • Manu ahi 2.1

  • Firebird 2.0, 1.5, 1.0 ranei

16 nga kaiwhakamahi i pooti. 1 te kaiwhakamahi i aukati.

Source: will.com

Hokona te manaaki pono mo nga waahi me te tiaki DDoS, nga kaiwhakarato VPS VDS 🔥 Hokona he manaaki paetukutuku pono me te tiakitanga DDoS, ngā tūmau VPS VDS | ProHoster