ʻO ka hoʻololi ʻana ma ka laina o nā waihona ʻikepili Firebird 2.5 i ka format ODS12 (Firebird 3.0)

Loaʻa i kēlā me kēia mana o Firebird kona mana ponoʻī o ke ʻano hoʻolālā disk database, O(n)D(isk)S(tructure). A hiki i ka version 2.5 inclusive, hiki i ka mīkini Firebird ke hana me ODS o nā mana o mua, ʻo ia hoʻi, ua wehe ʻia nā ʻikepili mai nā mana kahiko e ka mana hou a hana ʻia ma ke ʻano hoʻohālikelike, akā hana wale ka ʻenekini Firebird 3.0 me nā ʻikepili i kāna mana ODS ponoʻī. 12.0.

No ka neʻe ʻana i ka 3.0, pono e hoʻololi ʻia ka waihona mai 2.5 i ke ʻano hou ma o ka hoʻihoʻi ʻana. ʻOiaʻiʻo, ke manaʻo nei mākou ua hoʻomākaukau mua ʻia ka waihona no ka hoʻololi ʻana - i.e. Ua nānā ʻia nā metadata a me nā nīnau no ka hoʻohālikelike ʻana me Firebird 3.0.

Inā ʻoe e hahai i ke ala maʻamau, ʻo ia ka mea e pono ʻoe e hana i kahi hoʻihoʻi ma ka mana 2.5, a laila e hoʻokomo iā 3.0 a hana i kahi hoʻihoʻi. ʻO ia kaʻina hana e ʻae ʻia inā lawa ka manawa, akā i ka neʻe ʻana i nā ʻikepili nui, a i ka wā e neʻe ai i kekahi mau kakini ʻikepili i ka manawa like, i ka wā e pau ai ka manawa, hiki iā ʻoe ke hoʻohana i ka hoʻololi streaming, ʻo ia ka 30-40% wikiwiki. Pehea e hana ai i kēia (ma lalo o Windows a ma lalo o Linux), heluhelu ma lalo o ka ʻoki.

ʻO ka manaʻo maʻamau e hoʻohana mākou i kahi pipeline e wikiwiki i nā mea:

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

Hoʻopuka ʻo Gbak mai 2.5 i kahi hoʻihoʻi ma kahi ʻano laina a hoʻouna iā ia i stdout, e kiʻi koke iā gbak mai 3.0 ma o stdin a hana i kahi waihona hou.

Pono e hoʻonohonoho i kēlā pipeline me kahi ala komo kūloko (faila), no ka mea, ʻo ka loaʻa ʻana o ka pūnaewele (ʻoiai ma localhost) e hoʻolohi nui i ke kaʻina hana.

Hele mākou i nā kikoʻī no Windows a me Linux ma lalo nei.

Windows

I ka hihia o Windows, ʻo ke ala maʻalahi ka hana ʻana i kahi hale kūʻokoʻa o Firebird. No kēia mea mākou e lawe ai embed-archive Firebird 2.5, hoʻololi i ka inoa fbemded.dll i fbclient.dll, hoʻohui i ka gbak.exe a me (ke koho) isql.exe pono mai ka waihona "maʻamau" 2.5.

Hoʻohana ʻo Firebird 3.0 hui hookahi a ʻaʻole koi i kekahi hoʻololi.

ʻO ka mea liʻiliʻi loa (ʻaʻole pono e hoʻokomo i nā hale waihona puke runtime VS2008/VS2010 ma ka ʻōnaehana target) aia nā faila penei:

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

Hiki i kekahi luna ho'okele akamai ke ho'omaopopo 'a'ole i komo ka 2.5 i nā faila intl/fbintl.dll a me intl/fbintl.conf. He ʻoiaʻiʻo kēia, ʻoiai ʻaʻole hoʻohana ʻo gbak i kahi charset pili a ʻaʻole hoʻololi i ka ʻikepili ma waena o nā charsets, akā ma ka ʻaoʻao "loaʻa" o Firebird 3.0, pono kēia mau faila i ka wā e hana ai i nā kuhikuhi.

Ma firebird.conf Manaʻo ʻia ʻo Firebird 3.0 e hoʻohui:

MaxUnflushedWrites = -1
MaxUnflushedWriteTime = -1

Eia kekahi, pono e hoʻonohonoho i nā waiwai IpcName like ʻole no 2.5 a me 3.0.

I ke koho ʻana i nā waiwai o nā ʻāpana ʻē aʻe o firebird.conf, hoʻomaka mākou mai kahi noʻonoʻo maʻalahi: i ka pae o ka hoʻololi ʻana i ka ʻikepili, holo ka gbak i 2.5 i kekahi kaʻina, a me 3.0 i kekahi, a laila 2.5 puka, a hoʻomaka ʻo 3.0 e kūkulu. nā kuhikuhi.

No ka wikiwiki ʻana i ka pae kūkulu index ma 3.0, ʻōlelo ʻia e hoʻonui i ka nui o ka TempCacheLimit parameter i ~ 40% RAM (inā he kikowaena hoʻolaʻa, ʻoiaʻiʻo).

No ka laʻana, inā he 16 GB o RAM ka server, a laila hiki iā ʻoe ke kau

TempCacheLimit=6G

ʻOiaʻiʻo, hiki ke hoʻonohonoho ʻia kēia waiwai no 64-bit Firebird 3 wale nō, no ka mea ʻaʻole hiki i nā kaʻina hana 32-bit ke hoʻokaʻawale ma mua o 2 gigabytes o ka hoʻomanaʻo.

Ma 2.5, ʻaʻole pono e hoʻololi ʻia kēia ʻāpana - ʻaʻole hiki ke ʻoi aku ma mua o 2 gigabytes, ʻaʻole ia e pili i ka wikiwiki i ka wā hoʻihoʻi.

Ma mua o ka hana ʻana i ka hana, pono ʻoe e nānā inā ua hoʻonohonoho ʻia ka cache ʻaoʻao ma ke poʻo waihona waihona i 0 (command gstat -h databasename, e ʻike i ka laina pale ʻAoʻao).

Inā hoʻonohonoho pono ʻia ka cache i ka poʻomanaʻo waihona, a laila e hoʻopau i nā waiwai mai firebird.conf (a me databases.conf ma 3.0), a inā ʻaʻole lawa nā waiwai nui, hiki iā ia ke alakaʻi i ka hoʻohana nui ʻana i ka hoʻomanaʻo a me ka hoʻololi ʻana.

A laila, kope i nā faila i ka ʻōnaehana target.

Hana ʻia ka hoʻololi ʻana ma hope o ka hoʻōki ʻana i ka lawelawe "pūnaewele" Firebird 2.5, ma ka laina kauoha me nā kuleana kiʻekiʻe i ka luna hoʻomalu kūloko (hiʻohiʻona):

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

Ke hoʻohana nei kēia laʻana i ka "paʻi mua" ma nā puʻupuʻu (ʻoiaʻiʻo "unix-style"), a me ka "pāpale" (ʻo ka "^" character) e pakele i ke ʻano laina hou, he mea pono ia i ke kākau ʻana i nā kauoha lōʻihi. Ua ʻike ʻia ka koho -st(atus) ma Firebird 2.5.8 a hiki iā ʻoe ke hoʻopaʻa i ka ʻikepili e pili ana i ka manawa e holo ai ke kaʻina hana gbak (no nā kikoʻī, e ʻike i ka palapala).

Linux

Ma ka Linux Firebird 3 e pili ana i ka hale waihona puke. Ma CentOS (RHEL) aia kēia waihona ma ka waihona epel, ma Ubuntu (Debian) ma ka waihona waihona.

No CentOS, pono ʻoe e hoʻopili mua i ka waihona epel a laila hana wale

yum install libtommath

ʻAʻole pono ʻo Ubuntu e hoʻokomo i nā waihona hou, akā ʻo Ubuntu 16 a me Ubuntu 18 e hoʻokomo i nā ʻano like ʻole o nā pūʻolo - libtommath0 a me libtommath1, kēlā me kēia.

Ke nānā nei ʻo Firebird 3.0 i ka tommath.so.0 a no ka Ubuntu 18 pono ʻia e hana i kahi loulou (symlink) mai tommath.so.0 a i tommath.so.1. No ka hana ʻana i kēia, pono ʻoe e ʻimi mua i ka tommath.so.1.

Huli ʻia ke ala ma Ubuntu - /usr/lib/x86_64-linux-gnu/, akā ʻokoʻa paha nā hoʻohele ʻē aʻe Debian.

ʻO ka pilikiaʻelua e pili ana i kaʻoiaʻiʻo a hiki i ka Firebird 3.0.1,ʻaʻohe ala maʻalahi e hoʻokomo iʻelua mau mana kikowaena likeʻole. ʻAʻole mākou e noʻonoʻo i ke koho "hōʻuluʻulu mai ke kumu me ka prefix i koi ʻia" no ka paʻakikī pili.

No Firebird 3.0.2 a ʻoi aku ka hoʻokō kūkulu me --enable-binreloc a me kahi koho hoʻonohonoho ʻokoʻa (-alanui ala).

Ke manaʻo nei ua hoʻohui ʻia ka hale waihona puke tommath a, inā pono, kahi symlink no tommath.so.0 i ka ʻōnaehana, hiki iā ʻoe ke hoʻokomo i kēia manawa (i ka manawa o kēia kākau ʻana) Firebird 3.0.4 hoʻolaha i, no ka laʻana, /opt /fb3:

./install.sh -path /opt/fb3

Ma hope o kēlā, hiki iā ʻoe ke hoʻōki i ka lawelawe ʻōnaehana Firebird a hoʻomaka i ka hoʻololi ʻana.

Ke hooki nei ʻo Firebird, e hoʻomanaʻo i ka hoʻomaka ʻana o ke kaʻina hana Firebid 2.5 i ke ʻano Classic e xinetd - no laila pono ʻoe e hoʻopau i ka lawelawe firebird no xinetd a i ʻole e hoʻōki loa i ka xinetd.

Ma firebird.conf no 3.0 ma Linux, ʻaʻole pono ʻoe e hoʻonohonoho i nā palena MaxUnflushed (hana wale lākou ma Windows) a hoʻololi i nā hoʻonohonoho Firebird 2.5.

Ma Linux, ʻaʻole like ke komo ʻana o Firebird 2.5 local (file) i ka mana i hoʻokomo ʻia ma lalo o Windows - e holo ka server 2.5 i ke kaʻina gbak (me ka ʻole o ka ʻāpana pūnaewele), akā e nānā ʻia nā kuleana komo i ka waihona mea hoʻohana, ʻo ia hoʻi. ʻaʻole wale ka inoa inoa, akā e koi ʻia ka ʻōlelo huna:

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

Ma hope o ka hoʻololi maikaʻi ʻana, pono ʻoe e wehe mua i ka "mea hou" Firebird 3.0, a laila ka "main" Firebird 2.5, a ma hope o kēlā hana i kahi hoʻonohonoho maʻemaʻe o Firebird 2.5 - a ʻoi aku ka maikaʻi mai ka mea hoʻonohonoho tar.gz maʻamau, ʻaʻole ma o ka hale waihona, no ka mea. hiki i ka mana i loko o nā waihona ke lohi ma hope.

Eia kekahi, ma hope o ka hoʻihoʻi ʻana i ka waihona ma Linux a me ka hoʻouka hou ʻana, pono ʻoe e nānā i ka ʻikepili hou nona ka mea hoʻohana firebird.

Inā ʻaʻole kēia, a laila pono e hoʻoponopono ʻia.

chown firebird.firebird database

ʻO ka hopena

Ma waho aʻe o ka mālama ʻana i ka manawa a me ka wahi disk, ʻo ka hoʻololi ʻana o ka hoʻololi ʻana he mea nui ʻē aʻe - ua hana ʻia ka hoʻololi ʻana i ka waihona me ka ʻole e holoi ʻia i ka Firebird 2.5 i loaʻa, e hoʻomaʻamaʻa nui i ka rollback inā loaʻa ʻole ka hoʻololi ʻana (ma muli o ka nele o ka hakahaka a i ʻole ka hoʻomaka hou ʻana i ka wā o ka neʻe ʻana. kaʻina hana).

ʻO ka mālama ʻana i ka manawa ma muli o ka hoʻololi ʻana o ka "classic" he "backup time" a me ka "restore time". He ʻelua ʻāpana ka hoʻihoʻi: heluhelu ʻana i ka ʻikepili mai kahi waihona waihona a me ke kūkulu ʻana i kahi kuhikuhi.

Me ka hoʻololi hoʻololi ʻana, loaʻa ka manawa holoʻokoʻa ma ke ʻano he "manawa hoʻihoʻi me ʻelima a ʻumi pakeneka" a me ka "manawa kūkulu kuhikuhi".

Pili nā hualoaʻa kikoʻī i ke ʻano o ka waihona, akā ma ka awelika, ʻo ka manawa hoʻihoʻi he ʻelua paha ia o ka manawa hoʻihoʻi. No laila, inā mākou e lawe i ka manawa hoʻihoʻi ma ke ʻano he ʻāpana, a laila ʻekolu ʻāpana o ka manawa ka "hoʻololi maʻamau", ʻelua ʻāpana o ka manawa. ʻO ka hoʻonui ʻana i ka TempCacheLimit kōkua e hōʻemi hou i ka manawa.

Ma keʻano laulā, hiki iā ʻoe ke mālama i ka 30-40% o ka manawa o ka hoʻihoʻi ʻana a me ka hoʻihoʻi hou ʻana.

Nā Nīnau?

Eʻoluʻolu e kākau i nā nīnau a pau i nā manaʻo, aiʻole e hoʻouna iā lākou i ka mea kākau o ka methodology a me ka co-mea kākau o kēiaʻatikala - Vasily Sidorov, iBase Leading System Engineer, ma bs at ibase ru.

Hiki i nā mea hoʻohana i hoʻopaʻa inoa ʻia ke komo i ka noiʻi. Eʻe, e 'oluʻolu.

He aha ka mana o Firebird āu e hoʻohana nei?

  • Manu ahi 3.x

  • Manu ahi 2.5

  • Manu ahi 2.1

  • ʻO Firebird 2.0, 1.5 a i ʻole 1.0

16 mea hoʻohana i koho. 1 mea hoʻohana i hōʻole.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka