{"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\/da\/blog\/potochnaya-konvertatsiya-baz-firebird-2-5-v-format-ods12-firebird-3-0","title":{"rendered":"Streaming konvertering af Firebird 2.5 databaser til ODS12 format (Firebird 3.0)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Hver version af Firebird har sin egen version af diskstrukturformatet \u2013 O(n)D(isk)S(tructure). Indtil version 2.5 kunne Firebird-motoren arbejde med ODS fra tidligere versioner, hvilket betyder, at databaser fra \u00e6ldre versioner kunne \u00e5bnes af den nye version og arbejde i kompatibilitetsmode. Men Firebird 3.0 fungerer kun med databaser i sin egen ODS version 12.0.<\/p>\n<p>For at opgradere til 3.0 skal databasen fra 2.5 konverteres til det nye format via backup\/restaurering. Selvf\u00f8lgelig foruds\u00e6tter vi, at databasen er blevet forberedt til konverteringen \u2013 det vil sige, at metadata og foresp\u00f8rgsler er blevet testet for kompatibilitet med Firebird 3.0.<\/p>\n<p>Hvis man f\u00f8lger den standard tilgang, betyder det, at man skal lave en backup ved version 2.5, derefter installere 3.0 og foretage en restaurering. Denne procedure er acceptabel, hvis man har tilstr\u00e6kkeligt med tid, men ved migrering af store databaser, eller ved samtidig migrering af flere dusin databaser, n\u00e5r tiden er knap, kan man anvende streaming konvertering, som er 30-40% hurtigere. Hvordan man g\u00f8r det (under Windows og Linux), kan du l\u00e6se om nedenfor.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nDen overordnede id\u00e9 er, at vi vil bruge en pipeline for at accelerere processen:<\/p>\n<pre><code class=\"plaintext\">gbak -b \u2026 database25 stdout | gbak -c \u2026 stdin database30<\/code><\/pre>\n<p>\nGbak fra 2.5 genererer en backup i et line\u00e6rt format og sender det til stdout, som straks fanges af gbak fra 3.0 via stdin, hvilket skaber en ny database.<\/p>\n<p>Det er n\u00f8dvendigt at organisere en s\u00e5dan pipeline med lokal (fil) adgangen, da netv\u00e6rksadgang (selv via localhost) vil s\u00e6nke hastigheden v\u00e6sentligt.<\/p>\n<p>Nedenfor diskuterer vi detaljerne for Windows og Linux.<\/p>\n<p><b>Windows<\/b><\/p>\n<p>I tilf\u00e6lde af Windows er det nemmeste at lave en helt autonom version af Firebird. Til dette tager 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-arkivet Firebird 2.5<\/a><\/noindex>, omd\u00f8ber fbembedded.dll til fbclient.dll, tilf\u00f8jer v\u00e6rkt\u00f8jet gbak.exe fra arkivet af \"normal\" 2.5 og (valgfrit) \u2013 isql.exe. <\/p>\n<p>Firebird 3.0 bruger <noindex><a rel=\"nofollow\" href=\"https:\/\/firebirdsql.org\/en\/firebird-3-0\/\">en enkelt opbygning<\/a><\/noindex> og kr\u00e6ver ingen tilpasninger.<\/p>\n<p>Den mest minimale version (som ikke kr\u00e6ver installation af runtime-bibliotekerne VS2008\/VS2010 p\u00e5 m\u00e5lsystemet) indeholder f\u00f8lgende 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 administrator kan bem\u00e6rke, at intl\/fbintl.dll og intl\/fbintl.conf ikke er inkluderet i 2.5. Det er faktisk korrekt, da gbak ikke bruger forbindelse charset og ikke konverterer data mellem charsets, men p\u00e5 \"modtagelsessiden\" kr\u00e6ves disse filer i Firebird 3.0 ved oprettelse af indekser.<\/p>\n<p>Det anbefales at tilf\u00f8je f\u00f8lgende til firebird.conf for Firebird 3.0:<\/p>\n<pre><code class=\"plaintext\">MaxUnflushedWrites = -1\nMaxUnflushedWriteTime = -1<\/code><\/pre>\n<p>\nDet er ogs\u00e5 \u00f8nskeligt at indstille forskellige v\u00e6rdier for IpcName til 2.5 og 3.0. <\/p>\n<p>N\u00e5r vi v\u00e6lger v\u00e6rdier for andre parametre i firebird.conf, tager vi udgangspunkt i den enkle betragtning, at i en proces virker gbak i 2.5, mens den i en anden virker i 3.0; derefter afslutter 2.5 sit arbejde, og 3.0 begynder opbygningen af indekser.<\/p>\n<p>For at accelerere indeksopbygningsfasen i 3.0 anbefales det at \u00f8ge st\u00f8rrelsen p\u00e5 parameteren TempCacheLimit til ca. 40 % RAM (hvis det er en dedikeret server, selvf\u00f8lgelig).<\/p>\n<p>For eksempel, hvis serveren har 16 GB RAM, kan man s\u00e6tte <\/p>\n<pre><code class=\"plaintext\">TempCacheLimit=6G<\/code><\/pre>\n<p>\n<i>Selvf\u00f8lgelig kan en s\u00e5dan v\u00e6rdi kun indstilles for 64-bit Firebird 3, da enhver 32-bit proces ikke kan allokere mere end 2 gigabyte hukommelse.<\/i><\/p>\n<p>For 2.5 er det ikke n\u00f8dvendigt at \u00e6ndre denne parameter \u2013 den kan ikke v\u00e6re st\u00f8rre end 2 gigabyte, og den p\u00e5virker ikke hastigheden under backup.<\/p>\n<p>F\u00f8r udf\u00f8relsen af operationen skal du tjekke, at sidecache i databasehovedet er indstillet til 0 (kommandoen <code>gstat -h databasename<\/code>, se linjen Page buffers). <\/p>\n<p>Hvis cachen er angivet eksplicit i DB-headeren, overskriver den v\u00e6rdierne fra firebird.conf (og databases.conf i 3.0), og i tilf\u00e6lde af urealistisk store v\u00e6rdier kan det f\u00f8re til overdreven hukommelsesforbrug og swap.<\/p>\n<p>Dern\u00e6st kopierer vi filerne til det \u00f8nskede system. <\/p>\n<p>Konverteringen udf\u00f8res efter stop af \"system\"-tjenesten Firebird 2.5, i kommandoprompten med h\u00e6vet rettigheder til lokal administrator (eksempel):<\/p>\n<pre><code class=\"plaintext\">set ISC_USER=ejeren\n\"25\/gbak\" -z -b -g -v -st t -y 25.log database25 stdout|^\n\"30\/gbak\" -z -c -v -st t -y 30.log stdin database30<\/code><\/pre>\n<p>\nI dette eksempel bruges \"slags\" i citationstegn (g\u00e6ldende \"unix-style\"), mens \"caret\" (symbolet \"^\") undg\u00e5r linjeskift, hvilket er praktisk ved indtastning af lange kommandoer. Muligheden -st(atus) dukkede op i Firebird 2.5.8 og tillader at registrere oplysninger om procesgbaks k\u00f8rselstid (detaljer \u2013 i dokumentationen).<\/p>\n<p><b>Linux<\/b><\/p>\n<p>P\u00e5 Linux afh\u00e6nger Firebird 3 af tommath-biblioteket. I CentOS (RHEL) findes dette bibliotek i epel-repositoriet, i Ubuntu (Debian) i \u2013 systembiblioteket.<\/p>\n<p>For CentOS, you need to first enable the epel repository and only then proceed with <\/p>\n<pre><code class=\"plaintext\">yum install libtommath<\/code><\/pre>\n<p>\nUbuntu does not require additional repositories, but in Ubuntu 16 and Ubuntu 18, different versions of the packages are installed \u2013 libtommath0 and libtommath1, respectively.<\/p>\n<p>Firebird 3.0 looks for tommath.so.0, and for Ubuntu 18, you also need to create a symlink from tommath.so.0 to tommath.so.1. First, you need to find tommath.so.1. <\/p>\n<p>The required path in Ubuntu is <code>\/usr\/lib\/x86_64-linux-gnu\/<\/code>, but it may be different in other Debian-based distributions.<\/p>\n<p>The second issue is that until Firebird 3.0.1, there was no simple way to install two different versions of the server. The option of \u2018compiling from source with the desired prefix\u2019 is not considered due to its relative complexity.<\/p>\n<p>For Firebird 3.0.2 and above, a <noindex><a rel=\"nofollow\" href=\"http:\/\/tracker.firebirdsql.org\/browse\/CORE-5204\">build with \u2013enable-binreloc<\/a><\/noindex> and a separate installer option (-path path) have been implemented.<\/p>\n<p>Assuming that the tommath library and, if necessary, the symlink for tommath.so.0 have been added to the system, you can install the current (as of this writing) distribution of Firebird 3.0.4 in, for example, \/opt\/fb3:<\/p>\n<pre><code class=\"plaintext\">.\/install.sh -path \/opt\/fb3<\/code><\/pre>\n<p>\nAfter this, you can stop the Firebird system service and start the streaming conversion. <\/p>\n<p><i>When stopping Firebird, it should be noted that the Firebird 2.5 processes in Classic mode are usually started by xinetd \u2013 so you need to either disable the firebird service for xinetd or stop xinetd completely.<\/i><\/p>\n<p>In firebird.conf for 3.0 on Linux, it is not necessary to set MaxUnflushed parameters (they only work on Windows) and to change the settings of Firebird 2.5. <\/p>\n<p>In Linux, local (file) access to Firebird 2.5 is not equivalent to the embedded variant under Windows \u2013 server 2.5 will operate in the gbak process (without the network component), but access rights will be checked against the user database, meaning that a username and password will be required: <\/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>\nAfter successful conversion, you first need to delete the \u2018additional\u2019 Firebird 3.0, then the \u2018main\u2019 Firebird 2.5, and only after that perform a clean installation of Firebird 2.5 \u2014 and it's best to do this from the standard tar.gz installer, rather than through repositories, since the version in the repositories may be outdated.<\/p>\n<p>Also, after restoring the database on Linux and reinstalling, you need to check that the new database has the firebird user as its owner.<\/p>\n<p>If this is not the case, you will need to fix it<\/p>\n<pre><code class=\"plaintext\">chown firebird.firebird database<\/code><\/pre>\n<p>\n<b>Resultat<\/b><\/p>\n<p>Udover tids- og pladsbesparelse p\u00e5 disken har den str\u00f8mmende konvertering endnu en vigtig fordel \u2013 databasen konverteres uden at slette den eksisterende Firebird 2.5, hvilket g\u00f8r det betydeligt lettere at fortryde i tilf\u00e6lde af en mislykket konvertering (som oftest skyldes utilstr\u00e6kkelig plads eller en uventet genstart under migrationsprocessen).<\/p>\n<p>Tidsbesparelsen skyldes, at \"klassisk\" konvertering er lig med \"backup-tiden\" plus \"gengivelsestiden\". Gengivelsen best\u00e5r af to dele: l\u00e6sning af data fra backup-filen og opbygning af indekset.<\/p>\n<p>Ved str\u00f8mmende konvertering beregnes den samlede tid som \"backup-tiden plus fem til ti procent\" og \"tid til opbygning af indekser\".<\/p>\n<p>De specifikke resultater afh\u00e6nger af databasens struktur, men gennemsnitligt er gengivelsestiden cirka det dobbelte af backup-tiden. Derfor, hvis vi tager backup-tiden som en enhed, s\u00e5 kr\u00e6ver \"klassisk konvertering\" tre enheder tid, mens den str\u00f8mmende konvertering kr\u00e6ver to enheder tid. Det hj\u00e6lper desuden at \u00f8ge TempCacheLimit for at reducere tiden.<\/p>\n<p>Generelt set tillader str\u00f8mmende konvertering i praksis en besparelse p\u00e5 30-40% i tid i forhold til sekventiel backup og gendannelse.<\/p>\n<p><b>Sp\u00f8rgsm\u00e5l?<\/b><\/p>\n<p>Venligst send alle sp\u00f8rgsm\u00e5l i kommentarerne, eller kontakt forfatteren af metoden og medforfatteren af denne artikel \u2013 Vasily Sidorov, senior systemingeni\u00f8r hos \"iBase\", p\u00e5 adressen bs at ibase ru.<\/p>\n<p class=\"for_users_only_msg\">Kun registrerede brugere kan deltage i unders\u00f8gelsen. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/auth\/login\/\">Log ind<\/a><\/noindex>, please.<\/p>\n<h2 class=\"default-block__polling-title\">Hvilken version af Firebird bruger 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 brugere har stemt. 1 bruger har undladt at stemme.<br \/>\n<br \/>Kilde: <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.3 - 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\/da\/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.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"da_DK\" \/>\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\/da\/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\u00f8mmende konvertering af Firebird 2.5 til ODS12-format (Firebird 3.0) | ProHoster","description":"Hver version af Firebird har sin egen version af formatet for diskstrukturer i databasen \u2013 O(n)D(isk)S(tructure).","canonical_url":"https:\/\/prohoster.info\/da\/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":"da_DK","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\/da\/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\/da\/wp-json\/wp\/v2\/posts\/30280","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/comments?post=30280"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/30280\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media?parent=30280"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/categories?post=30280"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/tags?post=30280"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}