{"id":857,"date":"2020-12-12T11:39:25","date_gmt":"2020-12-12T10:39:25","guid":{"rendered":"https:\/\/explainit.pl\/wordpress\/?p=857"},"modified":"2021-01-12T11:42:39","modified_gmt":"2021-01-12T10:42:39","slug":"weryfikacja-poprawnosci-kopii-bezpieczenstwa-w-postgresql-13","status":"publish","type":"post","link":"https:\/\/explainit.pl\/wordpress\/2020\/12\/12\/weryfikacja-poprawnosci-kopii-bezpieczenstwa-w-postgresql-13\/","title":{"rendered":"Weryfikacja poprawno\u015bci kopii bezpiecze\u0144stwa w PostgreSQL 13"},"content":{"rendered":"\n<p><\/p>\n\n\n\n<p>Spo\u015br\u00f3d wielu nowo\u015bci, jakie pojawi\u0142y si\u0119 w wersji 13 serwera PostgreSQL, wielu z nas doceni interesuj\u0105ce narz\u0119dzie, umo\u017cliwiaj\u0105ce weryfikacj\u0119 poprawno\u015bci przechowywanej fizycznej kopii bezpiecze\u0144stwa: <code>pg_verifybackup<\/code>.<\/p>\n\n\n\n<p>Na wst\u0119pie nale\u017cy zauwa\u017cy\u0107, \u017ce podczas wykonywania fizycznej kopii bezpiecze\u0144stwa za pomoc\u0105 <code>pg_basebackup<\/code>, teraz generowany jest specjalny plik deskryptora, nazwany backup_manifest, kt\u00f3ry zawiera wykaz wszystkich plik\u00f3w wchodz\u0105cych w sk\u0142ad kopii bezpiecze\u0144stwa, wraz z ich sumami kontrolnymi. Dodatkowo, plik backup_manifest zawiera r\u00f3wnie\u017c deklaracj\u0119 zakresu rekord\u00f3w WAL, kt\u00f3re b\u0119d\u0105 niezb\u0119dne do usp\u00f3jnienia zawarto\u015bci kopii bezpiecze\u0144stwa, gdy kopia zostanie u\u017cyta do odtworzenia stanu bazy danych po awarii. I w\u0142a\u015bnie z tego pliku korzysta nowe narz\u0119dzie <code>pg_verifybackup<\/code>, sprawdzaj\u0105ce zar\u00f3wno obecno\u015b\u0107 ka\u017cdego z plik\u00f3w kopii bezpiecze\u0144stwa, jego sum\u0119 kontroln\u0105, a tak\u017ce weryfikuj\u0105ce poprawno\u015b\u0107 zabezpieczonych plik\u00f3w WAL w podanym zakresie rekord\u00f3w (u\u017cyto do <code>pg_waldump<\/code> w trybie cichym).<\/p>\n\n\n\n<p>W ramach prostej demonstracji zilustrujemy u\u017cycie narz\u0119dzia <code>pg_verifybackup<\/code>. W pierwszym kroku wykonujemy fizyczn\u0105 kopi\u0119 bezpiecze\u0144stwa naszego katalogu danych:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">$ pg_basebackup -D backups\/daily<\/pre>\n\n\n\n<p>Przyjrzyjmy si\u0119 zawarto\u015bci wygenerowanego pliku backup_manifest:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">$ less backups\/daily\/backup_manifest\n{ \"PostgreSQL-Backup-Manifest-Version\": 1,\n\"Files\": [\n{ \"Path\": \"backup_label\", \"Size\": 226, \"Last-Modified\": \"2020-12-12 10:04:23 GMT\", \"Checksum-Algorithm\": \"CRC32C\", \"Checksum\": \"c927d580\" },\n{ \"Path\": \"global\/1262\", \"Size\": 8192, \"Last-Modified\": \"2020-12-03 17:35:59 GMT\", \"Checksum-Algorithm\": \"CRC32C\", \"Checksum\": \"ae6ede64\" },\n...\n{ \"Path\": \"global\/pg_control\", \"Size\": 8192, \"Last-Modified\": \"2020-12-12 10:04:22 GMT\", \"Checksum-Algorithm\": \"CRC32C\", \"Checksum\": \"43872087\" }],\n\"WAL-Ranges\": [{ \"Timeline\": 1, \"Start-LSN\": \"0\/EB000028\", \"End-LSN\": \"0\/EB000138\" }],\n\"Manifest-Checksum\": \"04e59701bdafafec5f77117cadd2425e863397a4a1c8447cd34900062b24e1c1\"}<\/pre>\n\n\n\n<p>Skorzystajmy teraz z <code>pg_verifybackup<\/code> do weryfikacji poprawno\u015bci utworzonej kopii bezpiecze\u0144stwa:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">$ pg_verifybackup backups\/daily\nbackup successfully verified<\/pre>\n\n\n\n<p>Wy\u015bwietlony komunikat potwierdza poprawno\u015b\u0107 znajduj\u0105cej si\u0119 na dysku kopii bezpiecze\u0144stwa. A jak wygl\u0105da\u0142by wy\u015bwietlony raport, gdyby istotnie kopia by\u0142a uszkodzona? Oto przyk\u0142ad:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># uszkadzamy jeden z plik\u00f3w\n$ dd of=backups\/daily\/global\/pg_control bs=8192 conv=notrunc seek=0 &lt;&lt;EOF\nXXX\nEOF\n# usuwamy pliki WAL\n$ rm backups\/daily\/pg_wal\/*\n# weryfikujemy poprawno\u015b\u0107 kopii bezpiecze\u0144stwa\n$ pg_verifybackup backups\/daily\npg_verifybackup: error: checksum mismatch for file \"global\/pg_control\"\npg_waldump: fatal: could not find any WAL file\npg_verifybackup: error: WAL parsing failed for timeline 1<\/pre>\n\n\n\n<p>Podsumowuj\u0105c, <code>pg_verifybackup<\/code> to bardzo cenne i potrzebne narz\u0119dzie, kt\u00f3re powinno by\u0107 stosowane jako element polityki ochrony baz danych przed skutkami awarii.<\/p>\n\n\n\n<p>Dokumentacja: <a href=\"https:\/\/www.postgresql.org\/docs\/13\/app-pgverifybackup.html\">https:\/\/www.postgresql.org\/docs\/13\/app-pgverifybackup.html<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Spo\u015br\u00f3d wielu nowo\u015bci, jakie pojawi\u0142y si\u0119 w wersji 13 serwera PostgreSQL, wielu z nas doceni interesuj\u0105ce narz\u0119dzie, umo\u017cliwiaj\u0105ce weryfikacj\u0119 poprawno\u015bci przechowywanej fizycznej kopii bezpiecze\u0144stwa: pg_verifybackup. Na wst\u0119pie nale\u017cy zauwa\u017cy\u0107, \u017ce podczas wykonywania fizycznej kopii bezpiecze\u0144stwa za pomoc\u0105 pg_basebackup, teraz generowany jest specjalny plik deskryptora, nazwany backup_manifest, kt\u00f3ry zawiera wykaz wszystkich plik\u00f3w wchodz\u0105cych w sk\u0142ad kopii <a href=\"https:\/\/explainit.pl\/wordpress\/2020\/12\/12\/weryfikacja-poprawnosci-kopii-bezpieczenstwa-w-postgresql-13\/\" rel=\"nofollow\"><span class=\"sr-only\">Read more about Weryfikacja poprawno\u015bci kopii bezpiecze\u0144stwa w PostgreSQL 13<\/span>[&hellip;]<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[38],"tags":[5,39],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.2.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Weryfikacja poprawno\u015bci kopii bezpiecze\u0144stwa w PostgreSQL 13 - Explain IT<\/title>\n<meta name=\"description\" content=\"Weryfikacja poprawno\u015bci kopii bezpiecze\u0144stwa w PostgreSQL 13\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/explainit.pl\/wordpress\/2020\/12\/12\/weryfikacja-poprawnosci-kopii-bezpieczenstwa-w-postgresql-13\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Weryfikacja poprawno\u015bci kopii bezpiecze\u0144stwa w PostgreSQL 13 - Explain IT\" \/>\n<meta property=\"og:description\" content=\"Weryfikacja poprawno\u015bci kopii bezpiecze\u0144stwa w PostgreSQL 13\" \/>\n<meta property=\"og:url\" content=\"https:\/\/explainit.pl\/wordpress\/2020\/12\/12\/weryfikacja-poprawnosci-kopii-bezpieczenstwa-w-postgresql-13\/\" \/>\n<meta property=\"og:site_name\" content=\"Explain IT\" \/>\n<meta property=\"article:published_time\" content=\"2020-12-12T10:39:25+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-01-12T10:42:39+00:00\" \/>\n<meta name=\"author\" content=\"Maciej Zakrzewicz\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Napisane przez\" \/>\n\t<meta name=\"twitter:data1\" content=\"Maciej Zakrzewicz\" \/>\n\t<meta name=\"twitter:label2\" content=\"Szacowany czas czytania\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minuty\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/explainit.pl\/wordpress\/2020\/12\/12\/weryfikacja-poprawnosci-kopii-bezpieczenstwa-w-postgresql-13\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/explainit.pl\/wordpress\/2020\/12\/12\/weryfikacja-poprawnosci-kopii-bezpieczenstwa-w-postgresql-13\/\"},\"author\":{\"name\":\"Maciej Zakrzewicz\",\"@id\":\"https:\/\/explainit.pl\/wordpress\/#\/schema\/person\/740773131bc169a2dc9c0e5e07476219\"},\"headline\":\"Weryfikacja poprawno\u015bci kopii bezpiecze\u0144stwa w PostgreSQL 13\",\"datePublished\":\"2020-12-12T10:39:25+00:00\",\"dateModified\":\"2021-01-12T10:42:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/explainit.pl\/wordpress\/2020\/12\/12\/weryfikacja-poprawnosci-kopii-bezpieczenstwa-w-postgresql-13\/\"},\"wordCount\":272,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/explainit.pl\/wordpress\/#organization\"},\"keywords\":[\"awarie\",\"PostgreSQL\"],\"articleSection\":[\"PostgreSQL\"],\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/explainit.pl\/wordpress\/2020\/12\/12\/weryfikacja-poprawnosci-kopii-bezpieczenstwa-w-postgresql-13\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/explainit.pl\/wordpress\/2020\/12\/12\/weryfikacja-poprawnosci-kopii-bezpieczenstwa-w-postgresql-13\/\",\"url\":\"https:\/\/explainit.pl\/wordpress\/2020\/12\/12\/weryfikacja-poprawnosci-kopii-bezpieczenstwa-w-postgresql-13\/\",\"name\":\"Weryfikacja poprawno\u015bci kopii bezpiecze\u0144stwa w PostgreSQL 13 - Explain IT\",\"isPartOf\":{\"@id\":\"https:\/\/explainit.pl\/wordpress\/#website\"},\"datePublished\":\"2020-12-12T10:39:25+00:00\",\"dateModified\":\"2021-01-12T10:42:39+00:00\",\"description\":\"Weryfikacja poprawno\u015bci kopii bezpiecze\u0144stwa w PostgreSQL 13\",\"breadcrumb\":{\"@id\":\"https:\/\/explainit.pl\/wordpress\/2020\/12\/12\/weryfikacja-poprawnosci-kopii-bezpieczenstwa-w-postgresql-13\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/explainit.pl\/wordpress\/2020\/12\/12\/weryfikacja-poprawnosci-kopii-bezpieczenstwa-w-postgresql-13\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/explainit.pl\/wordpress\/2020\/12\/12\/weryfikacja-poprawnosci-kopii-bezpieczenstwa-w-postgresql-13\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\/\/explainit.pl\/wordpress\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Weryfikacja poprawno\u015bci kopii bezpiecze\u0144stwa w PostgreSQL 13\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/explainit.pl\/wordpress\/#website\",\"url\":\"https:\/\/explainit.pl\/wordpress\/\",\"name\":\"Explain IT\",\"description\":\"Autorska pracownia doradztwa i szkole\u0144 IT - Maciej Zakrzewicz - szkolenia, ekspertyzy, wdro\u017cenia. Technologie Oracle, PostgreSQL, MySQL.\",\"publisher\":{\"@id\":\"https:\/\/explainit.pl\/wordpress\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/explainit.pl\/wordpress\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/explainit.pl\/wordpress\/#organization\",\"name\":\"Explain IT\",\"url\":\"https:\/\/explainit.pl\/wordpress\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/explainit.pl\/wordpress\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/explainit.pl\/wordpress\/wp-content\/uploads\/2016\/08\/explainITmini.png\",\"contentUrl\":\"https:\/\/explainit.pl\/wordpress\/wp-content\/uploads\/2016\/08\/explainITmini.png\",\"width\":196,\"height\":64,\"caption\":\"Explain IT\"},\"image\":{\"@id\":\"https:\/\/explainit.pl\/wordpress\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/explainit.pl\/wordpress\/#\/schema\/person\/740773131bc169a2dc9c0e5e07476219\",\"name\":\"Maciej Zakrzewicz\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/explainit.pl\/wordpress\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/9c98d020128b142a480aa35a22300a69?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/9c98d020128b142a480aa35a22300a69?s=96&d=mm&r=g\",\"caption\":\"Maciej Zakrzewicz\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Weryfikacja poprawno\u015bci kopii bezpiecze\u0144stwa w PostgreSQL 13 - Explain IT","description":"Weryfikacja poprawno\u015bci kopii bezpiecze\u0144stwa w PostgreSQL 13","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/explainit.pl\/wordpress\/2020\/12\/12\/weryfikacja-poprawnosci-kopii-bezpieczenstwa-w-postgresql-13\/","og_locale":"pl_PL","og_type":"article","og_title":"Weryfikacja poprawno\u015bci kopii bezpiecze\u0144stwa w PostgreSQL 13 - Explain IT","og_description":"Weryfikacja poprawno\u015bci kopii bezpiecze\u0144stwa w PostgreSQL 13","og_url":"https:\/\/explainit.pl\/wordpress\/2020\/12\/12\/weryfikacja-poprawnosci-kopii-bezpieczenstwa-w-postgresql-13\/","og_site_name":"Explain IT","article_published_time":"2020-12-12T10:39:25+00:00","article_modified_time":"2021-01-12T10:42:39+00:00","author":"Maciej Zakrzewicz","twitter_card":"summary_large_image","twitter_misc":{"Napisane przez":"Maciej Zakrzewicz","Szacowany czas czytania":"2 minuty"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/explainit.pl\/wordpress\/2020\/12\/12\/weryfikacja-poprawnosci-kopii-bezpieczenstwa-w-postgresql-13\/#article","isPartOf":{"@id":"https:\/\/explainit.pl\/wordpress\/2020\/12\/12\/weryfikacja-poprawnosci-kopii-bezpieczenstwa-w-postgresql-13\/"},"author":{"name":"Maciej Zakrzewicz","@id":"https:\/\/explainit.pl\/wordpress\/#\/schema\/person\/740773131bc169a2dc9c0e5e07476219"},"headline":"Weryfikacja poprawno\u015bci kopii bezpiecze\u0144stwa w PostgreSQL 13","datePublished":"2020-12-12T10:39:25+00:00","dateModified":"2021-01-12T10:42:39+00:00","mainEntityOfPage":{"@id":"https:\/\/explainit.pl\/wordpress\/2020\/12\/12\/weryfikacja-poprawnosci-kopii-bezpieczenstwa-w-postgresql-13\/"},"wordCount":272,"commentCount":0,"publisher":{"@id":"https:\/\/explainit.pl\/wordpress\/#organization"},"keywords":["awarie","PostgreSQL"],"articleSection":["PostgreSQL"],"inLanguage":"pl-PL","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/explainit.pl\/wordpress\/2020\/12\/12\/weryfikacja-poprawnosci-kopii-bezpieczenstwa-w-postgresql-13\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/explainit.pl\/wordpress\/2020\/12\/12\/weryfikacja-poprawnosci-kopii-bezpieczenstwa-w-postgresql-13\/","url":"https:\/\/explainit.pl\/wordpress\/2020\/12\/12\/weryfikacja-poprawnosci-kopii-bezpieczenstwa-w-postgresql-13\/","name":"Weryfikacja poprawno\u015bci kopii bezpiecze\u0144stwa w PostgreSQL 13 - Explain IT","isPartOf":{"@id":"https:\/\/explainit.pl\/wordpress\/#website"},"datePublished":"2020-12-12T10:39:25+00:00","dateModified":"2021-01-12T10:42:39+00:00","description":"Weryfikacja poprawno\u015bci kopii bezpiecze\u0144stwa w PostgreSQL 13","breadcrumb":{"@id":"https:\/\/explainit.pl\/wordpress\/2020\/12\/12\/weryfikacja-poprawnosci-kopii-bezpieczenstwa-w-postgresql-13\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/explainit.pl\/wordpress\/2020\/12\/12\/weryfikacja-poprawnosci-kopii-bezpieczenstwa-w-postgresql-13\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/explainit.pl\/wordpress\/2020\/12\/12\/weryfikacja-poprawnosci-kopii-bezpieczenstwa-w-postgresql-13\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/explainit.pl\/wordpress\/"},{"@type":"ListItem","position":2,"name":"Weryfikacja poprawno\u015bci kopii bezpiecze\u0144stwa w PostgreSQL 13"}]},{"@type":"WebSite","@id":"https:\/\/explainit.pl\/wordpress\/#website","url":"https:\/\/explainit.pl\/wordpress\/","name":"Explain IT","description":"Autorska pracownia doradztwa i szkole\u0144 IT - Maciej Zakrzewicz - szkolenia, ekspertyzy, wdro\u017cenia. Technologie Oracle, PostgreSQL, MySQL.","publisher":{"@id":"https:\/\/explainit.pl\/wordpress\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/explainit.pl\/wordpress\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"https:\/\/explainit.pl\/wordpress\/#organization","name":"Explain IT","url":"https:\/\/explainit.pl\/wordpress\/","logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/explainit.pl\/wordpress\/#\/schema\/logo\/image\/","url":"https:\/\/explainit.pl\/wordpress\/wp-content\/uploads\/2016\/08\/explainITmini.png","contentUrl":"https:\/\/explainit.pl\/wordpress\/wp-content\/uploads\/2016\/08\/explainITmini.png","width":196,"height":64,"caption":"Explain IT"},"image":{"@id":"https:\/\/explainit.pl\/wordpress\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/explainit.pl\/wordpress\/#\/schema\/person\/740773131bc169a2dc9c0e5e07476219","name":"Maciej Zakrzewicz","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/explainit.pl\/wordpress\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/9c98d020128b142a480aa35a22300a69?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/9c98d020128b142a480aa35a22300a69?s=96&d=mm&r=g","caption":"Maciej Zakrzewicz"}}]}},"_links":{"self":[{"href":"https:\/\/explainit.pl\/wordpress\/wp-json\/wp\/v2\/posts\/857"}],"collection":[{"href":"https:\/\/explainit.pl\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/explainit.pl\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/explainit.pl\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/explainit.pl\/wordpress\/wp-json\/wp\/v2\/comments?post=857"}],"version-history":[{"count":2,"href":"https:\/\/explainit.pl\/wordpress\/wp-json\/wp\/v2\/posts\/857\/revisions"}],"predecessor-version":[{"id":859,"href":"https:\/\/explainit.pl\/wordpress\/wp-json\/wp\/v2\/posts\/857\/revisions\/859"}],"wp:attachment":[{"href":"https:\/\/explainit.pl\/wordpress\/wp-json\/wp\/v2\/media?parent=857"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/explainit.pl\/wordpress\/wp-json\/wp\/v2\/categories?post=857"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/explainit.pl\/wordpress\/wp-json\/wp\/v2\/tags?post=857"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}