{"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\/nl\/blog\/potochnaya-konvertatsiya-baz-firebird-2-5-v-format-ods12-firebird-3-0","title":{"rendered":"Stroomconversie van Firebird 2.5 databases naar ODS12 formaat (Firebird 3.0)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Elke versie van Firebird heeft zijn eigen versie van het schijfstructuurformaat van de database \u2013 O(n)D(isk)S(tructure). Tot en met versie 2.5 kon de Firebird-engine werken met ODS van eerdere versies, wat betekent dat databases van oudere versies geopend konden worden door een nieuwe versie en in compatibiliteitsmodus werkten, maar de Firebird 3.0-engine werkt alleen met databases in zijn eigen ODS versie 12.0.<\/p>\n<p>Om over te stappen naar 3.0, moet de database van 2.5 omgezet worden naar het nieuwe formaat via backup\/restore. Uiteraard gaan we ervan uit dat de database voorafgaand aan de conversie is voorbereid \u2014 dat wil zeggen dat metadata en queries zijn gecontroleerd op compatibiliteit met Firebird 3.0.<\/p>\n<p>Als we de standaardaanpak volgen, betekent dit dat we een backup moeten maken op versie 2.5, vervolgens 3.0 moeten installeren en een restore moeten uitvoeren. Deze procedure is acceptabel als er voldoende tijd is, maar bij de migratie van grote databases, of bij de gelijktijdige migratie van meerdere tientallen databases, wanneer de tijd dringt, kan men gebruikmaken van de stroomconversie, die 30-40% sneller is. Hoe dit precies te doen (onder Windows en Linux), lees verder.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nHet algemene idee is dat we voor versnelling gebruikmaken van een pijplijn:<\/p>\n<pre><code class=\"plaintext\">gbak -b \u2026 database25 stdout | gbak -c \u2026 stdin database30<\/code><\/pre>\n<p>\nGbak van 2.5 genereert een backup in lineair formaat en stuurt deze naar stdout, die onmiddellijk via stdin door gbak van 3.0 wordt opgepikt en een nieuwe database aanmaakt.<\/p>\n<p>Zo'n pijplijn moet absoluut lokaal (bestands) toegang hebben, omdat netwerktoegang (zelfs via localhost) het proces aanzienlijk vertraagt.<\/p>\n<p>Hieronder bekijken we de details voor Windows en Linux.<\/p>\n<p><b>Windows<\/b><\/p>\n<p>In het geval van Windows is het het eenvoudigst om een volledig autonome versie van Firebird te maken. Hiervoor nemen we <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/FirebirdSQL\/firebird\/releases\/download\/R2_5_8\/Firebird-2.5.8.27089-0_x64_embed.zip\">de embed-archief van Firebird 2.5<\/a><\/noindex>, hernoemen fbemded.dll naar fbclient.dll, voegen vanuit het archief van de \"gewone\" 2.5 de hulpprogramma's gbak.exe en (optioneel) \u2013 isql.exe toe. <\/p>\n<p>Firebird 3.0 gebruikt <noindex><a rel=\"nofollow\" href=\"https:\/\/firebirdsql.org\/en\/firebird-3-0\/\">\u00e9\u00e9n enkele versie<\/a><\/noindex> en vereist geen aanpassingen.<\/p>\n<p>De minimaal vereiste versie (die geen runtime-bibliotheken VS2008\/VS2010 op het doelsysteem vereist) bevat de volgende bestanden:<\/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>\nEen ervaren administrator kan opmerken dat in 2.5 de bestanden intl\/fbintl.dll en intl\/fbintl.conf niet zijn inbegrepen. Dat klopt, omdat gbak de charset van de verbinding niet gebruikt en geen gegevens tussen charsets converteert, maar aan de 'ontvangende' kant van Firebird 3.0 zijn deze bestanden noodzakelijk bij het aanmaken van indexen.<\/p>\n<p>In firebird.conf wordt het aanbevolen om voor Firebird 3.0 toe te voegen:<\/p>\n<pre><code class=\"plaintext\">MaxUnflushedWrites = -1\nMaxUnflushedWriteTime = -1<\/code><\/pre>\n<p>\nDaarnaast is het wenselijk om verschillende waarden voor IpcName in te stellen voor 2.5 en 3.0. <\/p>\n<p>Bij het kiezen van waarden voor andere parameters in firebird.conf gaan we uit van de eenvoudige overweging dat gedurende de gegevensoverdracht in \u00e9\u00e9n proces gbak 2.5 draait, terwijl in een ander proces 3.0 draait. Daarna be\u00ebindigt 2.5 zijn werking en begint 3.0 met het bouwen van indexen.<\/p>\n<p>Om de fase van het bouwen van indexen in 3.0 te versnellen, is het aan te raden om de grootte van de parameter TempCacheLimit te verhogen tot ongeveer 40% RAM (tenzij dit een dedicated server is).<\/p>\n<p>Bijvoorbeeld, als de server 16 GB RAM heeft, dan kan men instellen: <\/p>\n<pre><code class=\"plaintext\">TempCacheLimit=6G<\/code><\/pre>\n<p>\n<i>Natuurlijk kan deze waarde alleen worden ingesteld bij de 64-bits Firebird 3, aangezien elk 32-bits proces niet meer dan 2 gigabyte geheugen kan toewijzen.<\/i><\/p>\n<p>Bij 2.5 hoeft deze parameter niet te worden gewijzigd \u2013 hij kan al niet groter zijn dan 2 gigabyte en heeft geen invloed op de snelheid tijdens het maken van een back-up.<\/p>\n<p>Voor het uitvoeren van de operatie dient gecontroleerd te worden of de pagina-cache in de header van de database is ingesteld op 0 (gebruik de opdracht <code>gstat -h databasename<\/code>, kijk in de regel Pagina buffers). <\/p>\n<p>Als de cache expliciet is ingesteld in de header van de database, dan overschrijft dit de waarden uit firebird.conf (en databases.conf in 3.0) en kan dit bij ongepast hoge waarden leiden tot overmatige geheugengebruik en swapping.<\/p>\n<p>Vervolgens kopi\u00ebren we de bestanden naar het doelsysteem. <\/p>\n<p>De conversie vindt plaats na het stoppen van de 'system' service van Firebird 2.5, in de commandoregel met verhoogde rechten tot lokale administrator (voorbeeld):<\/p>\n<pre><code class=\"plaintext\">set ISC_USER=eigenaar\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>\nIn dit voorbeeld wordt 'rechte schuine' in aanhalingstekens gebruikt (toegestaan 'unix-stijl'), en 'caret' (symbool '^') escape het teken voor nieuwe regel, wat handig is bij het typen van lange opdrachten. De optie -st(atus) is toegevoegd in Firebird 2.5.8 en maakt het mogelijk om gegevens over de looptijd van het gbak-proces in het logboek vast te leggen (details - in de documentatie).<\/p>\n<p><b>Linux<\/b><\/p>\n<p>Op Linux is Firebird 3 afhankelijk van de tommath-bibliotheek. In CentOS (RHEL) bevindt deze bibliotheek zich in het epel-repository, in Ubuntu (Debian) in het systeem.<\/p>\n<p>Voor CentOS moet eerst het epel-repository worden ingeschakeld en pas daarna moet worden gedaan <\/p>\n<pre><code class=\"plaintext\">yum install libtommath<\/code><\/pre>\n<p>\nVoor Ubuntu hoeft er geen extra repositories te worden ingeschakeld, maar in Ubuntu 16 en Ubuntu 18 worden verschillende versies van de pakketten ge\u00efnstalleerd - respectievelijk libtommath0 en libtommath1.<\/p>\n<p>Firebird 3.0 zoekt tommath.so.0 en voor Ubuntu 18 moet daarnaast een symlink naar tommath.so.1 worden aangemaakt. Hiervoor moet eerst tommath.so.1 worden gevonden. <\/p>\n<p>Het gewenste pad in Ubuntu is <code>\/usr\/lib\/x86_64-linux-gnu\/<\/code>, maar in andere op Debian gebaseerde distributies kan het anders zijn.<\/p>\n<p>Het tweede probleem heeft te maken met het feit dat tot Firebird 3.0.1 er geen gemakkelijke manier was om twee verschillende versies van de server te installeren. De optie 'compileer uit de bron met de juiste prefix' beschouwen we niet vanwege de relatief hoge arbeidsintensiteit.<\/p>\n<p>Voor Firebird 3.0.2 en hoger is er <noindex><a rel=\"nofollow\" href=\"http:\/\/tracker.firebirdsql.org\/browse\/CORE-5204\">een build met \u2013enable-binreloc<\/a><\/noindex> en een aparte installateur optie (-path pad).<\/p>\n<p>Als we ervan uitgaan dat de tommath-bibliotheek en, indien nodig, de symlink voor tommath.so.0 aan het systeem zijn toegevoegd, kunnen we de actuele (ten tijde van het schrijven van dit artikel) distributie Firebird 3.0.4 installeren in bijvoorbeeld \/opt\/fb3:<\/p>\n<pre><code class=\"plaintext\">.\/install.sh -path \/opt\/fb3<\/code><\/pre>\n<p>\nDaarna kan de systeemservice Firebird worden gestopt en kan de streamingconversie worden gestart. <\/p>\n<p><i>Bij het stoppen van Firebird moet rekening worden gehouden met het feit dat processen van Firebird 2.5 in de Classic-modus meestal door xinetd worden gestart - daarom moet de service firebird voor xinetd worden verboden of xinetd volledig worden gestopt.<\/i><\/p>\n<p>In firebird.conf voor 3.0 op Linux hoeven geen MaxUnflushed-parameters te worden ingesteld (ze werken alleen op Windows) en de instellingen voor Firebird 2.5 moeten niet worden gewijzigd. <\/p>\n<p>In Linux is lokale (bestand) toegang tot Firebird 2.5 niet gelijk aan de embedded variant onder Windows - server 2.5 zal draaien in het gbak proces (zonder netwerkgedeelte), maar de toegangsrechten worden gecontroleerd op de gebruikersdatabase, wat betekent dat niet alleen een gebruikersnaam, maar ook een wachtwoord vereist is: <\/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>\nNa succesvolle conversie moet eerst \u2018extra\u2019 Firebird 3.0 worden verwijderd, daarna \u2018hoofd\u2019 Firebird 2.5 en pas daarna moet een schone installatie van Firebird 2.5 worden uitgevoerd - het beste vanuit de standaard installateur tar.gz, en niet via de repositories, omdat de versie in de repositories verouderd kan zijn.<\/p>\n<p>Daarnaast moet na de database restauratie op Linux en herinstallatie worden gecontroleerd of de nieuwe database de eigenaar firebird heeft.<\/p>\n<p>Als dat niet het geval is, moet dit worden gecorrigeerd<\/p>\n<pre><code class=\"plaintext\">chown firebird.firebird database<\/code><\/pre>\n<p>\n<b>Conclusie<\/b><\/p>\n<p>Naast het besparen van tijd en schijfruimte heeft continue conversie nog een belangrijke voordelen \u2013 de database wordt omgevormd zonder de bestaande Firebird 2.5 te verwijderen, wat het terugdraaien bij een onsuccesvolle conversie aanzienlijk vereenvoudigt (meestal door gebrek aan ruimte of onverwachte herstart tijdens het migratieproces).<\/p>\n<p>De tijdsbesparing heeft te maken met het feit dat 'klassieke' conversie 'back-up tijd' plus 'hersteltijd' is. Het herstel bestaat uit twee delen: het lezen van gegevens uit het back-up bestand en het opbouwen van de index.<\/p>\n<p>Bij continue conversie is de totale tijd gelijk aan 'back-up tijd plus vijf- tot tien procent' en 'tijd voor het opbouwen van indexen'.<\/p>\n<p>De specifieke resultaten hangen af van de database-structuur, maar gemiddeld is de hersteltijd ongeveer twee keer de back-up tijd. Dus, als we de back-up tijd als \u00e9\u00e9n eenheid nemen, dan is de 'klassieke conversie' drie eenheden tijd, de continue conversie twee eenheden tijd. Het verhogen van TempCacheLimit helpt ook bij het verkorten van de tijd.<\/p>\n<p>Over het algemeen maakt continue conversie in de praktijk een tijdsbesparing van 30-40% mogelijk ten opzichte van de sequenti\u00eble back-up en herstel.<\/p>\n<p><b>Vragen?<\/b><\/p>\n<p>Stuur alstublieft al uw vragen in de comments, of richt ze aan de auteur van de methode en mede-auteur van dit artikel \u2014 Vasili Sidorov, hoofdsysteemingenieur bij 'iBase', op het adres bs at ibase ru.<\/p>\n<p class=\"for_users_only_msg\">Alleen geregistreerde gebruikers kunnen deelnemen aan de enqu\u00eate. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/auth\/login\/\">Log in<\/a><\/noindex>, alstublieft.<\/p>\n<h2 class=\"default-block__polling-title\">Welke versie van Firebird gebruikt u?<\/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 of 1.0<\/p>\n<\/li>\n<\/ul>\n<p>    16 gebruikers hebben gestemd. 1 gebruiker heeft zich onthouden.<br \/>\n<br \/>Bron: <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\/nl\/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=\"nl_NL\" \/>\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\/nl\/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\udd47Continue conversie van Firebird 2.5 naar ODS12 formaat (Firebird 3.0) | ProHoster","description":"Elke versie van Firebird heeft zijn eigen versie van het schijfstructuurformaat van de database \u2013 O(n)D(isk)S(tructuur).","canonical_url":"https:\/\/prohoster.info\/nl\/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":"nl_NL","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\/nl\/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\/nl\/wp-json\/wp\/v2\/posts\/30280","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/comments?post=30280"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/30280\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media?parent=30280"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/categories?post=30280"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/tags?post=30280"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}