{"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\/sv\/blog\/potochnaya-konvertatsiya-baz-firebird-2-5-v-format-ods12-firebird-3-0","title":{"rendered":"Str\u00f6mmande konvertering av Firebird 2.5-databaser till ODS12-formatet (Firebird 3.0)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Varje version av Firebird har sin egen version av diskstrukturformatet f\u00f6r databasen \u2013 O(n)D(isk)S(tructure). Fram till och med version 2.5 kunde Firebird-motorn arbeta med ODS fr\u00e5n tidigare versioner, vilket innebar att databaser fr\u00e5n gamla versioner \u00f6ppnades av den nya versionen och k\u00f6rdes i kompatibilitetsl\u00e4ge, men Firebird 3.0 fungerar endast med databaser i sin egen ODS-version 12.0.<\/p>\n<p>F\u00f6r att uppgradera till 3.0 m\u00e5ste databasen fr\u00e5n 2.5 omvandlas till det nya formatet genom backup\/restore. Sj\u00e4lvklart f\u00f6ruts\u00e4tter vi att databasen har f\u00f6rberetts f\u00f6r konvertering \u2013 det vill s\u00e4ga att metadata och f\u00f6rfr\u00e5gningar har kontrollerats f\u00f6r kompatibilitet med Firebird 3.0.<\/p>\n<p>Om man f\u00f6ljer den standardmetoden, betyder det att man f\u00f6rst s\u00e4krar p\u00e5 version 2.5, d\u00e4refter installerar 3.0 och g\u00f6r en \u00e5terst\u00e4llning. En s\u00e5dan procedur \u00e4r acceptabel om det finns tillr\u00e4ckligt med tid, men vid migrering av stora databaser, eller vid samtidig migrering av flera dussin databaser, n\u00e4r tiden \u00e4r knapp, kan man anv\u00e4nda str\u00f6mkonvertering som \u00e4r 30-40% snabbare. Hur detta g\u00f6rs (p\u00e5 Windows och Linux) kan l\u00e4sas nedan.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nDen allm\u00e4nna id\u00e9n \u00e4r att f\u00f6r att p\u00e5skynda processen anv\u00e4nda en pipeline:<\/p>\n<pre><code class=\"plaintext\">gbak -b \u2026 database25 stdout | gbak -c \u2026 stdin database30<\/code><\/pre>\n<p>\nGbak fr\u00e5n 2.5 genererar en backup i linj\u00e4rt format och skickar den till stdout, som omedelbart f\u00e5ngas av gbak fr\u00e5n 3.0 via stdin och skapar en ny databas.<\/p>\n<p>Det \u00e4r n\u00f6dv\u00e4ndigt att organisera en s\u00e5dan pipeline med lokal (fil)\u00e5tkomstmetod, eftersom n\u00e4tverks\u00e5tkomst (\u00e4ven via localhost) avsev\u00e4rt saktar ner processen.<\/p>\n<p>Nedan behandlar vi detaljerna f\u00f6r Windows och Linux.<\/p>\n<p><b>Windows<\/b><\/p>\n<p>F\u00f6r Windows \u00e4r det enklast att g\u00f6ra en fullst\u00e4ndigt frist\u00e5ende version av Firebird. F\u00f6r detta tar vi <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-archive Firebird 2.5<\/a><\/noindex>, d\u00f6p om fbembedded.dll till fbclient.dll, l\u00e4gg till gbak.exe fr\u00e5n \"vanlig\" 2.5-arkiv och (valfritt) \u2013 isql.exe. <\/p>\n<p>Firebird 3.0 anv\u00e4nder <noindex><a rel=\"nofollow\" href=\"https:\/\/firebirdsql.org\/en\/firebird-3-0\/\">enhetlig distribution<\/a><\/noindex> och kr\u00e4ver ingen ytterligare anpassning.<\/p>\n<p>Det mest minimi alternativet (som inte kr\u00e4ver installation av runtime-bibliotek VS2008\/VS2010 p\u00e5 m\u00e5lsystemet) inneh\u00e5ller f\u00f6ljande filer:<\/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>\nEn erfaren administrat\u00f6r kan m\u00e4rka att intelfilerna intl\/fbintl.dll och intl\/fbintl.conf inte ing\u00e5r i version 2.5. Detta \u00e4r verkligen fallet, eftersom gbak inte anv\u00e4nder anslutningens teckenkodning och inte konverterar data mellan teckenkodningar, men p\u00e5 \"mottagarens\" sida av Firebird 3.0 \u00e4r dessa filer n\u00f6dv\u00e4ndiga vid skapande av index.<\/p>\n<p>Det rekommenderas att l\u00e4gga till f\u00f6ljande i firebird.conf f\u00f6r Firebird 3.0:<\/p>\n<pre><code class=\"plaintext\">MaxUnflushedWrites = -1\nMaxUnflushedWriteTime = -1<\/code><\/pre>\n<p>\nDet \u00e4r ocks\u00e5 l\u00e4mpligt att st\u00e4lla in olika v\u00e4rden f\u00f6r IpcName f\u00f6r version 2.5 och 3.0. <\/p>\n<p>Vid val av v\u00e4rden f\u00f6r andra parametrar i firebird.conf utg\u00e5r vi fr\u00e5n en enkel begrundan: vid \u00f6verf\u00f6ring av data arbetar gbak i en process med version 2.5, och i en annan med version 3.0, sedan avslutar 2.5 sitt jobb, medan 3.0 b\u00f6rjar bygga index.<\/p>\n<p>F\u00f6r att p\u00e5skynda indexbyggnadsstadiet i 3.0 rekommenderas det att \u00f6ka storleken p\u00e5 TempCacheLimit-parametern till ~40% av RAM (om det f\u00f6rst\u00e5s \u00e4r en dedikerad server).<\/p>\n<p>Till exempel, om servern har 16 GB RAM kan man st\u00e4lla in <\/p>\n<pre><code class=\"plaintext\">TempCacheLimit=6G<\/code><\/pre>\n<p>\n<i>Sj\u00e4lvklart kan ett s\u00e5dant v\u00e4rde endast s\u00e4ttas p\u00e5 64-bitars Firebird 3, eftersom vilken 32-bitars process som helst inte kan allokera mer \u00e4n 2 gigabyte minne.<\/i><\/p>\n<p>F\u00f6r 2.5 beh\u00f6ver denna parameter inte \u00e4ndras \u2013 den kan \u00e4nd\u00e5 inte vara mer \u00e4n 2 gigabyte och p\u00e5verkar inte hastigheten vid s\u00e4kerhetskopiering.<\/p>\n<p>Innan operationen utf\u00f6rs m\u00e5ste det kontrolleras att sidcache i databasens header \u00e4r inst\u00e4lld p\u00e5 0 (kommandot <code>gstat -h databasnamn<\/code>, se raden Page buffers). <\/p>\n<p>Om cachen anges tydligt i DB:s header, s\u00e5 \u00e5sidos\u00e4tter den v\u00e4rdena fr\u00e5n firebird.conf (och databases.conf i 3.0), och i fallet med orealistiskt stora v\u00e4rden kan det leda till \u00f6verdriven minnesanv\u00e4ndning och swapping.<\/p>\n<p>D\u00e4refter kopieras filerna till m\u00e5lsystemet. <\/p>\n<p>Konverteringen utf\u00f6rs efter att den \"systemmessiga\" tj\u00e4nsten Firebird 2.5 har stoppats, i kommandoraden med lyftning av r\u00e4ttigheter till lokal administrat\u00f6r (exempel):<\/p>\n<pre><code class=\"plaintext\">set ISC_USER=\u00e4gare\n\"25\/gbak\" -z -b -g -v -st t -y 25.log databas25 stdout|^\n\"30\/gbak\" -z -c -v -st t -y 30.log stdin databas30<\/code><\/pre>\n<p>\nI detta exempel anv\u00e4nds \"rak sned\" inom citat (till\u00e5ten \"unix-style\"), och \"hatten\" (symbolen \"^\") skyddar radbytet, vilket \u00e4r praktiskt vid inmatning av l\u00e5nga kommandon. Alternativet -st(atus) tillkom i Firebird 2.5.8 och g\u00f6r det m\u00f6jligt att registrera tidpunkten f\u00f6r processen gbak (detaljer \u2013 i dokumentationen).<\/p>\n<p><b>Linux<\/b><\/p>\n<p>P\u00e5 Linux beror Firebird 3 p\u00e5 biblioteket tommath. I CentOS (RHEL) finns detta bibliotek i epel-repositoriet, i Ubuntu (Debian) i \u2013 systemet.<\/p>\n<p>F\u00f6r CentOS m\u00e5ste du f\u00f6rst aktivera epel-f\u00f6rvaret och sedan k\u00f6ra <\/p>\n<pre><code class=\"plaintext\">yum install libtommath<\/code><\/pre>\n<p>\nF\u00f6r Ubuntu beh\u00f6ver du inte aktivera n\u00e5gra ytterligare f\u00f6rvar, men i Ubuntu 16 och Ubuntu 18 installeras olika versioner av paketen \u2013 libtommath0 och libtommath1, respektive.<\/p>\n<p>Firebird 3.0 s\u00f6ker efter tommath.so.0 och f\u00f6r Ubuntu 18 kr\u00e4vs dessutom att en symbolisk l\u00e4nk (symlink) skapas fr\u00e5n tommath.so.0 till tommath.so.1. F\u00f6r detta m\u00e5ste tommath.so.1 f\u00f6rst hittas. <\/p>\n<p>Den s\u00f6kta s\u00f6kv\u00e4gen i Ubuntu \u00e4r <code>\/usr\/lib\/x86_64-linux-gnu\/<\/code>, men i andra Debian-baserade distributioner kan det vara annorlunda.<\/p>\n<p>Det andra problemet \u00e4r kopplat till det faktum att fram till Firebird 3.0.1 fanns det inget enkelt s\u00e4tt att installera tv\u00e5 olika versioner av servern. Alternativet \"kompilera fr\u00e5n k\u00e4llkoden med r\u00e4tt prefix\" \u00f6verv\u00e4ger vi inte p\u00e5 grund av dess relativt stora arbetsinsats.<\/p>\n<p>F\u00f6r Firebird 3.0.2 och senare har en <noindex><a rel=\"nofollow\" href=\"http:\/\/tracker.firebirdsql.org\/browse\/CORE-5204\">kompilering med \u2013enable-binreloc<\/a><\/noindex> och en separat installationsval (-path v\u00e4g) implementerats.<\/p>\n<p>Om vi antar att biblioteket tommath och, om n\u00f6dv\u00e4ndigt, symboliska l\u00e4nkar f\u00f6r tommath.so.0 har lagts till i systemet, kan den aktuella (vid tidpunkten f\u00f6r denna artikels skrivande) distributionen av Firebird 3.0.4 installeras till exempel i \/opt\/fb3:<\/p>\n<pre><code class=\"plaintext\">.\/install.sh -path \/opt\/fb3<\/code><\/pre>\n<p>\nEfter detta kan du stoppa systemtj\u00e4nsten Firebird och starta den str\u00f6mmade konverteringen. <\/p>\n<p><i>Vid stopp av Firebird b\u00f6r man ta h\u00e4nsyn till att processerna f\u00f6r Firebird 2.5 i Classic-l\u00e4get vanligtvis startas av xinetd \u2013 s\u00e5 antingen m\u00e5ste Firebird-tj\u00e4nsten st\u00e4ngas av f\u00f6r xinetd eller s\u00e5 m\u00e5ste xinetd stoppas helt.<\/i><\/p>\n<p>I firebird.conf f\u00f6r 3.0 p\u00e5 Linux beh\u00f6ver du inte ange MaxUnflushed-parametrarna (de fungerar endast p\u00e5 Windows) och \u00e4ndra inst\u00e4llningarna f\u00f6r Firebird 2.5. <\/p>\n<p>I Linux \u00e4r lokal (fil) \u00e5tkomst till Firebird 2.5 inte likv\u00e4rdig med embedded-versionen p\u00e5 Windows \u2013 server 2.5 kommer att arbeta i processen gbak (utan n\u00e4tverksdel), men \u00e5tkomstr\u00e4ttigheterna kommer att kontrolleras av anv\u00e4ndardatabasen, vilket inneb\u00e4r att b\u00e5de anv\u00e4ndarnamn och l\u00f6senord kr\u00e4vs: <\/p>\n<pre><code class=\"plaintext\">export ISC_USER=username ISC_PASSWORD=password\n\/opt\/firebird\/bin\/gbak -b \u2026 database25 stdout\n|\/opt\/fb3\/bin\/gbak -c \u2026 stdin database30<\/code><\/pre>\n<p>\nEfter en lyckad konvertering beh\u00f6ver du f\u00f6rst ta bort \"ytterligare\" Firebird 3.0, sedan \"huvud\" Firebird 2.5 och f\u00f6rst d\u00e4refter utf\u00f6ra en ren installation av Firebird 2.5 \u2013 helst via den vanliga installationsprogrammet tar.gz, inte genom f\u00f6rvar, eftersom versionen i f\u00f6rvaren kan vara f\u00f6r\u00e5ldrad.<\/p>\n<p>Dessutom, efter restaurering av databasen p\u00e5 Linux och ominstallation, m\u00e5ste du kontrollera att den nya databasen har anv\u00e4ndaren firebird som \u00e4gare.<\/p>\n<p>Om s\u00e5 inte \u00e4r fallet m\u00e5ste detta \u00e5tg\u00e4rdas<\/p>\n<pre><code class=\"plaintext\">chown firebird.firebird database<\/code><\/pre>\n<p>\n<b>Resultat<\/b><\/p>\n<p>F\u00f6rutom tids- och diskutrymmesbesparingar har den str\u00f6mmande konverteringen en annan viktig f\u00f6rdel \u2013 konverteringen av databasen g\u00f6rs utan att den befintliga Firebird 2.5 tas bort, vilket tydligt f\u00f6renklar \u00e5terst\u00e4llningen vid en misslyckad konvertering (oftast p\u00e5 grund av brist p\u00e5 utrymme eller en ov\u00e4ntad omstart under migrationsprocessen).<\/p>\n<p>Tidsbesparingen beror p\u00e5 att \"klassisk\" konvertering inneb\u00e4r \"backup-tid\" plus \"\u00e5terst\u00e4llningstid\". \u00c5terst\u00e4llningen best\u00e5r av tv\u00e5 delar: att l\u00e4sa data fr\u00e5n backup-filen och att bygga index.<\/p>\n<p>Vid str\u00f6mmande konvertering blir den totala tiden \"backup-tid plus fem-tio procent\" och \"indexbyggandet\".<\/p>\n<p>De specifika resultaten beror p\u00e5 databasens struktur, men i genomsnitt \u00e4r \u00e5terst\u00e4llningstiden ungef\u00e4r dubbelt s\u00e5 l\u00e5ng som backup-tiden. S\u00e5, om vi tar backup-tiden som en enhet, s\u00e5 inneb\u00e4r \"klassisk konvertering\" tre enheter tid och str\u00f6mmande konvertering tv\u00e5 enheter tid. Att \u00f6ka TempCacheLimit bidrar ocks\u00e5 till att f\u00f6rkorta tiden.<\/p>\n<p>Sammanfattningsvis m\u00f6jligg\u00f6r str\u00f6mmande konvertering i praktiken en besparing p\u00e5 30-40% av tiden f\u00f6r sekventiell backup och restaurering.<\/p>\n<p><b>Fr\u00e5gor?<\/b><\/p>\n<p>V\u00e4nligen skriv alla fr\u00e5gor i kommentarsf\u00e4ltet eller skicka dem till metodens f\u00f6rfattare och medf\u00f6rfattare till denna artikel \u2013 Vasily Sidorov, ledande systemingenj\u00f6r p\u00e5 \"iBase\", p\u00e5 adressen bs at ibase ru.<\/p>\n<p class=\"for_users_only_msg\">Endast registrerade anv\u00e4ndare kan delta i omr\u00f6stningen. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/auth\/login\/\">Logga in<\/a><\/noindex>, tack.<\/p>\n<h2 class=\"default-block__polling-title\">Vilken version av Firebird anv\u00e4nder du?<\/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 eller 1.0<\/p>\n<\/li>\n<\/ul>\n<p>    16 anv\u00e4ndare har r\u00f6stat. 1 anv\u00e4ndare avstod.<br \/>\n<br \/>K\u00e4lla: <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\/sv\/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=\"sv_SE\" \/>\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\/sv\/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\udd47Str\u00f6mmande konvertering av Firebird 2.5-databaser till ODS12-format (Firebird 3.0) | ProHoster","description":"Varje version av Firebird har sin egen version av formatet f\u00f6r databasens diskstrukturer \u2013 O(n)D(isk)S(tructure).","canonical_url":"https:\/\/prohoster.info\/sv\/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":"sv_SE","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\/sv\/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\/sv\/wp-json\/wp\/v2\/posts\/30280","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/comments?post=30280"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/30280\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media?parent=30280"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/categories?post=30280"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/tags?post=30280"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}