{"id":30280,"date":"2019-10-31T21:34:38","date_gmt":"2019-10-31T18:34:38","guid":{"rendered":"https:\/\/prohoster.info\/blog\/potochnaya-konvertatsiya-baz-firebird-2-5-v-format-ods12-firebird-3-0\/"},"modified":"2019-10-31T21:34:38","modified_gmt":"2019-10-31T18:34:38","slug":"potochnaya-konvertatsiya-baz-firebird-2-5-v-format-ods12-firebird-3-0","status":"publish","type":"post","link":"https:\/\/prohoster.info\/hr\/blog\/potochnaya-konvertatsiya-baz-firebird-2-5-v-format-ods12-firebird-3-0","title":{"rendered":"Kontinuirana konverzija baza Firebird 2.5 u ODS12 format (Firebird 3.0)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Svaka verzija Firebirda ima svoju verziju formata struktura diskova baze podataka \u2013 O(n)D(isk)S(truktura). Do verzije 2.5 uklju\u010divo, Firebird je mogao raditi s ODS-om prethodnih verzija, \u0161to zna\u010di da su baze starih verzija mogle biti otvorene novom verzijom i raditi u re\u017eimu kompatibilnosti, ali Firebird 3.0 radi samo s bazama u vlastitoj ODS verziji 12.0.<\/p>\n<p>Da biste pre\u0161li na 3.0, bazu podataka iz 2.5 potrebno je pretvoriti u novi format putem backup\/restore. Naravno, pretpostavljamo da je baza bila prethodno pripremljena za konverziju \u2014 t.j. da su metapodaci i upiti provjereni na kompatibilnost s Firebird 3.0.<\/p>\n<p>Ako se pridr\u017eavamo standardnog pristupa, to zna\u010di da je potrebno napraviti backup na verziji 2.5, zatim instalirati 3.0 i obaviti restore. Ova procedura je prihvatljiva, ako imate dovoljno vremena, ali pri migraciji velikih baza podataka, ili tijekom simultane migracije vi\u0161e desetina baza kada vrijeme pritisne, mo\u017eete iskoristiti strimsku konverziju koja je 30-40% br\u017ea. Kako to u\u010diniti (pod Windows i Linux), pro\u010ditajte ispod.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nOp\u0107a ideja je da za ubrzanje iskoristimo cjevovod:<\/p>\n<pre><code class=\"plaintext\">gbak -b \u2026 baza25 stdout | gbak -c \u2026 stdin baza30<\/code><\/pre>\n<p>\nGbak iz 2.5 generira backup u linearnoj formatu i usmjerava ga u stdout, koji odmah preko stdin preuzima gbak iz 3.0 i stvara novu bazu.<\/p>\n<p>Organizirati takav cjevovod potrebno je lokalnom (datote\u010dnom) metodom pristupa, budu\u0107i da mre\u017eni pristup (\u010dak i preko localhost-a) zna\u010dajno usporava proces.<\/p>\n<p>Ispod razmatramo detalje za Windows i Linux.<\/p>\n<p><b>Windows<\/b><\/p>\n<p>U slu\u010daju Windowsa, najlak\u0161e je napraviti potpuno autonomnu verziju Firebirda. Za to uzimamo <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/FirebirdSQL\/firebird\/releases\/download\/R2_5_8\/Firebird-2.5.8.27089-0_x64_embed.zip\">embed-arhiv Firebird 2.5<\/a><\/noindex>, preimenujemo fbemded.dll u fbclient.dll, dodajemo iz arhiva \u201eobi\u010dnog\u201c 2.5 alate gbak.exe i (neobavezno) \u2013 isql.exe. <\/p>\n<p>Firebird 3.0 koristi <noindex><a rel=\"nofollow\" href=\"https:\/\/firebirdsql.org\/en\/firebird-3-0\/\">jedinstvenu verziju<\/a><\/noindex> i ne zahtijeva nikakve dorade.<\/p>\n<p>Najminimalnija opcija (koja ne zahtijeva instalaciju runtime biblioteka VS2008\/VS2010 na ciljnom sustavu) sadr\u017ei sljede\u0107e datoteke:<\/p>\n<pre><code class=\"plaintext\">25\/gbak.exe\n25\/fbclient.dll\n25\/firebird.conf\n25\/firebird.log\n25\/firebird.msg\n25\/ib_util.dll\n25\/icudt30.dll\n25\/icuin30.dll\n25\/icuuc30.dll\n25\/Microsoft.VC80.CRT.manifest\n25\/msvcp80.dll\n25\/msvcr80.dll\n\n30\/fbclient.dll\n30\/firebird.conf\n30\/firebird.msg\n30\/gbak.exe\n30\/ib_util.dll\n30\/icudt52.dll\n30\/icudt52l.dat\n30\/icuin52.dll\n30\/icuuc52.dll\n30\/msvcp100.dll\n30\/msvcr100.dll\n30\/intl\/fbintl.conf\n30\/intl\/fbintl.dll\n30\/plugins\/engine12.dll<\/code><\/pre>\n<p>\nIskusni administrator mo\u017ee primijetiti da u 2.5 nisu uklju\u010dene datoteke intl\/fbintl.dll i intl\/fbintl.conf. To je zaista tako, budu\u0107i da gbak ne koristi charset konekcije i ne konvertira podatke izme\u0111u char seta, ali na 'prijemnoj' strani Firebird 3.0 ove datoteke su potrebne prilikom kreiranja indeksa.<\/p>\n<p>U firebird.conf Firebird 3.0 preporu\u010duje se dodati:<\/p>\n<pre><code class=\"plaintext\">MaxUnflushedWrites = -1\nMaxUnflushedWriteTime = -1<\/code><\/pre>\n<p>\nTako\u0111er, po\u017eeljno je postaviti razli\u010ditu vrijednost IpcName za 2.5 i 3.0. <\/p>\n<p>Prilikom odabira vrijednosti drugih parametara firebird.conf polazimo od jednostavne pretpostavke: tijekom procesa prebacivanja podataka u jednom procesu, gbak radi 2.5, a u drugom \u2013 3.0, zatim 2.5 zavr\u0161ava rad, a 3.0 zapo\u010dinje s izgradnjom indeksa.<\/p>\n<p>Kako bismo ubrzali fazu izgradnje indeksa u 3.0, preporu\u010duje se pove\u0107anje veli\u010dine parametra TempCacheLimit na ~40% RAM-a (ako je to posve\u0107en server, naravno).<\/p>\n<p>Na primjer, ako je na serveru 16 GB RAM-a, mo\u017ee se postaviti <\/p>\n<pre><code class=\"plaintext\">TempCacheLimit=6G<\/code><\/pre>\n<p>\n<i>Naravno, takvu vrijednost mo\u017ee se postaviti samo na 64-bitnom Firebirdu 3, budu\u0107i da bilo koji 32-bitni proces ne mo\u017ee alocirati vi\u0161e od 2 giga memorije.<\/i><\/p>\n<p>Za 2.5 ovaj parametar nije potrebno mijenjati \u2013 on ionako ne mo\u017ee biti ve\u0107i od 2 gigabajta, a niti ne utje\u010de na brzinu prilikom izrade sigurnosne kopije.<\/p>\n<p>Prije izvo\u0111enja operacije potrebno je provjeriti je li veli\u010dina slo\u017eenog predmemoriranja u zaglavlju baze podataka postavljena na 0 (komanda <code>gstat -h databasename<\/code>, pogledajte redak Page buffers). <\/p>\n<p>Ako je ke\u0161 eksplicitno postavljen u zaglavlju baze podataka, tada nadilazi vrijednosti iz firebird.conf (i databases.conf u 3.0), te u slu\u010daju neadekvatno velikih vrijednosti mo\u017ee dovesti do pretjerane potro\u0161nje memorije i kori\u0161tenje swap prostora.<\/p>\n<p>Nakon toga, kopiramo datoteke na ciljnu sustav. <\/p>\n<p>Konverzija se provodi nakon zaustavljanja 'sustavne' usluge Firebird 2.5, u naredbenoj liniji s povi\u0161enim pravima do lokalnog administratora (primjer):<\/p>\n<pre><code class=\"plaintext\">set ISC_USER=vlasnik\n\"25\/gbak\" -z -b -g -v -st t -y 25.log baza25 stdout|^\n\"30\/gbak\" -z -c -v -st t -y 30.log stdin baza30<\/code><\/pre>\n<p>\nU ovom primjeru koristi se 'ravna kosa' u navodnicima (dozvoljen 'unix-style'), a '\u0161apica' (simbol '^') escapira simbol nove linije, \u0161to je zgodno pri unosu dugih komandi. Opcija -st(atus) pojavila se u Firebirdu 2.5.8 i omogu\u0107ava bilje\u017eenje podataka o vremenu rada procesa gbak (detalji \u2013 u dokumentaciji).<\/p>\n<p><b>Linux<\/b><\/p>\n<p>Na Linuxu Firebird 3 ovisi o biblioteci tommath. U CentOS-u (RHEL) ova biblioteka se nalazi u epel-repozitoriju, u Ubuntu (Debian) u \u2013 sistemskoj.<\/p>\n<p>Za CentOS prvo je potrebno spojiti epel-repozitorij, a zatim izvr\u0161iti <\/p>\n<pre><code class=\"plaintext\">yum install libtommath<\/code><\/pre>\n<p>\nUbuntu ne zahtijeva dodatno povezivanje repozitorija, ali u Ubuntu 16 i Ubuntu 18 instaliraju se razli\u010dite verzije paketa \u2013 libtommath0 i libtommath1, respektivno.<\/p>\n<p>Firebird 3.0 tra\u017ei tommath.so.0, a za Ubuntu 18 dodatno je potrebno stvoriti vezu (symlink) od tommath.so.0 na tommath.so.1. Da bi se to postiglo, prvo treba prona\u0107i tommath.so.1. <\/p>\n<p>Tra\u017eena staza u Ubuntu \u2013 <code>\/usr\/lib\/x86_64-linux-gnu\/<\/code>, ali u drugim Debian-based distribucijama mo\u017ee biti druga\u010dije.<\/p>\n<p>Drugi problem je u tome \u0161to do Firebird 3.0.1, uklju\u010divo, nije bilo jednostavnog na\u010dina za instalaciju dvije razli\u010dite verzije servera. Opciju \u201ekompiliranje iz izvora s potrebnim prefiksom\u201c ne razmatramo zbog njene relativne slo\u017eenosti.<\/p>\n<p>Za Firebird 3.0.2 i vi\u0161e implementirano je <noindex><a rel=\"nofollow\" href=\"http:\/\/tracker.firebirdsql.org\/browse\/CORE-5204\">sastavljanje s \u2013enable-binreloc<\/a><\/noindex> i posebna opcija instalatera (-path putanja).<\/p>\n<p>Pretpostavljaju\u0107i da je biblioteka tommath i, po potrebi, symlink za tommath.so.0 dodan u sustav, mo\u017eete instalirati aktualnu (u trenutku pisanja ovog \u010dlanka) distribuciju Firebird 3.0.4 u, na primjer, \/opt\/fb3:<\/p>\n<pre><code class=\"plaintext\">.\/install.sh -path \/opt\/fb3<\/code><\/pre>\n<p>\nNakon toga mo\u017eete zaustaviti sistemsku uslugu Firebird i pokrenuti konverziju u toku. <\/p>\n<p><i>Prilikom zaustavljanja Firebird-a treba uzeti u obzir da procese Firebird 2.5 u Classic na\u010dinu obi\u010dno pokre\u0107e xinetd \u2013 stoga je potrebna ili zabrana servisa firebird za xinetd ili potpuno zaustavljanje xinetd-a.<\/i><\/p>\n<p>U firebird.conf za 3.0 na Linuxu nije potrebno postavljati MaxUnflushed-parametre (oni rade samo na Windows-u) i mijenjati postavke Firebird 2.5. <\/p>\n<p>Na Linuxu, lokalni (datote\u010dni) pristup Firebird 2.5 nije ekvivalentan embeded-varijanti pod Windows-om \u2013 server 2.5 \u0107e raditi unutar procesa gbak (bez mre\u017ene komponente), ali prava pristupa bit \u0107e provjeravana prema bazi korisnika, a to zna\u010di da \u0107e biti potrebni ne samo korisni\u010dko ime, ve\u0107 i lozinka: <\/p>\n<pre><code class=\"plaintext\">export ISC_USER=korisni\u010dko_ime ISC_PASSWORD=lozinka\n\/opt\/firebird\/bin\/gbak -b \u2026 baza25 stdout\n|\/opt\/fb3\/bin\/gbak -c \u2026 stdin baza30<\/code><\/pre>\n<p>\nNakon uspje\u0161ne konverzije prvo treba ukloniti \u201edodatni\u201c Firebird 3.0, zatim \u201eglavni\u201c Firebird 2.5 i tek nakon toga izvr\u0161iti \u010distu instalaciju Firebird 2.5 \u2013 pri \u010demu je najbolje koristiti slu\u017ebenog instalatera tar.gz, a ne putem repozitorija, jer verzija u repozitorijima mo\u017ee biti zastarjela.<\/p>\n<p>Tako\u0111er, nakon restauracije Baze podataka na Linuxu i ponovne instalacije, treba provjeriti da nova Baza podataka ima vlasnika korisnika firebird.<\/p>\n<p>Ako to nije slu\u010daj, treba ispraviti<\/p>\n<pre><code class=\"plaintext\">chown firebird.firebird baza<\/code><\/pre>\n<p>\n<b>Zaklju\u010dak<\/b><\/p>\n<p>Osim u\u0161tede vremena i prostora na disku, on-line konverzija ima jo\u0161 jednu va\u017enu prednost \u2013 pretvaranje baze se vr\u0161i bez brisanja postoje\u0107eg Firebirda 2.5, \u0161to zna\u010dajno olak\u0161ava povratak u slu\u010daju neuspjele konverzije (naj\u010de\u0161\u0107e zbog nedostatka prostora ili iznenadnog restarta tokom procesa migracije).<\/p>\n<p>U\u0161teda vremena povezana je s tim da \"klasi\u010dna\" konverzija zna\u010di \"vrijeme izrade sigurnosne kopije\" plus \"vrijeme oporavka\". Oporavak se sastoji od dva dijela: \u010ditanje podataka iz datoteke sigurnosne kopije i izgradnja indeksa.<\/p>\n<p>Kod on-line konverzije ukupno vrijeme se sastoji od \"vrijeme sigurnosne kopije plus pet do deset posto\" i \"vrijeme izgradnje indeksa\".<\/p>\n<p>Specifi\u010dni rezultati ovise o strukturi baze, ali u prosjeku vrijeme oporavka otprilike je dvostruko vrijeme sigurnosne kopije. Stoga, ako uzmemo vrijeme sigurnosne kopije kao jedinicu, \"klasi\u010dna konverzija\" traje tri jedinice vremena, a on-line konverzija dvije jedinice vremena. Dodatno smanjenje vremena mo\u017ee se posti\u0107i pove\u0107anjem TempCacheLimit.<\/p>\n<p>Sve u svemu, on-line konverzija u praksi omogu\u0107ava u\u0161tedu od 30-40% vremena potrebnog za redovno pravljenje sigurnosne kopije i restauraciju.<\/p>\n<p><b>Imate pitanja?<\/b><\/p>\n<p>Molimo, postavite sva pitanja u komentarima ili ih uputite autoru metodologije i koautoru ovog \u010dlanka \u2013 Vasilyu Sidorovu, glavnom sistemskom in\u017eenjeru kompanije \"iBase\", na adresu bs at ibase ru.<\/p>\n<p class=\"for_users_only_msg\">Samo registrirani korisnici mogu sudjelovati u anketi. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/auth\/login\/\">Prijavite se<\/a><\/noindex>, molimo.<\/p>\n<h2 class=\"default-block__polling-title\">Koju verziju Firebirda koristite?<\/h2>\n<ul class=\"content-list content-list_polling\">\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Firebird 3.x<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Firebird 2.5<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Firebird 2.1<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Firebird 2.0, 1.5 ili 1.0<\/p>\n<\/li>\n<\/ul>\n<p>    Glasovalo je 16 korisnika. 1 korisnik se suzdr\u017eao.<br \/>\n<br \/>Izvor: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/445204\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0423 \u043a\u0430\u0436\u0434\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 Firebird \u0435\u0441\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u0434\u0438\u0441\u043a\u043e\u0432\u044b\u0445 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u2013 O(n)D(isk)S(tructure). \u0414\u043e \u0432\u0435\u0440\u0441\u0438\u0438 2.5 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e, \u0434\u0432\u0438\u0436\u043e\u043a Firebird \u043c\u043e\u0433 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 ODS \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0432\u0435\u0440\u0441\u0438\u0439, \u0442\u043e \u0435\u0441\u0442\u044c \u0431\u0430\u0437\u044b \u043e\u0442 \u0441\u0442\u0430\u0440\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u0439 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u043b\u0438\u0441\u044c \u043d\u043e\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0435\u0439 \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438, \u043d\u043e \u0434\u0432\u0438\u0436\u043e\u043a Firebird 3.0 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u0411\u0414 \u0432 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 ODS \u0432\u0435\u0440\u0441\u0438\u0438 12.0. \u0427\u0442\u043e\u0431\u044b \u043f\u0435\u0440\u0435\u0439\u0442\u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-30280","post","type-post","status-publish","format-standard","hentry"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0423 \u043a\u0430\u0436\u0434\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 Firebird \u0435\u0441\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u0434\u0438\u0441\u043a\u043e\u0432\u044b\u0445 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u2013 O(n)D(isk)S(tructure).\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/hr\/blog\/potochnaya-konvertatsiya-baz-firebird-2-5-v-format-ods12-firebird-3-0\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"hr_HR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041f\u043e\u0442\u043e\u0447\u043d\u0430\u044f \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u044f \u0431\u0430\u0437 Firebird 2.5 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442 ODS12 (Firebird 3.0) | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0423 \u043a\u0430\u0436\u0434\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 Firebird \u0435\u0441\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u0434\u0438\u0441\u043a\u043e\u0432\u044b\u0445 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u2013 O(n)D(isk)S(tructure).\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/hr\/blog\/potochnaya-konvertatsiya-baz-firebird-2-5-v-format-ods12-firebird-3-0\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:34:38+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:34:38+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47On-line konverzija baza Firebird 2.5 u format ODS12 (Firebird 3.0) | ProHoster","description":"Svaka verzija Firebirda ima svoju verziju formata diskovnih struktura baze podataka \u2013 O(n)D(isk)S(truktura).","canonical_url":"https:\/\/prohoster.info\/hr\/blog\/potochnaya-konvertatsiya-baz-firebird-2-5-v-format-ods12-firebird-3-0","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hr_HR","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041f\u043e\u0442\u043e\u0447\u043d\u0430\u044f \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u044f \u0431\u0430\u0437 Firebird 2.5 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442 ODS12 (Firebird 3.0) | ProHoster","og:description":"\u0423 \u043a\u0430\u0436\u0434\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 Firebird \u0435\u0441\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u0434\u0438\u0441\u043a\u043e\u0432\u044b\u0445 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u2013 O(n)D(isk)S(tructure).","og:url":"https:\/\/prohoster.info\/hr\/blog\/potochnaya-konvertatsiya-baz-firebird-2-5-v-format-ods12-firebird-3-0","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:34:38+00:00","article:modified_time":"2019-10-31T18:34:38+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"30280","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 00:29:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:37:28","updated":"2026-01-21 00:29:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts\/30280","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/comments?post=30280"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts\/30280\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/media?parent=30280"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/categories?post=30280"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/tags?post=30280"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}