{"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\/en\/blog\/potochnaya-konvertatsiya-baz-firebird-2-5-v-format-ods12-firebird-3-0","title":{"rendered":"Streaming conversion of Firebird 2.5 databases to ODS12 format (Firebird 3.0)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Each version of Firebird has its own version of the database disk structure format \u2013 O(n)D(isk)S(tructure). Up to and including version 2.5, the Firebird engine could work with ODS from previous versions, meaning databases from older versions would open in the new version and operate in compatibility mode. However, the Firebird 3.0 engine only works with databases in its own ODS version 12.0.<\/p>\n<p>To upgrade to 3.0, the database from 2.5 must be converted to the new format using backup\/restore. Of course, we assume that the database has been prepped for conversion\u2014i.e., the metadata and queries have been checked for compatibility with Firebird 3.0.<\/p>\n<p>If you follow the standard approach, it means you need to back up on version 2.5, then install 3.0 and perform the restore. This procedure is acceptable if there is enough time, but when migrating large databases or simultaneously migrating several dozen databases, where time is tight, you can use streaming conversion, which is 30-40% faster. Read below for how to do this (on Windows and Linux).<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nThe general idea is to use a pipeline for acceleration:<\/p>\n<pre><code class=\"plaintext\">gbak -b \u2026 database25 stdout | gbak -c \u2026 stdin database30<\/code><\/pre>\n<p>\nGbak from 2.5 generates a backup in a linear format and directs it to stdout, which is immediately picked up via stdin by gbak from 3.0 to create a new database.<\/p>\n<p>You must organize such a pipeline using local (file) access methods, as network access (even through localhost) will significantly slow down the process.<\/p>\n<p>Below we discuss the details for Windows and Linux.<\/p>\n<p><b>Windows<\/b><\/p>\n<p>In the case of Windows, the easiest way is to create a completely standalone build of Firebird. For this you take <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/FirebirdSQL\/firebird\/releases\/download\/R2_5_8\/Firebird-2.5.8.27089-0_x64_embed.zip\">the embed archive of Firebird 2.5<\/a><\/noindex>, rename fbemded.dll to fbclient.dll, add utilities gbak.exe and (optionally) isql.exe from the regular 2.5 archive. <\/p>\n<p>Firebird 3.0 uses <noindex><a rel=\"nofollow\" href=\"https:\/\/firebirdsql.org\/en\/firebird-3-0\/\">a single build<\/a><\/noindex> and requires no further modifications.<\/p>\n<p>The minimal option (that does not require the installation of VS2008\/VS2010 runtime libraries on the target system) contains the following files:<\/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>\nAn experienced administrator may notice that the files intl\/fbintl.dll and intl\/fbintl.conf are not included in 2.5. This is indeed the case, as gbak does not use connection character sets and does not convert data between character sets, but on the 'receiving' side of Firebird 3.0, these files are necessary when creating indexes.<\/p>\n<p>In firebird.conf, it is recommended to add the following for Firebird 3.0:<\/p>\n<pre><code class=\"plaintext\">MaxUnflushedWrites = -1\nMaxUnflushedWriteTime = -1<\/code><\/pre>\n<p>\nAlso, it is advisable to set different values for IpcName for 2.5 and 3.0. <\/p>\n<p>When choosing values for other parameters in firebird.conf, we proceed from a simple consideration: during the data transfer stage, one process runs gbak 2.5, and another runs 3.0; then 2.5 completes its work and 3.0 begins to build indexes.<\/p>\n<p>To speed up the index building phase in 3.0, it is recommended to increase the TempCacheLimit parameter size to about 40% of RAM (if it is a dedicated server, of course).<\/p>\n<p>For example, if the server has 16 GB of RAM, you could set <\/p>\n<pre><code class=\"plaintext\">TempCacheLimit=6G<\/code><\/pre>\n<p>\n<i>Of course, such a value can only be set on 64-bit Firebird 3, since any 32-bit process cannot allocate more than 2 gigabytes of memory.<\/i><\/p>\n<p>For 2.5, this parameter does not need to be changed \u2013 it cannot exceed 2 gigabytes, and it does not affect speed during backup.<\/p>\n<p>Before performing the operation, it is necessary to check that the page cache in the database header is set to 0 (command <code>gstat -h databasename<\/code>, see the line Page buffers). <\/p>\n<p>If the cache is explicitly set in the DB header, it overrides the values from firebird.conf (and databases.conf in 3.0), and in case of inadequately large values, it can lead to excessive memory consumption and swapping.<\/p>\n<p>Next, copy the files to the target system. <\/p>\n<p>The conversion is performed after stopping the 'system' service of Firebird 2.5, in the command line with elevated rights to a local administrator (example):<\/p>\n<pre><code class=\"plaintext\">set ISC_USER=owner\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 this example, a 'forward slash' is used in quotes (a valid 'unix-style'), and the 'caret' (the '^' character) escapes the newline character, which is convenient for typing long commands. The -st(atus) option appeared in Firebird 2.5.8 and allows logging of the gbak process's runtime data (details \u2013 in the documentation).<\/p>\n<p><b>Linux<\/b><\/p>\n<p>On Linux, Firebird 3 depends on the tommath library. In CentOS (RHEL), this library is located in the epel repository; in Ubuntu (Debian), it is in the system.<\/p>\n<p>For CentOS, you need to first enable the epel repository and then proceed to <\/p>\n<pre><code class=\"plaintext\">yum install libtommath<\/code><\/pre>\n<p>\nUbuntu does not require additional repositories, but Ubuntu 16 and Ubuntu 18 install different package versions \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 locate tommath.so.1. <\/p>\n<p>The required path in Ubuntu is <code>\/usr\/lib\/x86_64-linux-gnu\/<\/code>, but it may vary in other Debian-based distributions.<\/p>\n<p>The second issue is that up to Firebird 3.0.1, there was no straightforward way to install two different server versions. The option \"compile from source with the required prefix\" is not considered due to its relative complexity.<\/p>\n<p>For Firebird 3.0.2 and later, 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) has been implemented.<\/p>\n<p>Assuming that the tommath library and, if necessary, the symlink for tommath.so.0 are added to the system, you can install the current (as of the writing of this article) 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 that, you can stop the Firebird system service and start the stream conversion. <\/p>\n<p><i>When stopping Firebird, keep in mind that Firebird 2.5 processes in Classic mode are usually started by xinetd \u2013 therefore, you either need to disable the firebird service for xinetd or stop xinetd completely.<\/i><\/p>\n<p>In firebird.conf for 3.0 on Linux, you do not need to set MaxUnflushed parameters (they only work on Windows) and change Firebird 2.5 settings. <\/p>\n<p>In Linux, local (file) access to Firebird 2.5 is not equivalent to the embedded option under Windows \u2013 server 2.5 will work in the gbak process (without the network part), but access rights will be checked by the user database, meaning that both a login and a password will be required: <\/p>\n<pre><code class=\"plaintext\">export ISC_USER=username ISC_PASSWORD=password\n\/opt\/firebird\/bin\/gbak -b \u2026 base25 stdout\n|\/opt\/fb3\/bin\/gbak -c \u2026 stdin base30<\/code><\/pre>\n<p>\nAfter successful conversion, you should first remove the \"additional\" Firebird 3.0, then the \"main\" Firebird 2.5, and only after that perform a clean installation of Firebird 2.5 \u2014 preferably from the standard tar.gz installer, not through repositories, as the version in repositories may be outdated.<\/p>\n<p>Also, after restoring the DB on Linux and reinstalling, make sure that the new DB has the user firebird as its owner.<\/p>\n<p>If not, you will need to correct it.<\/p>\n<pre><code class=\"plaintext\">chown firebird.firebird database<\/code><\/pre>\n<p>\n<b>Summary<\/b><\/p>\n<p>In addition to saving time and disk space, streaming conversion has another important advantage \u2013 the database transformation occurs without deleting the existing Firebird 2.5, which significantly simplifies the rollback in case of a failed conversion (most often due to lack of space or an unexpected reboot during the migration process).<\/p>\n<p>Time savings are associated with the fact that 'classic' conversion includes 'backup time' plus 'recovery time'. Recovery consists of two parts: reading data from the backup file and building the index.<\/p>\n<p>With streaming conversion, the total time is calculated as 'backup time plus five to ten percent' and 'index building time'.<\/p>\n<p>Specific results depend on the structure of the database, but on average, recovery time is approximately double that of backup time. Therefore, if we take the backup time as one unit, the 'classic conversion' takes three units of time, while streaming takes two units of time. Additionally, increasing TempCacheLimit helps reduce time further.<\/p>\n<p>Overall, streaming conversion in practice allows for a savings of 30-40% of the time compared to sequential backup and restore.<\/p>\n<p><b>Questions?<\/b><\/p>\n<p>Please direct all questions in the comments, or send them to the author of the methodology and co-author of this article \u2013 Vasiliy Sidorov, leading system engineer at 'iBase', at bs at ibase ru.<\/p>\n<p class=\"for_users_only_msg\">Only registered users can participate in the survey. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/auth\/login\/\">Please log in<\/a><\/noindex>, please.<\/p>\n<h2 class=\"default-block__polling-title\">Which version of Firebird are you using?<\/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 or 1.0<\/p>\n<\/li>\n<\/ul>\n<p>    16 users voted. 1 user abstained.<br \/>\n<br \/>Source: <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\/en\/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=\"en_US\" \/>\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\/en\/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\udd47Streaming conversion of Firebird 2.5 databases to ODS12 format (Firebird 3.0) | ProHoster","description":"Each version of Firebird has its own version of the database disk structure format \u2013 O(n)D(isk)S(tructure).","canonical_url":"https:\/\/prohoster.info\/en\/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":"en_US","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\/en\/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\/en\/wp-json\/wp\/v2\/posts\/30280","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=30280"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/30280\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=30280"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=30280"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=30280"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}