{"id":1974,"date":"2013-12-26T10:41:32","date_gmt":"2013-12-26T09:41:32","guid":{"rendered":"http:\/\/kudzia.eu\/b\/?p=1974"},"modified":"2025-03-02T10:57:02","modified_gmt":"2025-03-02T09:57:02","slug":"mysqldump-pigz-rsyncable-rdiff","status":"publish","type":"post","link":"https:\/\/kudzia.eu\/b\/2013\/12\/mysqldump-pigz-rsyncable-rdiff\/","title":{"rendered":"pigz &#8211;rsyncable, rdiff"},"content":{"rendered":"<p>i&#8217;m backing up in total ~90GB of mysqldumps each night. the more data, the bigger pain it is.<\/p>\n<p><!--more--><\/p>\n<h1>mysqldump<\/h1>\n<p>my original setup used unpacked output of:<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nmysqldump --defaults-file=\/etc\/mysql\/debian.cnf --quick --skip-lock-tables --single-transaction  --flush-logs --hex-blob  --master-data=2  -A --skip-extended-insert\r\n<\/pre>\n<p>then archived with rdiff-backup. some more details <a title=\"[somewhat] byzantine backup setup\" href=\"https:\/\/kudzia.eu\/b\/2013\/05\/somewhat-byzantine-backup-setup\/\">here<\/a>. i do know that backup produced in this way &#8211; with skip-extended-insert &#8211; is larger and takes more time to restore, more about it later.<\/p>\n<p>recently i&#8217;ve found out that gzip \/ pigz has option &#8211;rsyncable which produces slightly larger archive that is more &#8216;friendly&#8217; for the rsync algorithm [also used by rdiff-backup]. so i decided to compare size of rdiff diffs for uncompressed mysql dump and one that is compressed with &#8211;rsyncable option to see if i can gain anything from the change.<\/p>\n<p>in my case using the best compression method [ -9 ] is not worth it. 25GB file compressed to 10474588077B with -9 compression took in avg 5m22s to finish. the same file compressed with the default options was 20MB larger &#8211; 10494193501B, compression took 5m7s. i took average time from 3 pigz runs for both of methods; for most of the time process was cpu bound.<\/p>\n<p>25GB file compressed to 10474588077B with -9 compression option in, with default compression method.<\/p>\n<p>information about dumps from particular dates, their sizes and sizes of diffs generated by rdiff:<\/p>\n<table width=\"1150\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td><\/td>\n<td colspan=\"4\">input size<\/td>\n<td colspan=\"4\">rdiff increment<\/td>\n<\/tr>\n<tr>\n<td>date<\/td>\n<td>raw sql<\/td>\n<td>bz2<\/td>\n<td>gz<\/td>\n<td>rsyncable.gz<\/td>\n<td>raw sql<\/td>\n<td>bz2<\/td>\n<td>gz<\/td>\n<td>rsyncable.gz<\/td>\n<\/tr>\n<tr>\n<td align=\"right\">12<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 26 804 890 664<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 8 811 112 277<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 10 329 919 622<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 10 484 961 505<\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td align=\"right\">13<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 26 808 113 131<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 8 811 291 622<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 10 331 311 920<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 10 486 382 591<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 3 716 517 795<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 8 812 764 367<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 10 331 856 487<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 3 824 695 504<\/td>\n<\/tr>\n<tr>\n<td align=\"right\">14<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 26 818 029 468<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 8 814 098 013<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 10 334 963 258<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 10 490 095 367<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 3 224 401 389<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 8 812 943 745<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 10 333 249 046<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 3 403 160 952<\/td>\n<\/tr>\n<tr>\n<td align=\"right\">15<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 26 818 132 819<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 8 814 100 947<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 10 334 998 479<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 10 490 120 905<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 51 622 629<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 8 814 248 439<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 10 334 867 739<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 56 785 799<\/td>\n<\/tr>\n<tr>\n<td align=\"right\">16<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 26 823 520 086<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 8 816 488 488<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 10 337 628 727<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 10 492 799 195<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 2 194 848 425<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 8 815 753 598<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 10 336 834 625<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 2 355 854 983<\/td>\n<\/tr>\n<tr>\n<td align=\"right\">17<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 26 831 125 141<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 8 819 823 312<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 10 341 419 832<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 10 496 643 886<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 6 618 091 371<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 8 818 141 586<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 10 339 567 038<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 4 293 817 628<\/td>\n<\/tr>\n<tr>\n<td align=\"right\">18<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 26 795 688 890<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 8 806 741 963<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 10 325 784 290<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 10 480 737 096<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 3 690 809 910<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 8 821 477 034<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 10 343 358 854<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 3 800 270 362<\/td>\n<\/tr>\n<tr>\n<td align=\"right\">19<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 26 797 195 049<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 8 806 555 214<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 10 326 417 028<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 10 481 487 569<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 3 822 050 888<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 8 808 393 234<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 10 327 720 381<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 3 928 010 024<\/td>\n<\/tr>\n<tr>\n<td align=\"right\">20<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 26 803 479 158<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 8 810 942 424<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 10 329 400 507<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 10 484 489 179<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 3 812 420 943<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 8 808 206 449<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 10 328 353 239<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 3 931 321 186<\/td>\n<\/tr>\n<tr>\n<td align=\"right\">21<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 26 834 035 279<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 8 818 676 083<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 10 338 926 030<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 10 494 198 724<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 3 660 097 166<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 8 812 594 481<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 10 331 337 276<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 3 938 756 318<\/td>\n<\/tr>\n<tr>\n<td align=\"right\">22<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 26 834 013 616<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 8 818 614 552<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 10 338 914 292<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 10 494 193 501<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 51 043 642<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 7 389 340 006<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 8 821 785 673<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 61 001 180<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>total size of the rdiff archive [latest version+increments]:<\/p>\n<table width=\"601\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td>raw sql<\/td>\n<td>bz2<\/td>\n<td>gz<\/td>\n<td>rsyncable.gz<\/td>\n<\/tr>\n<tr>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 57 675 940 544<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 95 532 500 216<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 112 167 867 459<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 40 087 890 366<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>so in case of my data gziping the mysqldump first with pigz &#8211;rsyncable makes most sense from the final backup size point of view. using regular gzip or bz2 leads to output files having too much differences between each dump, leading to very large diffs produced by the rsync algorithm of rdiff.<\/p>\n<p>as mentioned earlier we use the skip-extended-insert option for mysqldump and i&#8217;m somewhat torn weather to use it or not. Pros of using skip-extended-insert:<\/p>\n<ul>\n<li>backups done with skip-extended-insert produce smaller rdiff diffs [ for uncompressed dumps it&#8217;s ~3.7GB instead of ~5.1GB, similarly for gzip&#8217;ed backups with the rsyncable switch ].<\/li>\n<li>backups taken in this way are easier to grep; in our case restoring single sql row is much more common than recovering the whole database<\/li>\n<\/ul>\n<p>cons:<\/p>\n<ul>\n<li>recovery time is the biggest downside. in my tests i can recover 26GB backup taken with skip-extended-insert option in ~90 minutes; backup without skip-extended-insert takes only 22min to restore.<\/li>\n<\/ul>\n<h1>vmware backups taken with ghettovcb<\/h1>\n<p>we use <a href=\"https:\/\/communities.vmware.com\/docs\/DOC-8760\">ghettoVCB<\/a> to take weekly snapshots of vms running under vmware esxi. backups can be large. so far i&#8217;ve been pbzip2&#8217;ing them and using rdiff to keep current and single previous version. i&#8217;ve done some test on a randomly selected snapshot of windows 2012 server vm and compared the sizes:<\/p>\n<table width=\"900\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td><\/td>\n<td colspan=\"3\">input size<\/td>\n<td colspan=\"3\">diff size<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>raw<\/td>\n<td>bz2<\/td>\n<td>rsyncable.gz<\/td>\n<td>raw<\/td>\n<td>bz2<\/td>\n<td>rsyncable.gz<\/td>\n<\/tr>\n<tr>\n<td align=\"right\">17<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 35 170 054 000<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 14 820 111 000<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 15 427 020 000<\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td align=\"right\">24<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 39 063 046 000<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 15 484 366 000<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 16 193 240 000<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 8 049 706 000<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 14 810 731 000<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 11 461 074 000<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>and the total size of rdiff archive:<\/p>\n<table width=\"472\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td >raw<\/td>\n<td >bz2<\/td>\n<td >rsyncable.gz<\/td>\n<\/tr>\n<tr>\n<td >\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 47 112 752 000<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 30 295 097 000<\/td>\n<td>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 27 654 314 000<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>so also here pigz with &#8211;rsyncable option seems to be the winner. in a while i should take a look at <a href=\"http:\/\/tukaani.org\/xz\/\">xz<\/a>. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>i&#8217;m backing up in total ~90GB of mysqldumps each night. the more data, the bigger pain it is.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17],"tags":[77,6,12,56],"class_list":["post-1974","post","type-post","status-publish","format-standard","hentry","category-tech","tag-backups","tag-linux","tag-mysql","tag-rsync"],"_links":{"self":[{"href":"https:\/\/kudzia.eu\/b\/wp-json\/wp\/v2\/posts\/1974","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kudzia.eu\/b\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kudzia.eu\/b\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kudzia.eu\/b\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kudzia.eu\/b\/wp-json\/wp\/v2\/comments?post=1974"}],"version-history":[{"count":38,"href":"https:\/\/kudzia.eu\/b\/wp-json\/wp\/v2\/posts\/1974\/revisions"}],"predecessor-version":[{"id":2016,"href":"https:\/\/kudzia.eu\/b\/wp-json\/wp\/v2\/posts\/1974\/revisions\/2016"}],"wp:attachment":[{"href":"https:\/\/kudzia.eu\/b\/wp-json\/wp\/v2\/media?parent=1974"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kudzia.eu\/b\/wp-json\/wp\/v2\/categories?post=1974"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kudzia.eu\/b\/wp-json\/wp\/v2\/tags?post=1974"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}