Ụdị Firebird ọ bụla nwere ụdị nke ya nke usoro nhazi diski nchekwa data - O(n)D(isk)S(tructure). Ruo mbipute 2.5 gụnyere, injin Firebird nwere ike ịrụ ọrụ na ODS nke nsụgharị ndị gara aga, ya bụ, e meghere ọdụ data sitere na ụdị ochie site na ụdị ọhụrụ ahụ wee rụọ ọrụ na ọnọdụ ndakọrịta, mana injin Firebird 3.0 na-arụ ọrụ naanị na ọdụ data na ụdị ODS nke ya. 12.0.
Ka ịgbanwee gaa na 3.0, nchekwa data sitere na 2.5 ga-agbanwerịrị ka ọ bụrụ usoro ọhụrụ site na nkwado ndabere na mpaghara weghachi. N'ezie, anyị na-eche na nchekwa data adịla njikere maka ntụgharị - i.e. enyochala metadata na ajụjụ maka ndakọrịta na Firebird 3.0.
Если следовать стандартному подходу, это означает, что нужно произвести бэкап на версии 2.5, затем установить 3.0 и сделать рестор. Такая процедура приемлема, если есть достаточно времени, но при миграции больших баз данных, или при одновременной миграции нескольких десятков БД, когда время поджимает, можно воспользоваться поточной конвертацией, которая на 30-40% быстрее. Как именно это сделать (под Windows na n'okpuru Linux), читайте под катом.
Echiche izugbe bụ na anyị ga-eji pipeline mee ka ihe dị ngwa:
gbak -b … база25 stdout | gbak -c … stdin база30Gbak sitere na 2.5 na-emepụta nkwado ndabere na mpaghara linear wee ziga ya na stdout, nke na-eburu gbak site na 3.0 ozugbo site na stdin wee mepụta nchekwa data ọhụrụ.
Ọ dị mkpa ịhazi pipeline dị otú ahụ site na iji usoro ịnweta mpaghara (faịlụ), ebe ọ bụ na ịnweta netwọk (ọbụlagodi site na localhost) ga-ebelata usoro ahụ nke ọma.
Ниже мы рассматриваем детали для Windows и Linux.
Windows
Bụrụ na Windows проще всего сделать полностью автономную сборку Firebird. Для этого берём , nyegharịa fbemded.dll ka ọ bụrụ fbclient.dll, gbakwunye utility 2.5 gbak.exe na (nhọrọ) isql.exe site na ebe nchekwa.
Firebird 3.0 na-eji ma ọ dịghị achọ mgbanwe ọ bụla.
Nhọrọ kacha nta (nke na-achọghị ntinye nke ụlọ akwụkwọ oge VS2008/VS2010 na sistemụ ebumnuche) nwere faịlụ ndị a:
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.dllOnye nchịkwa nwere ahụmahụ nwere ike ịchọpụta na 2.5 anaghị agụnye faịlụ intl/fbintl.dll na intl/fbintl.conf. Nke a bụ eziokwu, ebe ọ bụ na gbak anaghị eji charset njikọ ma ọ naghị atụgharị data n'etiti chasets, mana n'akụkụ “nata” nke Firebird 3.0 faịlụ ndị a chọrọ mgbe ị na-emepụta ndeksi.
Na Firebird 3.0 firebird.conf a na-atụ aro ka ịgbakwunye:
MaxUnflushedWrites = -1
MaxUnflushedWriteTime = -1Ọzọkwa, ọ bụ ihe amamihe ịtọ dị iche iche IpcName ụkpụrụ maka 2.5 na 3.0.
Mgbe ị na-ahọrọ ụkpụrụ nke ndị ọzọ firebird.conf parameters, anyị na-aga n'ihu na a dị mfe echiche: na data nyefe ogbo, gbak 2.5 na-agba ọsọ na otu usoro, na 3.0 na-agba ọsọ na ọzọ, mgbe 2.5 mezue ọrụ ya, na 3.0 amalite. ụlọ ndeksi.
Iji mee ka usoro ụlọ index dị ngwa ngwa na 3.0, a na-atụ aro ka ịbawanye nha nke TempCacheLimit parameter na ~ 40% RAM (ọ bụrụ na nke a bụ ihe nkesa raara onwe ya nye, n'ezie).
Dịka ọmụmaatụ, ọ bụrụ na ihe nkesa nwere 16 GB nke RAM, mgbe ahụ ị nwere ike ịtọ
TempCacheLimit=6GN'ezie, uru a nwere ike ịtọ maka 64-bit Firebird 3, ebe ọ bụ na usoro 32-bit ọ bụla agaghị enwe ike ịnye ihe karịrị 2 gigabytes nke ebe nchekwa.
Maka 2.5, paramita a adịghị mkpa ịgbanwe - ọ nweghị ike ịbụ ihe karịrị 2 gigabytes na agbanyeghị, na ọbụlagodi n'oge ndabere ọ naghị emetụta ọsọ.
Tupu ịrụ ọrụ a, ịkwesịrị ịlele na ka edobere cache ibe dị na isi nchekwa data ka 0 (iwu gstat -h databasename, lee ahịrị ndị na-echekwa ibe).
Ọ bụrụ na edobere cache ahụ n'ụzọ doro anya na isi nchekwa data, mgbe ahụ ọ ga-ewepụ ụkpụrụ sitere na firebird.conf (na databases.conf na 3.0), na n'ihe banyere nnukwu uru na-ekwesịghị ekwesị, ọ nwere ike ibute oriri ebe nchekwa na-enweghị isi na nchekwa na swap.
Ọzọ, detuo faịlụ ndị ahụ na sistemụ ebumnuche.
A na-eme ntụgharị ahụ mgbe ịkwụsịchara ọrụ “sistemụ” Firebird 2.5, n'ahịrị iwu nwere ikike ebuliri na onye nchịkwa mpaghara (ihe atụ):
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Ọmụmaatụ a na-eji “slash na-aga n'ihu” na akara ngụ (nke dabara na "unix-style"), yana "okpu" (agwa "^") na-agbanarị njirimara ndepụta ahịrị, nke dị mma mgbe ị na-ede ogologo iwu. Nhọrọ -st (atus) pụtara na Firebird 2.5.8 ma na-enye gị ohere ịbanye data gbasara oge na-agba ọsọ nke usoro gbak (nkọwa na akwụkwọ).
Linux
Na Linux Firebird 3 зависит от библиотеки tommath. В CentOS (RHEL) эта библиотека находится в epel-репозитории, в Ubuntu (Debian) в – системном.
Iji CentOS требуется сначала подключить epel-репозиторий и только потом делать
yum install libtommathUbuntu не нужно подключать дополнительные репозитории, но в 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 дистрибутивах может быть иначе.
Nsogbu nke abụọ sitere na eziokwu ahụ ruo mgbe Firebird 3.0.1, gụnyere, ọ dịghị ụzọ dị mfe iji wụnye ụdị abụọ dị iche iche nke ihe nkesa ahụ. Anyị anaghị atụle nhọrọ "mkpokọta sitere na isi mmalite nwere prefix achọrọ" n'ihi ike ọrụ ya.
Emebere ya maka Firebird 3.0.2 na karịa na nhọrọ installer dị iche (-ụzọ ụzọ).
Na-eche na ọbá akwụkwọ tommath na, ọ bụrụ na ọ dị mkpa, a gbakwunyere symlink maka tommath.so.0 na usoro, ị nwere ike iwunye nke dị ugbu a (n'oge edere isiokwu a) Firebird 3.0.4 nkesa na, dịka ọmụmaatụ, / họrọ/fb3:
./install.sh -path /opt/fb3Mgbe nke a gasịrị, ị nwere ike ịkwụsị ọrụ sistemụ Firebird wee malite ntụgharị ntụgharị.
Mgbe ị na-akwụsị Firebird, i kwesịrị iburu n'uche na Firebid 2.5 usoro na Classic mode na-emekarị ulo oru site xinetd - Ya mere, i kwesịrị ma gbanyụọ firebird ọrụ maka xinetd ma ọ bụ kwụsị xinetd kpamkpam.
В 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 база30Mgbe ntughari nke ọma, ị ga-ebu ụzọ wepụ "agbakwunyere" Firebird 3.0, wee bụrụ "isi" Firebird 2.5, ma emesịa rụọ ọrụ dị ọcha nke Firebird 2.5 - nke kachasị mma site na ọkọlọtọ tar.gz installer, ọ bụghị site na repositories. n'ihi na Ụdị dị na ebe nchekwa nwere ike ịla azụ.
Также, после рестора БД на Linux и переустановки надо проверить, чтобы новая БД имела владельцем пользователя firebird.
Ọ bụrụ na nke a abụghị ikpe, mgbe ahụ ọ ga-adị mkpa ka edozi ya
chown firebird.firebird databaseNsonaazụ
Na mgbakwunye na ịchekwa oge na ohere diski, ntụgharị iyi nwere uru ọzọ dị mkpa - a na-eme mgbanwe nchekwa data na-ewepụghị 2.5 Firebird dị ugbu a, nke na-eme ka ọ dịkwuo mfe ịtụgharị azụ ma ọ bụrụ na ntụgharị ahụ dara (ọtụtụ mgbe n'ihi enweghị ohere ma ọ bụ ihe). mweghachi na-atụghị anya ya n'oge usoro mbugharị).
Ịchekwa oge bụ n'ihi na ntụgharị "oge gboo" bụ "oge ndabere" gbakwunyere "weghachi oge". Iweghachite nwere akụkụ abụọ: ịgụ data sitere na faịlụ ndabere na ịmepụta ndeksi.
Site na ntughari na-aga n'ihu, a na-enweta ngụkọta oge dịka "oge ndabere gbakwunyere pasent ise ruo iri" na "oge owuwu index."
Nsonaazụ akọwapụtara na-adabere na nhazi nke nchekwa data, mana na nkezi oge mgbake dị ihe dịka okpukpu abụọ nke oge ndabere. Ya mere, ọ bụrụ na anyị na-ewere oge ndabere dị ka nkeji, mgbe ahụ "ntụgharị oge gboo" bụ nkeji atọ nke oge, na ntụgharị na-aga n'ihu bụ nkeji abụọ nke oge. Ịbawanye TempCacheLimit na-enyere aka belata oge.
N'ozuzu, ntụgharị n'ime akara na omume na-enye gị ohere ịchekwa 30-40% nke oge achọrọ maka nkwado ndabere na mpaghara ọzọ.
Mme mbụme?
Biko dee ajụjụ niile na nkwupụta, ma ọ bụ zigara ha onye edemede nke usoro na onye na-ede akwụkwọ nke isiokwu a - Vasily Sidorov, onye na-eduzi usoro nhazi na iBase, na bs na ibase ru.
Naanị ndị ọrụ edebanyere aha nwere ike isonye na nyocha a. , Biko.
Kedu ụdị Firebird ị na-eji?
Firebird 3.x
Firebird 2.5
Firebird 2.1
Firebird 2.0, 1.5 ma ọ bụ 1.0
Ndị ọrụ 16 tụrụ vootu. 1 onye ọrụ anabataghị.
isi: www.habr.com
