{"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\/de\/blog\/potochnaya-konvertatsiya-baz-firebird-2-5-v-format-ods12-firebird-3-0","title":{"rendered":"Echtzeit-Konvertierung von Firebird 2.5 in das Format ODS12 (Firebird 3.0)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Jede Version von Firebird hat ihre eigene Version des Formats der Datenbankstruktur \u2013 O(n)D(isk)S(tructure). Bis einschlie\u00dflich Version 2.5 konnte die Firebird-Engine mit ODS fr\u00fcherer Versionen arbeiten, das hei\u00dft, Datenbanken aus \u00e4lteren Versionen konnten mit der neuen Version ge\u00f6ffnet und im Kompatibilit\u00e4tsmodus betrieben werden. Die Firebird-Engine 3.0 arbeitet jedoch nur mit Datenbanken in ihrer eigenen ODS-Version 12.0.<\/p>\n<p>Um auf 3.0 zu wechseln, muss die Datenbank von 2.5 in das neue Format \u00fcber Backup\/Restore konvertiert werden. Selbstverst\u00e4ndlich gehen wir davon aus, dass die Datenbank zuvor f\u00fcr die Konvertierung vorbereitet wurde \u2013 d.h. die Metadaten und Abfragen wurden auf die Kompatibilit\u00e4t mit Firebird 3.0 gepr\u00fcft.<\/p>\n<p>Folgt man dem Standardansatz, bedeutet dies, dass man ein Backup in Version 2.5 durchf\u00fchren muss, dann 3.0 installieren und ein Restore durchf\u00fchren. Dieses Verfahren ist akzeptabel, wenn gen\u00fcgend Zeit vorhanden ist, aber bei der Migration gro\u00dfer Datenbanken oder der gleichzeitigen Migration mehrerer Dutzend Datenbanken, wenn die Zeit dr\u00e4ngt, kann man die Streaming-Konvertierung nutzen, die 30-40 % schneller ist. Wie genau das geht (unter Windows und Linux), lesen Sie unten.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nDie Grundidee besteht darin, dass wir zur Beschleunigung eine Pipeline verwenden:<\/p>\n<pre><code class=\"plaintext\">gbak -b \u2026 database25 stdout | gbak -c \u2026 stdin database30<\/code><\/pre>\n<p>\nGbak von 2.5 erzeugt ein Backup im linearen Format und leitet es an stdout weiter, das sofort \u00fcber stdin von gbak von 3.0 erfasst wird und eine neue Datenbank erstellt.<\/p>\n<p>Eine solche Pipeline sollte unbedingt mit lokalem (Datei-)Zugriff organisiert werden, da der Netzwerkzugriff (selbst \u00fcber localhost) den Prozess erheblich verlangsamt.<\/p>\n<p>Im Folgenden betrachten wir die Einzelheiten f\u00fcr Windows und Linux.<\/p>\n<p><b>Windows<\/b><\/p>\n<p>Im Falle von Windows ist es am einfachsten, eine vollst\u00e4ndig eigenst\u00e4ndige Version von Firebird zu erstellen. Dazu verwenden wir <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/FirebirdSQL\/firebird\/releases\/download\/R2_5_8\/Firebird-2.5.8.27089-0_x64_embed.zip\">das Embed-Archiv von Firebird 2.5<\/a><\/noindex>, benennen die fbembed.dll in fbclient.dll um, f\u00fcgen die aus dem Archiv der \"normalen\" Version 2.5 die Utility gbak.exe und (nicht zwingend) \u2013 isql.exe hinzu. <\/p>\n<p>Firebird 3.0 verwendet <noindex><a rel=\"nofollow\" href=\"https:\/\/firebirdsql.org\/en\/firebird-3-0\/\">eine einheitliche Version<\/a><\/noindex> und erfordert keine weiteren Anpassungen.<\/p>\n<p>Die minimalste Variante (die keine Installation von Runtime-Bibliotheken VS2008\/VS2010 auf dem Zielsystem erfordert) enth\u00e4lt folgende Dateien:<\/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>\nEin erfahrener Administrator kann feststellen, dass in 2.5 die Dateien intl\/fbintl.dll und intl\/fbintl.conf nicht enthalten sind. Das ist tats\u00e4chlich der Fall, da gbak den Charset der Verbindung nicht nutzt und keine Daten zwischen Charsets konvertiert, jedoch sind diese Dateien auf der 'Empfangsseite' von Firebird 3.0 beim Erstellen von Indizes erforderlich.<\/p>\n<p>In firebird.conf wird empfohlen, Folgendes f\u00fcr Firebird 3.0 hinzuzuf\u00fcgen:<\/p>\n<pre><code class=\"plaintext\">MaxUnflushedWrites = -1\nMaxUnflushedWriteTime = -1<\/code><\/pre>\n<p>\nEs ist auch w\u00fcnschenswert, einen unterschiedlichen Wert f\u00fcr IpcName f\u00fcr 2.5 und 3.0 festzulegen. <\/p>\n<p>Bei der Auswahl der Werte anderer Parameter in firebird.conf gehen wir von einer einfachen \u00dcberlegung aus: In einem Prozess l\u00e4uft gbak mit 2.5 und in einem anderen mit 3.0, dann beendet 2.5 seine Arbeit und 3.0 beginnt mit dem Aufbau der Indizes.<\/p>\n<p>Um die Phase des Aufbaus von Indizes in 3.0 zu beschleunigen, wird empfohlen, die Gr\u00f6\u00dfe des Parameters TempCacheLimit auf etwa 40 % RAM zu erh\u00f6hen (wenn es sich um einen dedizierten Server handelt, versteht sich).<\/p>\n<p>Wenn der Server 16 GB RAM hat, kann man setzen <\/p>\n<pre><code class=\"plaintext\">TempCacheLimit=6G<\/code><\/pre>\n<p>\n<i>Nat\u00fcrlich kann dieser Wert nur bei Firebird 3 mit 64 Bit gesetzt werden, da jeder 32-Bit-Prozess nicht mehr als 2 Gigabyte Speicher zuweisen kann.<\/i><\/p>\n<p>Bei 2.5 muss dieser Parameter nicht ge\u00e4ndert werden \u2013 er kann ohnehin nicht gr\u00f6\u00dfer als 2 Gigabyte sein und hat keinen Einfluss auf die Geschwindigkeit beim Backup.<\/p>\n<p>Vor der Durchf\u00fchrung der Operation muss \u00fcberpr\u00fcft werden, ob der Seiten-Cache im Header der Datenbank auf 0 gesetzt ist (Befehl <code>gstat -h databasename<\/code>, siehe Zeile Page buffers). <\/p>\n<p>Wenn der Cache ausdr\u00fccklich im Header der DB festgelegt ist, \u00fcberschreibt er die Werte aus firebird.conf (und databases.conf in 3.0), und bei unangemessen hohen Werten kann dies zu \u00fcberm\u00e4\u00dfigem Speicherverbrauch und Swapping f\u00fchren.<\/p>\n<p>Anschlie\u00dfend kopieren wir die Dateien auf das Zielsystem. <\/p>\n<p>Die Konvertierung erfolgt nach dem Stoppen des 'System'-Dienstes Firebird 2.5 \u00fcber die Eingabeaufforderung mit erh\u00f6hten Rechten als lokaler Administrator (Beispiel):<\/p>\n<pre><code class=\"plaintext\">set ISC_USER=Besitzer\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 diesem Beispiel wird der 'schr\u00e4ge' Slash in Anf\u00fchrungszeichen verwendet (erlaubter 'Unix-Stil'), und der 'Caret' (Symbol '^') maskiert das Zeilenwechselzeichen, was bei der Eingabe von langen Befehlen praktisch ist. Die Option -st(atus) wurde in Firebird 2.5.8 eingef\u00fchrt und erm\u00f6glicht es, Protokolldaten \u00fcber die Laufzeit des gbak-Prozesses zu erfassen (Details in der Dokumentation).<\/p>\n<p><b>Linux<\/b><\/p>\n<p>Unter Linux h\u00e4ngt Firebird 3 von der Bibliothek tommath ab. In CentOS (RHEL) befindet sich diese Bibliothek im EPEL-Repository, in Ubuntu (Debian) im System.<\/p>\n<p>F\u00fcr CentOS muss zuerst das EPEL-Repository aktiviert und erst dann gemacht werden <\/p>\n<pre><code class=\"plaintext\">yum install libtommath<\/code><\/pre>\n<p>\nF\u00fcr Ubuntu m\u00fcssen keine zus\u00e4tzlichen Repositories hinzugef\u00fcgt werden, aber in Ubuntu 16 und Ubuntu 18 werden unterschiedliche Paketversionen installiert \u2013 libtommath0 und libtommath1, entsprechend.<\/p>\n<p>Firebird 3.0 sucht nach tommath.so.0 und f\u00fcr Ubuntu 18 muss zus\u00e4tzlich ein Link (symlink) von tommath.so.0 auf tommath.so.1 erstellt werden. Dazu muss zun\u00e4chst tommath.so.1 gefunden werden. <\/p>\n<p>Der gesuchte Pfad in Ubuntu ist <code>\/usr\/lib\/x86_64-linux-gnu\/<\/code>, aber in anderen Debian-basierten Distributionen kann es anders sein.<\/p>\n<p>Das zweite Problem besteht darin, dass es bis Firebird 3.0.1 keinen einfachen Weg gab, zwei verschiedene Serverversionen zu installieren. Die Option \u201eaus dem Quellcode mit dem ben\u00f6tigten Pr\u00e4fix kompilieren\u201c betrachten wir aufgrund ihres relativen Aufwands nicht.<\/p>\n<p>F\u00fcr Firebird 3.0.2 und h\u00f6her wurde <noindex><a rel=\"nofollow\" href=\"http:\/\/tracker.firebirdsql.org\/browse\/CORE-5204\">eine Kompilierung mit \u2013enable-binreloc<\/a><\/noindex> und eine separate Installationsoption (-path Pfad) implementiert.<\/p>\n<p>Vorausgesetzt, die Bibliothek tommath und, falls n\u00f6tig, der Symlink f\u00fcr tommath.so.0 wurden zum System hinzugef\u00fcgt, kann das aktuelle (zum Zeitpunkt der Erstellung dieses Artikels) Paket von Firebird 3.0.4 in beispielsweise \/opt\/fb3 installiert werden:<\/p>\n<pre><code class=\"plaintext\">.\/install.sh -path \/opt\/fb3<\/code><\/pre>\n<p>\nDanach kann der Systemdienst Firebird gestoppt und die laufende Konvertierung gestartet werden. <\/p>\n<p><i>Beim Stoppen von Firebird muss beachtet werden, dass Prozesse von Firebird 2.5 im Classic-Modus normalerweise von xinetd gestartet werden \u2013 daher ist es erforderlich, entweder den Firebird-Dienst f\u00fcr xinetd zu deaktivieren oder xinetd vollst\u00e4ndig zu stoppen.<\/i><\/p>\n<p>In firebird.conf f\u00fcr 3.0 unter Linux m\u00fcssen keine MaxUnflushed-Parameter angegeben werden (sie funktionieren nur unter Windows), und die Einstellungen von Firebird 2.5 d\u00fcrfen nicht ge\u00e4ndert werden. <\/p>\n<p>In Linux ist der lokale (Datei-)Zugriff von Firebird 2.5 nicht \u00e4quivalent zur embedded-Variante unter Windows \u2013 der Server 2.5 wird im gbak-Prozess (ohne Netzwerkkomponente) laufen, aber die Zugriffsrechte werden \u00fcber die Benutzerdatenbank \u00fcberpr\u00fcft, was bedeutet, dass sowohl ein Login als auch ein Passwort erforderlich sein werden: <\/p>\n<pre><code class=\"plaintext\">export ISC_USER=username ISC_PASSWORD=password\n\/opt\/firebird\/bin\/gbak -b \u2026 datenbank25 stdout\n|\/opt\/fb3\/bin\/gbak -c \u2026 stdin datenbank30<\/code><\/pre>\n<p>\nNach erfolgreicher Konvertierung muss zuerst der \u201ezus\u00e4tzliche\u201c Firebird 3.0 entfernt, dann der \u201ehaupts\u00e4chliche\u201c Firebird 2.5 und erst danach eine Neuinstallation von Firebird 2.5 durchgef\u00fchrt werden \u2013 am besten \u00fcber den standardm\u00e4\u00dfigen Installer tar.gz, nicht durch Repositories, da die Version in den Repositories m\u00f6glicherweise veraltet ist.<\/p>\n<p>Au\u00dferdem muss nach der Datenbankwiederherstellung auf Linux und der Neuinstallation \u00fcberpr\u00fcft werden, dass die neue Datenbank dem Benutzer firebird geh\u00f6rt.<\/p>\n<p>Falls dies nicht der Fall ist, muss das ge\u00e4ndert werden<\/p>\n<pre><code class=\"plaintext\">chown firebird.firebird datenbank<\/code><\/pre>\n<p>\n<b>Fazit<\/b><\/p>\n<p>Neben der Zeit- und Platzeinsparung auf der Festplatte hat die kontinuierliche Konvertierung noch einen weiteren wichtigen Vorteil \u2013 die Datenbank wird ohne L\u00f6schung der vorhandenen Firebird 2.5 umgewandelt, was den Rollback bei einer fehlgeschlagenen Konvertierung (h\u00e4ufig verursacht durch Platzmangel oder unerwartetes Neustarten w\u00e4hrend des Migrationsprozesses) erheblich erleichtert.<\/p>\n<p>Die Zeiteinsparung h\u00e4ngt damit zusammen, dass die \"klassische\" Konvertierung \"Backup-Zeit\" plus \"Wiederherstellungszeit\" umfasst. Die Wiederherstellung besteht aus zwei Teilen: dem Lesen der Daten aus der Backup-Datei und dem Erstellen des Indexes.<\/p>\n<p>Bei der kontinuierlichen Konvertierung ergibt sich die Gesamtzeit als \"Backup-Zeit plus f\u00fcnf bis zehn Prozent\" und \"Zeit f\u00fcr den Indexaufbau\".<\/p>\n<p>Die konkreten Ergebnisse h\u00e4ngen von der Struktur der Datenbank ab, aber im Durchschnitt betr\u00e4gt die Wiederherstellungszeit etwa das Doppelte der Backup-Zeit. Daher, wenn man die Backup-Zeit als Einheit betrachtet, dauert die \"klassische Konvertierung\" drei Einheiten Zeit, die kontinuierliche Konvertierung \u2013 zwei Einheiten. Eine Erh\u00f6hung des TempCacheLimits hilft zus\u00e4tzlich, die Zeit zu reduzieren.<\/p>\n<p>Insgesamt erm\u00f6glicht die kontinuierliche Konvertierung in der Praxis eine Einsparung von 30-40% der Zeit im Vergleich zu nacheinander durchgef\u00fchrten Backups und Restaurierungen.<\/p>\n<p><b>Fragen?<\/b><\/p>\n<p>Bitte alle Fragen in den Kommentaren schreiben oder an den Autor der Methode und Mitautoren dieses Artikels \u2013 Wladimir Sidorov, Senior System Engineer bei \"iBase\", unter der Adresse bs at ibase ru senden.<\/p>\n<p class=\"for_users_only_msg\">Nur registrierte Benutzer k\u00f6nnen an der Umfrage teilnehmen. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/auth\/login\/\">Bitte einloggen<\/a><\/noindex>.<\/p>\n<h2 class=\"default-block__polling-title\">Welche Version von Firebird verwenden Sie?<\/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 oder 1.0<\/p>\n<\/li>\n<\/ul>\n<p>    16 Benutzer haben abgestimmt. 1 Benutzer hat sich enthalten.<br \/>\n<br \/>Quelle: <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.1.1 - 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\/de\/blog\/potochnaya-konvertatsiya-baz-firebird-2-5-v-format-ods12-firebird-3-0\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\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\/de\/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\udd47Kontinuierliche Konvertierung von Firebird 2.5 in das ODS12-Format (Firebird 3.0) | ProHoster","description":"Jede Version von Firebird hat ihre eigene Version des Formats f\u00fcr Festplattendatenstrukturen \u2013 O(n)D(isk)S(tructure).","canonical_url":"https:\/\/prohoster.info\/de\/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":"de_DE","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\/de\/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\/de\/wp-json\/wp\/v2\/posts\/30280","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=30280"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/30280\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=30280"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=30280"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=30280"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}