{"id":4677,"date":"2026-06-14T19:31:06","date_gmt":"2026-06-14T19:31:06","guid":{"rendered":"https:\/\/cloudsave.app\/?p=4677"},"modified":"2026-06-15T15:16:58","modified_gmt":"2026-06-15T15:16:58","slug":"hlj%c3%b3%c3%b0i-mor%c3%b0inginn-hvernig-%c3%a1-a%c3%b0-greina-skemmd-gagnagrunnsvarafrit-%c3%a1%c3%b0ur-en-%c3%b3sk%c3%b6pin-dynja-yfir","status":"publish","type":"post","link":"https:\/\/cloudsave.app\/is\/knowledge-base\/hlj%c3%b3%c3%b0i-mor%c3%b0inginn-hvernig-%c3%a1-a%c3%b0-greina-skemmd-gagnagrunnsvarafrit-%c3%a1%c3%b0ur-en-%c3%b3sk%c3%b6pin-dynja-yfir\/","title":{"rendered":"Hlj\u00f3\u00f0i mor\u00f0inginn: Hvernig \u00e1 a\u00f0 greina skemmd gagnagrunnsvarafrit \u00e1\u00f0ur en \u00f3sk\u00f6pin dynja yfir"},"content":{"rendered":"<p>\u00cd heimi gagnagrunnsstj\u00f3rnunar og \u00e1rei\u00f0anleikaverkfr\u00e6\u00f0i (SRE) er til vel \u00feekkt l\u00f6gm\u00e1l: <em>Afrit Schr\u00f6dingers<\/em>. \u00c1stand hvers kyns afrits er \u00f3\u00feekkt \u00fear til \u00fe\u00fa reynir a\u00f0 endurheimta \u00fea\u00f0. Fram a\u00f0 \u00fev\u00ed augnabliki er \u00fea\u00f0 \u00ed skammtafr\u00e6\u00f0ilegu \u00e1standi \u00fear sem \u00fea\u00f0 er b\u00e6\u00f0i fullkomlega noth\u00e6ft og algj\u00f6rlega skemmt.<\/p>\n<p>Fyrir DevOps-verkfr\u00e6\u00f0inga og gagnagrunnsstj\u00f3ra (DBA) er \u00fea\u00f0 versta martr\u00f6\u00f0in a\u00f0 uppg\u00f6tva a\u00f0 mikilv\u00e6gt afrit af gagnagrunni s\u00e9 skemmt \u00e1 me\u00f0an \u00e1 atviki stendur. \u00dea\u00f0 breytir venjubundinni endurheimt \u00ed h\u00f6rmulegt gagnatap. \u00deessi \u201e\u00fe\u00f6gli mor\u00f0ingi\u201c gagnaheilleika fer oft \u00f3s\u00e9\u00f0ur framhj\u00e1 vegna \u00feess a\u00f0 afritunarferlar skila oft \u00e1rangri me\u00f0 <code>Exit Code 0<\/code> jafnvel \u00feegar undirliggjandi g\u00f6gn eru skemmd.<\/p>\n<p>\u00cd \u00feessari \u00edtarlegu handb\u00f3k munum vi\u00f0 greina e\u00f0li skemmdra afrita, kanna sta\u00f0festingara\u00f0fer\u00f0ir fyrir tiltekna gagnagrunna og s\u00fdna hvernig \u00e1 a\u00f0 byggja sj\u00e1lfvirkar, skotheldar endurheimtulei\u00f0slur fyrir framlei\u00f0sluumhverfi.<\/p>\n<h2>E\u00f0li skemmda \u00ed afritum<\/h2>\n<p>Til a\u00f0 greina skemmdir ver\u00f0ur \u00fe\u00fa fyrst a\u00f0 skilja hvernig \u00fe\u00e6r eiga s\u00e9r sta\u00f0. Skemmdir \u00ed afritum falla almennt \u00ed tvo flokka: l\u00edkamlegar (\u00e1 innvi\u00f0astigi) og r\u00f6kfr\u00e6\u00f0ilegar (\u00e1 forritastigi).<\/p>\n<h3>L\u00edkamlegar skemmdir<\/h3>\n<p>L\u00edkamlegar skemmdir eiga s\u00e9r sta\u00f0 \u00feegar raunverulegir bitar \u00e1 geymslumi\u00f0linum breytast. \u00deetta getur gerst vi\u00f0 lestur af upprunadisknum, vi\u00f0 flutning um neti\u00f0 e\u00f0a \u00feegar g\u00f6gnin hv\u00edla \u00e1 geymslumi\u00f0linum.<br \/>\n*   <strong>Bit-rot:<\/strong> Sm\u00e1m saman ni\u00f0urbrot geymslumi\u00f0la getur breytt bitum hlj\u00f3\u00f0laust.<br \/>\n*   <strong>Flutningsvillur:<\/strong> \u00de\u00f3tt TCP hafi eftirlitssummur (checksums), eru \u00fe\u00e6r alr\u00e6mdar fyrir a\u00f0 vera veikar (16-bita). Umhverfi me\u00f0 mikla gagnastraumshra\u00f0a geta upplifa\u00f0 hlj\u00f3\u00f0lausar gagnaskemmdir yfir neti\u00f0 sem TCP n\u00e6r ekki a\u00f0 gr\u00edpa.<br \/>\n*   <strong>Galla\u00f0ir geymslust\u00fdringar:<\/strong> V\u00e9lb\u00fana\u00f0arvillur \u00ed RAID-st\u00fdringum e\u00f0a SAN-kerfum geta skrifa\u00f0 ruslg\u00f6gn \u00e1 me\u00f0an \u00fe\u00e6r tilkynna st\u00fdrikerfinu um \u00e1rangur.<\/p>\n<h3>R\u00f6kfr\u00e6\u00f0ilegar skemmdir<\/h3>\n<p>R\u00f6kfr\u00e6\u00f0ilegar skemmdir eru m\u00f6gulega h\u00e6ttulegri vegna \u00feess a\u00f0 afritunarskr\u00e1in sj\u00e1lf er \u00f3skemmd, en g\u00f6gnin inni \u00ed henni eru brotin.<br \/>\n*   <strong>Rusl inn, rusl \u00fat (GIGO):<\/strong> Ef gagnagrunnurinn \u00feinn \u00ed vinnslu er me\u00f0 skemmdan v\u00edsir e\u00f0a rifna s\u00ed\u00f0u, g\u00e6ti afritunarverkf\u00e6ri\u00f0 \u00feitt afrita\u00f0 \u00fe\u00e1 skemmdu s\u00ed\u00f0u tr\u00fafastlega. Afritunarferli\u00f0 heppnast, en endurheimtin mun mistakast e\u00f0a skila brotnum gagnagrunni.<br \/>\n*   <strong>\u00d3kl\u00e1ra\u00f0ar f\u00e6rslur:<\/strong> Skyndimyndir (snapshots) \u00e1 skr\u00e1arkerfisstigi sem teknar eru \u00e1n \u00feess a\u00f0 frysta I\/O gagnagrunnsins (t.d. me\u00f0 \u00fev\u00ed a\u00f0 nota ekki <code>FLUSH TABLES WITH READ LOCK<\/code> \u00ed MySQL) lei\u00f0a til rifinna s\u00ed\u00f0na og \u00f3endurheimtanlegra \u00e1standa.<\/p>\n<h2>Fyrirbyggjandi greining: Eftirlitssummur og dulk\u00f3\u00f0un<\/h2>\n<p>Fyrsta varnarl\u00ednan gegn l\u00edkamlegum skemmdum er dulk\u00f3\u00f0u\u00f0 sta\u00f0festing. A\u00f0 treysta \u00e1 skr\u00e1arst\u00e6r\u00f0ir e\u00f0a dagsetningar er ekki n\u00f3g.<\/p>\n<h3>Virkjun eftirlitssumma \u00e1 gagnagrunnsstigi<\/h3>\n<p>N\u00fat\u00edma gagnagrunnskerfi (RDBMS) sty\u00f0ja eftirlitssummur \u00e1 s\u00ed\u00f0ustigi. \u00deegar \u00fea\u00f0 er virkja\u00f0 reiknar gagnagrunnurinn \u00fat eftirlitssummu fyrir hverja s\u00ed\u00f0u \u00e1\u00f0ur en h\u00fan er skrifu\u00f0 \u00e1 disk. \u00deegar s\u00ed\u00f0an er lesin (anna\u00f0hvort af fyrirspurn e\u00f0a afritunarferli) er eftirlitssumman sta\u00f0fest.<\/p>\n<p>Fyrir <strong>PostgreSQL<\/strong> getur\u00f0u virkja\u00f0 gagnast\u00f6\u00f0vun vi\u00f0 frumstillingu klasans:<\/p>\n<pre><code class=\"language-bash\"># Frumstilla n\u00fdjan PostgreSQL klasa me\u00f0 virkum eftirlitssummum\ninitdb --data-checksums -D \/var\/lib\/postgresql\/data\n<\/code><\/pre>\n<p><em>Athugi\u00f0: Ef \u00fe\u00fa ert me\u00f0 n\u00faverandi PostgreSQL klasa getur\u00f0u nota\u00f0 <code>pg_checksums<\/code> t\u00f3li\u00f0 til a\u00f0 virkja \u00fe\u00e6r \u00e1n nettengingar.<\/em><\/p>\n<p>Fyrir <strong>Microsoft SQL Server<\/strong>, vertu viss um a\u00f0 <code>PAGE_VERIFY<\/code> s\u00e9 stillt \u00e1 <code>CHECKSUM<\/code> (sj\u00e1lfgefi\u00f0 \u00ed n\u00fat\u00edma\u00fatg\u00e1fum, en vert a\u00f0 sta\u00f0festa \u00e1 eldri kerfum):<\/p>\n<pre><code class=\"language-sql\">ALTER DATABASE [ProductionDB] SET PAGE_VERIFY CHECKSUM;\nGO\n<\/code><\/pre>\n<h3>Sta\u00f0festing afrita \u00ed hv\u00edld<\/h3>\n<p>\u00deegar afriti\u00f0 lendir \u00e1 geymslusta\u00f0num ver\u00f0ur a\u00f0 sta\u00f0festa heilleika \u00feess me\u00f0 dulk\u00f3\u00f0un. Enterprise afritunarvettvangar eins og CloudSave reikna og sta\u00f0festa sj\u00e1lfkrafa SHA-256 kjarna afritunarblokkanna vi\u00f0 flutning og \u00ed hv\u00edld. Ef \u00fe\u00fa ert a\u00f0 stj\u00f3rna s\u00e9rsni\u00f0num forskriftum ver\u00f0ur \u00fe\u00fa a\u00f0 \u00fatf\u00e6ra \u00feetta handvirkt:<\/p>\n<pre><code class=\"language-bash\"># B\u00faa til SHA-256 kjarna eftir afritun\nsha256sum prod_db_backup.tar.gz &gt; prod_db_backup.tar.gz.sha256\n\n# Sta\u00f0festa kjarnann \u00e1 geymslu\u00fej\u00f3ninum\nsha256sum -c prod_db_backup.tar.gz.sha256\n<\/code><\/pre>\n<h2>Sta\u00f0festingara\u00f0fer\u00f0ir fyrir tiltekna gagnagrunna<\/h2>\n<p>Mismunandi gagnagrunnskerfi bj\u00f3\u00f0a upp \u00e1 innbygg\u00f0 verkf\u00e6ri til a\u00f0 sta\u00f0festa heilleika afrita sinna.<\/p>\n<h3>PostgreSQL: <code>pg_verifybackup<\/code><\/h3>\n<p><code>pg_verifybackup<\/code> var kynnt \u00ed PostgreSQL 13 og er byltingarkennt fyrir l\u00edkamleg afrit tekin me\u00f0 <code>pg_basebackup<\/code>. \u00dea\u00f0 les <code>backup_manifest<\/code> skr\u00e1na sem myndast vi\u00f0 afritunina og sta\u00f0festir a\u00f0 allar skr\u00e1r s\u00e9u til sta\u00f0ar og a\u00f0 eftirlitssummur \u00feeirra passi.<\/p>\n<pre><code class=\"language-bash\"># Keyra sta\u00f0festingu \u00e1 m\u00f6ppu me\u00f0 l\u00edkamlegu afriti\npg_verifybackup \/mnt\/backups\/postgres\/base_backup_20231025\/\n<\/code><\/pre>\n<p>Ef einn biti hefur breyst \u00ed einhverri af gagnaskr\u00e1num mun <code>pg_verifybackup<\/code> kasta banv\u00e6nni villu, sem gerir v\u00f6ktunarkerfum \u00fe\u00ednum kleift a\u00f0 l\u00e1ta DBA-teymi\u00f0 vita strax.<\/p>\n<h3>Microsoft SQL Server: <code>RESTORE VERIFYONLY<\/code><\/h3>\n<p>SQL Server b\u00fd\u00f0ur upp \u00e1 innbygg\u00f0a skipun til a\u00f0 sta\u00f0festa l\u00edkamlegan heilleika afritunarskr\u00e1r \u00e1n \u00feess a\u00f0 endurheimta hana \u00ed raun. H\u00fan athugar hausana \u00e1 afritinu og sta\u00f0festir eftirlitssummur s\u00ed\u00f0na (ef \u00fe\u00e6r voru virkja\u00f0ar vi\u00f0 afritun).<\/p>\n<pre><code class=\"language-sql\">RESTORE VERIFYONLY \nFROM DISK = 'Z:BackupsProdDB_Full.bak' \nWITH CHECKSUM;\n<\/code><\/pre>\n<p><strong>Vi\u00f0v\u00f6run:<\/strong> <code>RESTORE VERIFYONLY<\/code> sta\u00f0festir a\u00f0eins a\u00f0 afritunarskr\u00e1in s\u00e9 l\u00e6sileg og a\u00f0 l\u00edkamlegar eftirlitssummur passi. H\u00fan <em>tryggir ekki<\/em> r\u00f6kfr\u00e6\u00f0ilegan heilleika. Til a\u00f0 tryggja r\u00f6kfr\u00e6\u00f0ilegan heilleika ver\u00f0ur \u00fe\u00fa a\u00f0 framkv\u00e6ma fulla endurheimt og keyra <code>DBCC CHECKDB<\/code>.<\/p>\n<h3>MySQL \/ InnoDB: Percona XtraBackup<\/h3>\n<p>Fyrir MySQL-umhverfi eru l\u00edkamleg afrit oft me\u00f0h\u00f6ndlu\u00f0 af Percona XtraBackup. Afritunarferli\u00f0 samanstendur af \u00fev\u00ed a\u00f0 afrita skr\u00e1r, en afriti\u00f0 er ekki samkv\u00e6mt fyrr en f\u00e6rsluskr\u00e1rnar (redo logs) eru nota\u00f0ar. <code>--prepare<\/code> \u00e1fanginn virkar sem innbygg\u00f0 heilleikaathugun.<\/p>\n<pre><code class=\"language-bash\"># Undirb\u00faningur afritsins beitir redo logs. \n# Ef afriti\u00f0 er skemmt mun \u00feetta skref mistakast.\nxtrabackup --prepare --target-dir=\/data\/backups\/mysql\/\n<\/code><\/pre>\n<h2>Gullsta\u00f0allinn: Sj\u00e1lfvirk endurheimtarpr\u00f3fun<\/h2>\n<p>Eftirlitssummur og sta\u00f0festingarskipunar eru nau\u00f0synlegar, en \u00fe\u00e6r duga ekki einar s\u00e9r. Eina lei\u00f0in til a\u00f0 sanna endanlega a\u00f0 afrit s\u00e9 noth\u00e6ft er a\u00f0 endurheimta \u00fea\u00f0. \u00cd n\u00fat\u00edma DevOps-umhverfi ver\u00f0ur \u00feetta ferli a\u00f0 vera fullkomlega sj\u00e1lfvirkt.<\/p>\n<p>Me\u00f0 \u00fev\u00ed a\u00f0 me\u00f0h\u00f6ndla afrit sem k\u00f3\u00f0a getur\u00f0u byggt CI\/CD-lei\u00f0slu fyrir endurheimt gagnagrunna. \u00deessi lei\u00f0sla \u00e6tti a\u00f0 \u00fathluta t\u00edmabundnum innvi\u00f0um, framkv\u00e6ma endurheimtina, keyra sta\u00f0festingarfyrirspurnir og ey\u00f0a umhverfinu aftur.<\/p>\n<h3>A\u00f0 byggja sj\u00e1lfvirka endurheimtulei\u00f0slu<\/h3>\n<p>H\u00e9r a\u00f0 ne\u00f0an er d\u00e6mi um Bash-forskrift sem g\u00e6ti veri\u00f0 r\u00e6st daglega af cron-verkefni e\u00f0a CI-keyrara (eins og GitLab CI e\u00f0a GitHub Actions) til a\u00f0 sta\u00f0festa PostgreSQL r\u00f6kfr\u00e6\u00f0ilega afritun.<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\nset -e\n\nBACKUP_FILE=&quot;\/mnt\/storage\/prod_db_latest.dump&quot;\nDB_NAME=&quot;prod_db&quot;\nCONTAINER_NAME=&quot;pg_restore_test&quot;\n\necho &quot;[INFO] Hefji sj\u00e1lfvirka endurheimtarpr\u00f3fun...&quot;\n\n# 1. R\u00e6sa t\u00edmabundinn PostgreSQL g\u00e1m\ndocker run --name $CONTAINER_NAME \n  -e POSTGRES_PASSWORD=testpass \n  -d postgres:15\n\n# B\u00ed\u00f0a eftir a\u00f0 PostgreSQL s\u00e9 tilb\u00fai\u00f0\necho &quot;[INFO] B\u00ed\u00f0 eftir a\u00f0 gagnagrunnurinn frumstillist...&quot;\nuntil docker exec $CONTAINER_NAME pg_isready -U postgres; do\n  sleep 2\ndone\n\n# 2. B\u00faa til markgagnagrunninn\ndocker exec $CONTAINER_NAME psql -U postgres -c &quot;CREATE DATABASE $DB_NAME;&quot;\n\n# 3. Framkv\u00e6ma endurheimt\necho &quot;[INFO] Endurheimti afrit...&quot;\ndocker cp $BACKUP_FILE $CONTAINER_NAME:\/tmp\/backup.dump\ndocker exec $CONTAINER_NAME pg_restore -U postgres -d $DB_NAME -1 \/tmp\/backup.dump\n\n# 4. Keyra r\u00f6kfr\u00e6\u00f0ilegar sta\u00f0festingarfyrirspurnir\necho &quot;[INFO] Keyri sta\u00f0festingarfyrirspurnir...&quot;\n# Athuga hvort notendataflan hafi fleiri en 10.000 f\u00e6rslur\nUSER_COUNT=$(docker exec $CONTAINER_NAME psql -U postgres -d $DB_NAME -t -c &quot;SELECT COUNT(*) FROM users;&quot;)\n\nif [ &quot;$USER_COUNT&quot; -lt 10000 ]; then\n    echo &quot;[ERROR] R\u00f6kfr\u00e6\u00f0ileg sta\u00f0festing mist\u00f3kst. \u00c1tti von \u00e1 &gt;10000 notendum, fann $USER_COUNT&quot;\n    # Kveikja \u00e1 PagerDuty \/ Slack vi\u00f0v\u00f6run h\u00e9r\n    exit 1\nelse\n    echo &quot;[SUCCESS] R\u00f6kfr\u00e6\u00f0ileg sta\u00f0festing t\u00f3kst. Fj\u00f6ldi notenda: $USER_COUNT&quot;\nfi\n\n# 5. Ey\u00f0a t\u00edmabundnu umhverfi\necho &quot;[INFO] Hreinsa til...&quot;\ndocker rm -f $CONTAINER_NAME\n\necho &quot;[INFO] Sj\u00e1lfvirk endurheimtarpr\u00f3fun loki\u00f0 me\u00f0 \u00e1rangri.&quot;\n<\/code><\/pre>\n<h3>Hva\u00f0 \u00e6ttir \u00fe\u00fa a\u00f0 sta\u00f0festa?<\/h3>\n<p>\u00deegar \u00fe\u00fa framkv\u00e6mir sj\u00e1lfvirkar endurheimtarpr\u00f3fanir skaltu ekki bara athuga hvort gagnagrunnurinn r\u00e6sist. Keyr\u00f0u forritss\u00e9rt\u00e6kar sta\u00f0festingarfyrirspurnir:<br \/>\n1.  <strong>Fj\u00f6ldi ra\u00f0a:<\/strong> Gakktu \u00far skugga um a\u00f0 kjarnat\u00f6flur hafi v\u00e6ntanlegan fj\u00f6lda ra\u00f0a (t.d. \u00e6tti <code>users<\/code> taflan ekki a\u00f0 vera t\u00f3m).<br \/>\n2.  <strong>N\u00fdleg g\u00f6gn:<\/strong> Leita\u00f0u a\u00f0 f\u00e6rslum sem b\u00fanar voru til s\u00ed\u00f0asta s\u00f3larhringinn til a\u00f0 tryggja a\u00f0 afriti\u00f0 s\u00e9 ekki \u00farelt.<br \/>\n3.  <strong>Tilv\u00edsunarheilleiki:<\/strong> Keyr\u00f0u forskriftir til a\u00f0 leita a\u00f0 muna\u00f0arlausum erlendum lyklum (foreign keys), sem benda til r\u00f6kfr\u00e6\u00f0ilegra skemmda.<\/p>\n<h2>V\u00f6ktun og vi\u00f0varanir vegna afritunarfr\u00e1vika<\/h2>\n<p>Til a\u00f0 greina skemmdir \u00e1\u00f0ur en h\u00f6rmungar ver\u00f0a \u00fearf \u00f6flugt eftirlit. Fyrir utan tv\u00edundarst\u00f6\u00f0ur um \u00e1rangur\/mist\u00f6k \u00e6ttir \u00fe\u00fa a\u00f0 fylgjast me\u00f0 l\u00fdsig\u00f6gnum afritunarverkefna til a\u00f0 greina fr\u00e1vik.<\/p>\n<h3>Heuriskt eftirlit<\/h3>\n<p>Sam\u00fe\u00e6ttu l\u00fdsig\u00f6gn afritunarinnar \u00ed Prometheus og sj\u00e1\u00f0u \u00feau \u00ed Grafana. Settu upp vi\u00f0varanir fyrir eftirfarandi fr\u00e1vik:<br \/>\n*   <strong>Skyndilegt fall \u00ed st\u00e6r\u00f0:<\/strong> Ef daglegt afrit er st\u00f6\u00f0ugt 500GB, en afriti\u00f0 \u00ed dag er 50MB, g\u00e6ti verkefni\u00f0 hafa loki\u00f0 me\u00f0 \u00e1rangri (Exit Code 0), en \u00fea\u00f0 afrita\u00f0i l\u00edklega t\u00f3ma skema.<br \/>\n*   <strong>Fr\u00e1vik \u00ed t\u00edmalengd:<\/strong> Ef afritun sem tekur venjulega 2 klukkustundir kl\u00e1rast \u00e1 5 m\u00edn\u00fatum, var eitthva\u00f0 sleppt. Aftur \u00e1 m\u00f3ti, ef h\u00fan tekur 10 klukkustundir, g\u00e6tir \u00fe\u00fa veri\u00f0 me\u00f0 ni\u00f0urbrot \u00e1 disk-I\/O sem g\u00e6ti leitt til skemmda.<br \/>\n*   <strong>Upps\u00f6fnun WAL\/Archive Log:<\/strong> Ef gagnagrunnurinn \u00feinn er a\u00f0 b\u00faa til Write-Ahead Logs (WAL) en afritunarkerfi\u00f0 er ekki a\u00f0 geyma \u00feau n\u00f3gu hratt, \u00e1ttu \u00e1 h\u00e6ttu a\u00f0 f\u00e1 ey\u00f0u \u00ed Point-in-Time Recovery (PITR) ke\u00f0junni \u00feinni.<\/p>\n<h2>Innlei\u00f0ing 3-2-1 reglunnar me\u00f0 heilleikaathugunum<\/h2>\n<p>I\u00f0na\u00f0arsta\u00f0allinn 3-2-1 fyrir afritun (3 eint\u00f6k af g\u00f6gnum, 2 mismunandi mi\u00f0lar, 1 utan h\u00fass) er a\u00f0eins \u00e1rangursr\u00edkur ef \u00f6ll eint\u00f6k eru sta\u00f0fest.<\/p>\n<p>\u00deetta er \u00fear sem notkun \u00e1 enterprise-lausn eins og CloudSave dregur verulega \u00far rekstrarkostna\u00f0i. \u00cd sta\u00f0 \u00feess a\u00f0 skrifa og vi\u00f0halda fl\u00f3knum bash-forskriftum fyrir hvern gagnagrunnshn\u00fat, sam\u00fe\u00e6ttist CloudSave beint vi\u00f0 innvi\u00f0i \u00fe\u00edna til a\u00f0 gera 3-2-1 l\u00edfsferilinn sj\u00e1lfvirkan. \u00dea\u00f0 b\u00fd\u00f0ur upp \u00e1 \u00f3breytanlega geymslu \u2014 sem verndar gegn lausnarhugb\u00fana\u00f0i \u2014 og inniheldur innbygg\u00f0ar, sj\u00e1lfvirkar \u00e1\u00e6tlanir fyrir endurheimtarsta\u00f0festingu. CloudSave getur sj\u00e1lfkrafa r\u00e6st einangru\u00f0 sandkassaumhverfi, tengt afriti\u00f0, keyrt s\u00e9rsni\u00f0nar SQL-sta\u00f0festingarforskriftir \u00fe\u00ednar og sent heilsufarsst\u00f6\u00f0una aftur \u00e1 mi\u00f0l\u00e6ga m\u00e6labor\u00f0i\u00f0 \u00feitt.<\/p>\n<h2>Ni\u00f0ursta\u00f0a<\/h2>\n<p>Skemmd afrit af gagnagrunnum eru \u00fe\u00f6gull mor\u00f0ingi sem getur ey\u00f0ilagt fyrirt\u00e6ki. A\u00f0 treysta eing\u00f6ngu \u00e1 <code>Exit Code 0<\/code> \u00far afritunarforskrift er h\u00e6ttulegt fj\u00e1rh\u00e6ttuspil.<\/p>\n<p>Til a\u00f0 vernda framlei\u00f0sluumhverfi \u00feitt sannarlega ver\u00f0ur \u00fe\u00fa a\u00f0 taka upp marglaga varnarstefnu:<br \/>\n1.  Virkja\u00f0u eftirlitssummur \u00e1 s\u00ed\u00f0ustigi innan gagnagrunnskerfisins.<br \/>\n2.  Nota\u00f0u innbygg\u00f0 sta\u00f0festingart\u00f3l (<code>pg_verifybackup<\/code>, <code>RESTORE VERIFYONLY<\/code>) strax eftir a\u00f0 afritun er loki\u00f0.<br \/>\n3.  Fylgstu me\u00f0 l\u00fdsig\u00f6gnum afritunar (st\u00e6r\u00f0, t\u00edmalengd) fyrir heuriskt fr\u00e1vik.<br \/>\n4.  Innleiddu sj\u00e1lfvirkar, t\u00edmabundnar endurheimtarpr\u00f3fanir sem hluta af daglegu rekstrarferli \u00fe\u00ednu.<\/p>\n<p>Me\u00f0 \u00fev\u00ed a\u00f0 breyta \u00far \u00f3virku \u201esetja upp og gleyma\u201c afritunarhugarfari yfir \u00ed virkt \u201esamfelld endurheimtarsta\u00f0festing\u201c l\u00edkan, tryggir\u00f0u a\u00f0 \u00feegar h\u00f6rmungar ver\u00f0a \u00f3hj\u00e1kv\u00e6milega, s\u00e9u g\u00f6gnin \u00fe\u00edn tilb\u00fain, \u00e1rei\u00f0anleg og fullkomlega endurheimtanleg.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>** Discover how DevOps engineers and DBAs can detect corrupted database backups before disaster strikes. Learn advanced techniques for PostgreSQL, SQL Server, and MySQL, including automated restore testing and checksum validation.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"rank_math_title":"Detect Corrupted Database Backups Before Disaster","rank_math_description":"** Discover how DevOps engineers and DBAs can detect corrupted database backups before disaster strikes. Learn advanced techniques for PostgreSQL, SQL Server, and MySQL, including automated restore testing and checksum validation.","rank_math_focus_keyword":"corrupted database backups","footnotes":""},"categories":[479],"tags":[3370,3371,3372,480,976,2213,3373],"class_list":["post-4677","post","type-post","status-publish","format-standard","hentry","category-database-backup","tag-backup-testing","tag-corrupted-backups","tag-data-integrity","tag-data-loss-prevention","tag-database-administration","tag-devops","tag-restore-testing"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.7 (Yoast SEO v27.7) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Detect Corrupted Database Backups Before Disaster<\/title>\n<meta name=\"description\" content=\"** Discover how DevOps engineers and DBAs can detect corrupted database backups before disaster strikes. Learn advanced techniques for PostgreSQL, SQL Server, and MySQL, including automated restore testing and checksum validation.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cloudsave.app\/is\/knowledge-base\/hlj%c3%b3%c3%b0i-mor%c3%b0inginn-hvernig-%c3%a1-a%c3%b0-greina-skemmd-gagnagrunnsvarafrit-%c3%a1%c3%b0ur-en-%c3%b3sk%c3%b6pin-dynja-yfir\/\" \/>\n<meta property=\"og:locale\" content=\"is_IS\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Hlj\u00f3\u00f0i mor\u00f0inginn: Hvernig \u00e1 a\u00f0 greina skemmd gagnagrunnsvarafrit \u00e1\u00f0ur en \u00f3sk\u00f6pin dynja yfir\" \/>\n<meta property=\"og:description\" content=\"** Discover how DevOps engineers and DBAs can detect corrupted database backups before disaster strikes. Learn advanced techniques for PostgreSQL, SQL Server, and MySQL, including automated restore testing and checksum validation.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cloudsave.app\/is\/knowledge-base\/hlj%c3%b3%c3%b0i-mor%c3%b0inginn-hvernig-%c3%a1-a%c3%b0-greina-skemmd-gagnagrunnsvarafrit-%c3%a1%c3%b0ur-en-%c3%b3sk%c3%b6pin-dynja-yfir\/\" \/>\n<meta property=\"og:site_name\" content=\"CloudSave\" \/>\n<meta property=\"article:published_time\" content=\"2026-06-14T19:31:06+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-15T15:16:58+00:00\" \/>\n<meta name=\"author\" content=\"shervinrv\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"shervinrv\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/cloudsave.app\\\/is\\\/knowledge-base\\\/hlj%c3%b3%c3%b0i-mor%c3%b0inginn-hvernig-%c3%a1-a%c3%b0-greina-skemmd-gagnagrunnsvarafrit-%c3%a1%c3%b0ur-en-%c3%b3sk%c3%b6pin-dynja-yfir\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/cloudsave.app\\\/is\\\/knowledge-base\\\/hlj%c3%b3%c3%b0i-mor%c3%b0inginn-hvernig-%c3%a1-a%c3%b0-greina-skemmd-gagnagrunnsvarafrit-%c3%a1%c3%b0ur-en-%c3%b3sk%c3%b6pin-dynja-yfir\\\/\"},\"author\":{\"name\":\"shervinrv\",\"@id\":\"https:\\\/\\\/cloudsave.app\\\/is\\\/#\\\/schema\\\/person\\\/286beefe68281d868e87f46603a7ae4d\"},\"headline\":\"Hlj\u00f3\u00f0i mor\u00f0inginn: Hvernig \u00e1 a\u00f0 greina skemmd gagnagrunnsvarafrit \u00e1\u00f0ur en \u00f3sk\u00f6pin dynja yfir\",\"datePublished\":\"2026-06-14T19:31:06+00:00\",\"dateModified\":\"2026-06-15T15:16:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/cloudsave.app\\\/is\\\/knowledge-base\\\/hlj%c3%b3%c3%b0i-mor%c3%b0inginn-hvernig-%c3%a1-a%c3%b0-greina-skemmd-gagnagrunnsvarafrit-%c3%a1%c3%b0ur-en-%c3%b3sk%c3%b6pin-dynja-yfir\\\/\"},\"wordCount\":1492,\"publisher\":{\"@id\":\"https:\\\/\\\/cloudsave.app\\\/is\\\/#\\\/schema\\\/person\\\/286beefe68281d868e87f46603a7ae4d\"},\"keywords\":[\"backup testing\",\"corrupted backups\",\"data integrity\",\"data loss prevention\",\"Database Administration\",\"devops\",\"restore testing\"],\"articleSection\":[\"Database Backup\"],\"inLanguage\":\"is\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/cloudsave.app\\\/is\\\/knowledge-base\\\/hlj%c3%b3%c3%b0i-mor%c3%b0inginn-hvernig-%c3%a1-a%c3%b0-greina-skemmd-gagnagrunnsvarafrit-%c3%a1%c3%b0ur-en-%c3%b3sk%c3%b6pin-dynja-yfir\\\/\",\"url\":\"https:\\\/\\\/cloudsave.app\\\/is\\\/knowledge-base\\\/hlj%c3%b3%c3%b0i-mor%c3%b0inginn-hvernig-%c3%a1-a%c3%b0-greina-skemmd-gagnagrunnsvarafrit-%c3%a1%c3%b0ur-en-%c3%b3sk%c3%b6pin-dynja-yfir\\\/\",\"name\":\"Detect Corrupted Database Backups Before Disaster\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/cloudsave.app\\\/is\\\/#website\"},\"datePublished\":\"2026-06-14T19:31:06+00:00\",\"dateModified\":\"2026-06-15T15:16:58+00:00\",\"description\":\"** Discover how DevOps engineers and DBAs can detect corrupted database backups before disaster strikes. Learn advanced techniques for PostgreSQL, SQL Server, and MySQL, including automated restore testing and checksum validation.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/cloudsave.app\\\/is\\\/knowledge-base\\\/hlj%c3%b3%c3%b0i-mor%c3%b0inginn-hvernig-%c3%a1-a%c3%b0-greina-skemmd-gagnagrunnsvarafrit-%c3%a1%c3%b0ur-en-%c3%b3sk%c3%b6pin-dynja-yfir\\\/#breadcrumb\"},\"inLanguage\":\"is\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/cloudsave.app\\\/is\\\/knowledge-base\\\/hlj%c3%b3%c3%b0i-mor%c3%b0inginn-hvernig-%c3%a1-a%c3%b0-greina-skemmd-gagnagrunnsvarafrit-%c3%a1%c3%b0ur-en-%c3%b3sk%c3%b6pin-dynja-yfir\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/cloudsave.app\\\/is\\\/knowledge-base\\\/hlj%c3%b3%c3%b0i-mor%c3%b0inginn-hvernig-%c3%a1-a%c3%b0-greina-skemmd-gagnagrunnsvarafrit-%c3%a1%c3%b0ur-en-%c3%b3sk%c3%b6pin-dynja-yfir\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/cloudsave.app\\\/is\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Hlj\u00f3\u00f0i mor\u00f0inginn: Hvernig \u00e1 a\u00f0 greina skemmd gagnagrunnsvarafrit \u00e1\u00f0ur en \u00f3sk\u00f6pin dynja yfir\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/cloudsave.app\\\/is\\\/#website\",\"url\":\"https:\\\/\\\/cloudsave.app\\\/is\\\/\",\"name\":\"CloudSave\",\"description\":\"CloudSave\",\"publisher\":{\"@id\":\"https:\\\/\\\/cloudsave.app\\\/is\\\/#\\\/schema\\\/person\\\/286beefe68281d868e87f46603a7ae4d\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/cloudsave.app\\\/is\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"is\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/cloudsave.app\\\/is\\\/#\\\/schema\\\/person\\\/286beefe68281d868e87f46603a7ae4d\",\"name\":\"shervinrv\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"is\",\"@id\":\"https:\\\/\\\/cloudsave.app\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/Logo_Name-2.png\",\"url\":\"https:\\\/\\\/cloudsave.app\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/Logo_Name-2.png\",\"contentUrl\":\"https:\\\/\\\/cloudsave.app\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/Logo_Name-2.png\",\"width\":859,\"height\":150,\"caption\":\"shervinrv\"},\"logo\":{\"@id\":\"https:\\\/\\\/cloudsave.app\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/Logo_Name-2.png\"},\"sameAs\":[\"http:\\\/\\\/cloudsave.app\"],\"url\":\"https:\\\/\\\/cloudsave.app\\\/is\\\/knowledge-base\\\/author\\\/shervinrv\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Detect Corrupted Database Backups Before Disaster","description":"** Discover how DevOps engineers and DBAs can detect corrupted database backups before disaster strikes. Learn advanced techniques for PostgreSQL, SQL Server, and MySQL, including automated restore testing and checksum validation.","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:\/\/cloudsave.app\/is\/knowledge-base\/hlj%c3%b3%c3%b0i-mor%c3%b0inginn-hvernig-%c3%a1-a%c3%b0-greina-skemmd-gagnagrunnsvarafrit-%c3%a1%c3%b0ur-en-%c3%b3sk%c3%b6pin-dynja-yfir\/","og_locale":"is_IS","og_type":"article","og_title":"Hlj\u00f3\u00f0i mor\u00f0inginn: Hvernig \u00e1 a\u00f0 greina skemmd gagnagrunnsvarafrit \u00e1\u00f0ur en \u00f3sk\u00f6pin dynja yfir","og_description":"** Discover how DevOps engineers and DBAs can detect corrupted database backups before disaster strikes. Learn advanced techniques for PostgreSQL, SQL Server, and MySQL, including automated restore testing and checksum validation.","og_url":"https:\/\/cloudsave.app\/is\/knowledge-base\/hlj%c3%b3%c3%b0i-mor%c3%b0inginn-hvernig-%c3%a1-a%c3%b0-greina-skemmd-gagnagrunnsvarafrit-%c3%a1%c3%b0ur-en-%c3%b3sk%c3%b6pin-dynja-yfir\/","og_site_name":"CloudSave","article_published_time":"2026-06-14T19:31:06+00:00","article_modified_time":"2026-06-15T15:16:58+00:00","author":"shervinrv","twitter_card":"summary_large_image","twitter_misc":{"Written by":"shervinrv","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/cloudsave.app\/is\/knowledge-base\/hlj%c3%b3%c3%b0i-mor%c3%b0inginn-hvernig-%c3%a1-a%c3%b0-greina-skemmd-gagnagrunnsvarafrit-%c3%a1%c3%b0ur-en-%c3%b3sk%c3%b6pin-dynja-yfir\/#article","isPartOf":{"@id":"https:\/\/cloudsave.app\/is\/knowledge-base\/hlj%c3%b3%c3%b0i-mor%c3%b0inginn-hvernig-%c3%a1-a%c3%b0-greina-skemmd-gagnagrunnsvarafrit-%c3%a1%c3%b0ur-en-%c3%b3sk%c3%b6pin-dynja-yfir\/"},"author":{"name":"shervinrv","@id":"https:\/\/cloudsave.app\/is\/#\/schema\/person\/286beefe68281d868e87f46603a7ae4d"},"headline":"Hlj\u00f3\u00f0i mor\u00f0inginn: Hvernig \u00e1 a\u00f0 greina skemmd gagnagrunnsvarafrit \u00e1\u00f0ur en \u00f3sk\u00f6pin dynja yfir","datePublished":"2026-06-14T19:31:06+00:00","dateModified":"2026-06-15T15:16:58+00:00","mainEntityOfPage":{"@id":"https:\/\/cloudsave.app\/is\/knowledge-base\/hlj%c3%b3%c3%b0i-mor%c3%b0inginn-hvernig-%c3%a1-a%c3%b0-greina-skemmd-gagnagrunnsvarafrit-%c3%a1%c3%b0ur-en-%c3%b3sk%c3%b6pin-dynja-yfir\/"},"wordCount":1492,"publisher":{"@id":"https:\/\/cloudsave.app\/is\/#\/schema\/person\/286beefe68281d868e87f46603a7ae4d"},"keywords":["backup testing","corrupted backups","data integrity","data loss prevention","Database Administration","devops","restore testing"],"articleSection":["Database Backup"],"inLanguage":"is"},{"@type":"WebPage","@id":"https:\/\/cloudsave.app\/is\/knowledge-base\/hlj%c3%b3%c3%b0i-mor%c3%b0inginn-hvernig-%c3%a1-a%c3%b0-greina-skemmd-gagnagrunnsvarafrit-%c3%a1%c3%b0ur-en-%c3%b3sk%c3%b6pin-dynja-yfir\/","url":"https:\/\/cloudsave.app\/is\/knowledge-base\/hlj%c3%b3%c3%b0i-mor%c3%b0inginn-hvernig-%c3%a1-a%c3%b0-greina-skemmd-gagnagrunnsvarafrit-%c3%a1%c3%b0ur-en-%c3%b3sk%c3%b6pin-dynja-yfir\/","name":"Detect Corrupted Database Backups Before Disaster","isPartOf":{"@id":"https:\/\/cloudsave.app\/is\/#website"},"datePublished":"2026-06-14T19:31:06+00:00","dateModified":"2026-06-15T15:16:58+00:00","description":"** Discover how DevOps engineers and DBAs can detect corrupted database backups before disaster strikes. Learn advanced techniques for PostgreSQL, SQL Server, and MySQL, including automated restore testing and checksum validation.","breadcrumb":{"@id":"https:\/\/cloudsave.app\/is\/knowledge-base\/hlj%c3%b3%c3%b0i-mor%c3%b0inginn-hvernig-%c3%a1-a%c3%b0-greina-skemmd-gagnagrunnsvarafrit-%c3%a1%c3%b0ur-en-%c3%b3sk%c3%b6pin-dynja-yfir\/#breadcrumb"},"inLanguage":"is","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cloudsave.app\/is\/knowledge-base\/hlj%c3%b3%c3%b0i-mor%c3%b0inginn-hvernig-%c3%a1-a%c3%b0-greina-skemmd-gagnagrunnsvarafrit-%c3%a1%c3%b0ur-en-%c3%b3sk%c3%b6pin-dynja-yfir\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/cloudsave.app\/is\/knowledge-base\/hlj%c3%b3%c3%b0i-mor%c3%b0inginn-hvernig-%c3%a1-a%c3%b0-greina-skemmd-gagnagrunnsvarafrit-%c3%a1%c3%b0ur-en-%c3%b3sk%c3%b6pin-dynja-yfir\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cloudsave.app\/is\/"},{"@type":"ListItem","position":2,"name":"Hlj\u00f3\u00f0i mor\u00f0inginn: Hvernig \u00e1 a\u00f0 greina skemmd gagnagrunnsvarafrit \u00e1\u00f0ur en \u00f3sk\u00f6pin dynja yfir"}]},{"@type":"WebSite","@id":"https:\/\/cloudsave.app\/is\/#website","url":"https:\/\/cloudsave.app\/is\/","name":"CloudSave","description":"CloudSave","publisher":{"@id":"https:\/\/cloudsave.app\/is\/#\/schema\/person\/286beefe68281d868e87f46603a7ae4d"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cloudsave.app\/is\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"is"},{"@type":["Person","Organization"],"@id":"https:\/\/cloudsave.app\/is\/#\/schema\/person\/286beefe68281d868e87f46603a7ae4d","name":"shervinrv","image":{"@type":"ImageObject","inLanguage":"is","@id":"https:\/\/cloudsave.app\/wp-content\/uploads\/2026\/02\/Logo_Name-2.png","url":"https:\/\/cloudsave.app\/wp-content\/uploads\/2026\/02\/Logo_Name-2.png","contentUrl":"https:\/\/cloudsave.app\/wp-content\/uploads\/2026\/02\/Logo_Name-2.png","width":859,"height":150,"caption":"shervinrv"},"logo":{"@id":"https:\/\/cloudsave.app\/wp-content\/uploads\/2026\/02\/Logo_Name-2.png"},"sameAs":["http:\/\/cloudsave.app"],"url":"https:\/\/cloudsave.app\/is\/knowledge-base\/author\/shervinrv\/"}]}},"_links":{"self":[{"href":"https:\/\/cloudsave.app\/is\/wp-json\/wp\/v2\/posts\/4677","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cloudsave.app\/is\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cloudsave.app\/is\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cloudsave.app\/is\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cloudsave.app\/is\/wp-json\/wp\/v2\/comments?post=4677"}],"version-history":[{"count":2,"href":"https:\/\/cloudsave.app\/is\/wp-json\/wp\/v2\/posts\/4677\/revisions"}],"predecessor-version":[{"id":5743,"href":"https:\/\/cloudsave.app\/is\/wp-json\/wp\/v2\/posts\/4677\/revisions\/5743"}],"wp:attachment":[{"href":"https:\/\/cloudsave.app\/is\/wp-json\/wp\/v2\/media?parent=4677"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudsave.app\/is\/wp-json\/wp\/v2\/categories?post=4677"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudsave.app\/is\/wp-json\/wp\/v2\/tags?post=4677"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}