{"id":4700,"date":"2026-06-14T19:31:06","date_gmt":"2026-06-14T19:31:06","guid":{"rendered":"https:\/\/cloudsave.app\/?p=4700"},"modified":"2026-06-15T15:31:51","modified_gmt":"2026-06-15T15:31:51","slug":"tihi-ubica-kako-otkriti-o%c5%a1te%c4%87ene-rezervne-kopije-baze-podataka-pre-nego-%c5%a1to-do%c4%91e-do-katastrofe","status":"publish","type":"post","link":"https:\/\/cloudsave.app\/sr\/knowledge-base\/tihi-ubica-kako-otkriti-o%c5%a1te%c4%87ene-rezervne-kopije-baze-podataka-pre-nego-%c5%a1to-do%c4%91e-do-katastrofe\/","title":{"rendered":"Tihi ubica: Kako otkriti o\u0161te\u0107ene rezervne kopije baze podataka pre nego \u0161to do\u0111e do katastrofe"},"content":{"rendered":"<p>U svetu administracije baza podataka i in\u017eenjeringa pouzdanosti lokacija (SRE) sa visokim ulozima, postoji dobro poznata aksioma: <em>\u0160redingerova rezervna kopija<\/em>. Stanje bilo koje rezervne kopije je nepoznato sve dok ne poku\u0161ate da je vratite. Do tog trenutka, ona postoji u kvantnom stanju u kojem je istovremeno savr\u0161eno ispravna i potpuno o\u0161te\u0107ena.<\/p>\n<p>Za DevOps in\u017eenjere i administratore baza podataka (DBA), otkrivanje da je kriti\u010dna rezervna kopija baze podataka o\u0161te\u0107ena tokom aktivnog incidenta je scenario iz najgore no\u0107ne more. To pretvara rutinsku operaciju oporavka u katastrofalan gubitak podataka. Ovaj \u201etihi ubica\u201c integriteta podataka \u010desto prolazi neprime\u0107eno jer poslovi pravljenja rezervnih kopija \u010desto prijavljuju uspe\u0161an <code>Exit Code 0<\/code> \u010dak i kada je osnovni sadr\u017eaj kompromitovan.<\/p>\n<p>U ovom sveobuhvatnom vodi\u010du, analizira\u0107emo anatomiju o\u0161te\u0107enja rezervnih kopija, istra\u017eiti tehnike validacije specifi\u010dne za baze podataka i pokazati kako izgraditi automatizovane, neprobojne cevovode za vra\u0107anje podataka u produkcionim okru\u017eenjima.<\/p>\n<h2>Anatomija o\u0161te\u0107enja rezervne kopije<\/h2>\n<p>Da biste otkrili o\u0161te\u0107enje, prvo morate razumeti kako do njega dolazi. O\u0161te\u0107enje rezervne kopije uglavnom spada u dve kategorije: fizi\u010dko (na nivou infrastrukture) i logi\u010dko (na nivou aplikacije).<\/p>\n<h3>Fizi\u010dko o\u0161te\u0107enje<\/h3>\n<p>Fizi\u010dko o\u0161te\u0107enje nastaje kada se stvarni bitovi na medijumu za skladi\u0161tenje promene. To se mo\u017ee desiti tokom procesa \u010ditanja sa izvornog diska, tokom mre\u017enog prenosa ili dok podaci miruju na ciljnom skladi\u0161tu.<br \/>\n*   <strong>Bit Rot (propadanje bitova):<\/strong> Postepena degradacija medijuma za skladi\u0161tenje mo\u017ee neprimetno da promeni bitove.<br \/>\n*   <strong>Gre\u0161ke u prenosu:<\/strong> Iako TCP ima kontrolne sume (checksums), one su notorno slabe (16-bitne). Okru\u017eenja sa visokim protokom mogu iskusiti tiho o\u0161te\u0107enje podataka tokom prenosa koje TCP ne uspeva da otkrije.<br \/>\n*   <strong>Kvarovi kontrolera skladi\u0161ta:<\/strong> Hardverske gre\u0161ke u RAID kontrolerima ili SAN mre\u017eama mogu upisati neispravne podatke dok operativnom sistemu prijavljuju uspeh.<\/p>\n<h3>Logi\u010dko o\u0161te\u0107enje<\/h3>\n<p>Logi\u010dko o\u0161te\u0107enje je verovatno opasnije jer je sama datoteka rezervne kopije savr\u0161eno netaknuta, ali su podaci unutar nje neispravni.<br \/>\n*   <strong>Sme\u0107e unutra, sme\u0107e napolje (GIGO):<\/strong> Ako va\u0161a aktivna baza podataka ima o\u0161te\u0107en indeks ili o\u0161te\u0107enu stranicu, va\u0161 alat za rezervne kopije mo\u017ee verno kopirati tu o\u0161te\u0107enu stranicu. Posao pravljenja rezervne kopije uspeva, ali vra\u0107anje podataka ne\u0107e uspeti ili \u0107e rezultirati neispravnom bazom podataka.<br \/>\n*   <strong>Nepotpune transakcije:<\/strong> Snimci na nivou sistema datoteka napravljeni bez pravilnog zamrzavanja I\/O operacija baze podataka (npr. nekoris\u0107enje <code>FLUSH TABLES WITH READ LOCK<\/code> u MySQL-u) rezultiraju o\u0161te\u0107enim stranicama i nepopravljivim stanjima.<\/p>\n<h2>Proaktivno otkrivanje: Kontrolne sume i kriptografsko he\u0161iranje<\/h2>\n<p>Prva linija odbrane od fizi\u010dkog o\u0161te\u0107enja je kriptografska validacija. Oslanjanje na veli\u010dine datoteka ili datume izmene je nedovoljno.<\/p>\n<h3>Omogu\u0107avanje kontrolnih suma na nivou baze podataka<\/h3>\n<p>Moderni sistemi za upravljanje relacionim bazama podataka (RDBMS) podr\u017eavaju kontrolne sume na nivou stranice. Kada su omogu\u0107ene, baza podataka izra\u010dunava kontrolnu sumu za svaku stranicu pre nego \u0161to je upi\u0161e na disk. Kada se stranica \u010dita (bilo upitom ili procesom pravljenja rezervne kopije), kontrolna suma se proverava.<\/p>\n<p>Za <strong>PostgreSQL<\/strong>, mo\u017eete omogu\u0107iti kontrolne sume podataka tokom inicijalizacije klastera:<\/p>\n<pre><code class=\"language-bash\"># Inicijalizujte novi PostgreSQL klaster sa omogu\u0107enim kontrolnim sumama\ninitdb --data-checksums -D \/var\/lib\/postgresql\/data\n<\/code><\/pre>\n<p><em>Napomena: Ako ve\u0107 imate postoje\u0107i PostgreSQL klaster, mo\u017eete koristiti <code>pg_checksums<\/code> uslu\u017eni program da ih omogu\u0107ite van mre\u017ee (offline).<\/em><\/p>\n<p>Za <strong>Microsoft SQL Server<\/strong>, uverite se da je <code>PAGE_VERIFY<\/code> pode\u0161en na <code>CHECKSUM<\/code> (podrazumevano u modernim verzijama, ali vredi proveriti na starijim sistemima):<\/p>\n<pre><code class=\"language-sql\">ALTER DATABASE [ProductionDB] SET PAGE_VERIFY CHECKSUM;\nGO\n<\/code><\/pre>\n<h3>Validacija rezervnih kopija u stanju mirovanja<\/h3>\n<p>Kada rezervna kopija stigne na va\u0161e odredi\u0161te za skladi\u0161tenje, njen integritet mora biti kriptografski verifikovan. Enterprise platforme za rezervne kopije kao \u0161to je CloudSave automatski izra\u010dunavaju i verifikuju SHA-256 he\u0161ove blokova rezervnih kopija tokom prenosa i u stanju mirovanja. Ako upravljate prilago\u0111enim skriptama, ovo morate implementirati ru\u010dno:<\/p>\n<pre><code class=\"language-bash\"># Generi\u0161ite SHA-256 he\u0161 nakon kreiranja rezervne kopije\nsha256sum prod_db_backup.tar.gz &gt; prod_db_backup.tar.gz.sha256\n\n# Verifikujte he\u0161 na serveru za skladi\u0161tenje\nsha256sum -c prod_db_backup.tar.gz.sha256\n<\/code><\/pre>\n<h2>Tehnike validacije specifi\u010dne za baze podataka<\/h2>\n<p>Razli\u010diti mehanizmi baza podataka nude izvorne alate za proveru integriteta njihovih artefakata rezervnih kopija.<\/p>\n<h3>PostgreSQL: <code>pg_verifybackup<\/code><\/h3>\n<p>Predstavljen u PostgreSQL 13, <code>pg_verifybackup<\/code> menja pravila igre za fizi\u010dke rezervne kopije napravljene pomo\u0107u <code>pg_basebackup<\/code>. On \u010dita <code>backup_manifest<\/code> datoteku generisanu tokom pravljenja rezervne kopije i proverava da li su sve datoteke prisutne i da li se njihove kontrolne sume podudaraju.<\/p>\n<pre><code class=\"language-bash\"># Pokrenite verifikaciju nad direktorijumom fizi\u010dke osnovne rezervne kopije\npg_verifybackup \/mnt\/backups\/postgres\/base_backup_20231025\/\n<\/code><\/pre>\n<p>Ako je ijedan bit promenjen u bilo kojoj od datoteka sa podacima, <code>pg_verifybackup<\/code> \u0107e izbaciti fatalnu gre\u0161ku, omogu\u0107avaju\u0107i va\u0161im sistemima za nadzor da odmah upozore DBA tim.<\/p>\n<h3>Microsoft SQL Server: <code>RESTORE VERIFYONLY<\/code><\/h3>\n<p>SQL Server pru\u017ea izvornu komandu za proveru fizi\u010dkog integriteta datoteke rezervne kopije bez stvarnog vra\u0107anja podataka. On proverava zaglavlja rezervne kopije i validira kontrolne sume stranica (ako su bile omogu\u0107ene tokom pravljenja rezervne kopije).<\/p>\n<pre><code class=\"language-sql\">RESTORE VERIFYONLY \nFROM DISK = 'Z:BackupsProdDB_Full.bak' \nWITH CHECKSUM;\n<\/code><\/pre>\n<p><strong>Upozorenje:<\/strong> <code>RESTORE VERIFYONLY<\/code> samo potvr\u0111uje da je datoteka rezervne kopije \u010ditljiva i da se fizi\u010dke kontrolne sume podudaraju. To <em>ne garantuje<\/em> logi\u010dki integritet. Da biste osigurali logi\u010dki integritet, morate izvr\u0161iti potpuno vra\u0107anje podataka i pokrenuti <code>DBCC CHECKDB<\/code>.<\/p>\n<h3>MySQL \/ InnoDB: Percona XtraBackup<\/h3>\n<p>Za MySQL okru\u017eenja, fizi\u010dkim rezervnim kopijama \u010desto upravlja Percona XtraBackup. Proces pravljenja rezervne kopije se sastoji od kopiranja datoteka, ali rezervna kopija nije konzistentna dok se ne primene transakcioni logovi (redo logs). Faza <code>--prepare<\/code> deluje kao ugra\u0111ena provera integriteta.<\/p>\n<pre><code class=\"language-bash\"># Priprema rezervne kopije primenjuje redo logove. \n# Ako je rezervna kopija o\u0161te\u0107ena, ovaj korak ne\u0107e uspeti.\nxtrabackup --prepare --target-dir=\/data\/backups\/mysql\/\n<\/code><\/pre>\n<h2>Zlatni standard: Automatizovano testiranje vra\u0107anja podataka<\/h2>\n<p>Kontrolne sume i komande za verifikaciju su neophodne, ali nisu dovoljne. Jedini na\u010din da se definitivno doka\u017ee da je rezervna kopija ispravna jeste da se ona vrati. U modernim DevOps okru\u017eenjima, ovaj proces mora biti potpuno automatizovan.<\/p>\n<p>Tretiranjem rezervnih kopija kao koda, mo\u017eete izgraditi CI\/CD cevovod za vra\u0107anje va\u0161ih baza podataka. Ovaj cevovod treba da obezbedi efemernu infrastrukturu, izvr\u0161i vra\u0107anje, pokrene upite za validaciju i ukloni okru\u017eenje.<\/p>\n<h3>Izgradnja automatizovanog cevovoda za vra\u0107anje podataka<\/h3>\n<p>Ispod je primer Bash skripte koju bi svakodnevno mogao da pokre\u0107e cron posao ili CI pokreta\u010d (poput GitLab CI ili GitHub Actions) radi validacije PostgreSQL logi\u010dkog dump-a.<\/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] Pokretanje automatizovanog testa vra\u0107anja podataka...&quot;\n\n# 1. Pokrenite efemerni PostgreSQL kontejner\ndocker run --name $CONTAINER_NAME \n  -e POSTGRES_PASSWORD=testpass \n  -d postgres:15\n\n# Sa\u010dekajte da PostgreSQL bude spreman\necho &quot;[INFO] \u010cekanje na inicijalizaciju baze podataka...&quot;\nuntil docker exec $CONTAINER_NAME pg_isready -U postgres; do\n  sleep 2\ndone\n\n# 2. Kreirajte ciljnu bazu podataka\ndocker exec $CONTAINER_NAME psql -U postgres -c &quot;CREATE DATABASE $DB_NAME;&quot;\n\n# 3. Izvr\u0161ite vra\u0107anje podataka\necho &quot;[INFO] Vra\u0107anje rezervne kopije...&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. Pokrenite upite za logi\u010dku validaciju\necho &quot;[INFO] Pokretanje upita za validaciju...&quot;\n# Proverite da li tabela korisnika ima vi\u0161e od 10.000 zapisa\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] Logi\u010dka validacija nije uspela. O\u010dekivano &gt;10000 korisnika, prona\u0111eno $USER_COUNT&quot;\n    # Ovde pokrenite PagerDuty \/ Slack upozorenje\n    exit 1\nelse\n    echo &quot;[SUCCESS] Logi\u010dka validacija uspe\u0161na. Broj korisnika: $USER_COUNT&quot;\nfi\n\n# 5. Uklonite efemerno okru\u017eenje\necho &quot;[INFO] \u010ci\u0161\u0107enje...&quot;\ndocker rm -f $CONTAINER_NAME\n\necho &quot;[INFO] Automatizovani test vra\u0107anja podataka uspe\u0161no zavr\u0161en.&quot;\n<\/code><\/pre>\n<h3>\u0160ta treba da validirate?<\/h3>\n<p>Kada vr\u0161ite automatizovano testiranje vra\u0107anja podataka, nemojte samo proveravati da li se baza podataka pokre\u0107e. Pokrenite upite za validaciju specifi\u010dne za aplikaciju:<br \/>\n1.  <strong>Broj redova:<\/strong> Uverite se da klju\u010dne tabele imaju o\u010dekivani broj redova (npr. tabela <code>users<\/code> ne bi trebalo da bude prazna).<br \/>\n2.  <strong>Nedavni podaci:<\/strong> Pretra\u017eite zapise kreirane u poslednja 24 sata kako biste osigurali da rezervna kopija nije zastarela.<br \/>\n3.  <strong>Referencijalni integritet:<\/strong> Pokrenite skripte za proveru siro\u010dad stranih klju\u010deva (orphaned foreign keys), \u0161to ukazuje na logi\u010dko o\u0161te\u0107enje.<\/p>\n<h2>Nadzor i upozorenja za anomalije u rezervnim kopijama<\/h2>\n<p>Otkrivanje o\u0161te\u0107enja pre nego \u0161to se katastrofa desi zahteva robusnu opservabilnost. Pored binarnih stanja uspeha\/neuspeha, trebalo bi da nadgledate metapodatke va\u0161ih poslova pravljenja rezervnih kopija kako biste otkrili anomalije.<\/p>\n<h3>Heuristi\u010dki nadzor<\/h3>\n<p>Integri\u0161ite metapodatke va\u0161ih rezervnih kopija u Prometheus i vizuelizujte ih pomo\u0107u Grafane. Podesite upozorenja za slede\u0107e heuristike:<br \/>\n*   <strong>Nagli pad veli\u010dine:<\/strong> Ako je va\u0161a dnevna rezervna kopija konstantno 500GB, a dana\u0161nja je 50MB, posao je mo\u017eda uspe\u0161no zavr\u0161en (Exit Code 0), ali je verovatno napravljena rezervna kopija prazne \u0161eme.<br \/>\n*   <strong>Anomalije u trajanju:<\/strong> Ako se rezervna kopija koja obi\u010dno traje 2 sata zavr\u0161i za 5 minuta, ne\u0161to je presko\u010deno. Suprotno tome, ako traje 10 sati, mo\u017eda imate degradaciju I\/O diska koja mo\u017ee dovesti do o\u0161te\u0107enja.<br \/>\n*   <strong>Akumulacija WAL\/arhivskih logova:<\/strong> Ako va\u0161a baza podataka generi\u0161e Write-Ahead logove (WAL), a sistem za rezervne kopije ih ne arhivira dovoljno brzo, rizikujete prekid u va\u0161em lancu oporavka do odre\u0111ene ta\u010dke u vremenu (PITR).<\/p>\n<h2>Implementacija pravila 3-2-1 sa proverama integriteta<\/h2>\n<p>Industrijski standard, pravilo 3-2-1 za rezervne kopije (3 kopije podataka, 2 razli\u010dita medijuma, 1 van lokacije), efikasno je samo ako su sve kopije verifikovane.<\/p>\n<p>Ovde kori\u0161\u0107enje enterprise re\u0161enja kao \u0161to je CloudSave drasti\u010dno smanjuje operativne tro\u0161kove. Umesto pisanja i odr\u017eavanja slo\u017eenih bash skripti za svaki \u010dvor baze podataka, CloudSave se direktno integri\u0161e sa va\u0161om infrastrukturom radi automatizacije \u017eivotnog ciklusa 3-2-1. On pru\u017ea nepromenljivo skladi\u0161te (immutable storage) \u2014 \u0161tite\u0107i od ransomware-a \u2014 i sadr\u017ei ugra\u0111ene, automatizovane rasporede za verifikaciju vra\u0107anja podataka. CloudSave mo\u017ee automatski pokrenuti izolovana sandbox okru\u017eenja, montirati rezervnu kopiju, pokrenuti va\u0161e prilago\u0111ene SQL skripte za validaciju i prijaviti status zdravlja nazad na va\u0161u centralnu kontrolnu tablu.<\/p>\n<h2>Zaklju\u010dak<\/h2>\n<p>O\u0161te\u0107ene rezervne kopije baza podataka su tihi ubica koji mo\u017ee uni\u0161titi poslovanje. Oslanjanje isklju\u010divo na <code>Exit Code 0<\/code> skripte za rezervne kopije je opasno kockanje.<\/p>\n<p>Da biste zaista za\u0161titili svoja produkciona okru\u017eenja, morate usvojiti strategiju dubinske odbrane:<br \/>\n1.  Omogu\u0107ite kontrolne sume na nivou stranice unutar va\u0161eg mehanizma baze podataka.<br \/>\n2.  Koristite izvorne alate za verifikaciju (<code>pg_verifybackup<\/code>, <code>RESTORE VERIFYONLY<\/code>) odmah nakon kreiranja rezervne kopije.<br \/>\n3.  Nadgledajte metapodatke rezervnih kopija (veli\u010dinu, trajanje) radi heuristi\u010dkih anomalija.<br \/>\n4.  Implementirajte automatizovano, efemerno testiranje vra\u0107anja podataka kao deo va\u0161eg svakodnevnog operativnog cevovoda.<\/p>\n<p>Prelaskom sa pasivnog mentaliteta \u201epokreni i zaboravi\u201c na model \u201ekontinuirane validacije vra\u0107anja podataka\u201c, osiguravate da kada katastrofa neizbe\u017eno udari, va\u0161i podaci budu spremni, pouzdani i potpuno oporavljivi.<\/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":[663],"tags":[3462,3463,3464,664,1137,2374,3465],"class_list":["post-4700","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\/sr\/knowledge-base\/tihi-ubica-kako-otkriti-o%c5%a1te%c4%87ene-rezervne-kopije-baze-podataka-pre-nego-%c5%a1to-do%c4%91e-do-katastrofe\/\" \/>\n<meta property=\"og:locale\" content=\"sr_RS\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Tihi ubica: Kako otkriti o\u0161te\u0107ene rezervne kopije baze podataka pre nego \u0161to do\u0111e do katastrofe\" \/>\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\/sr\/knowledge-base\/tihi-ubica-kako-otkriti-o%c5%a1te%c4%87ene-rezervne-kopije-baze-podataka-pre-nego-%c5%a1to-do%c4%91e-do-katastrofe\/\" \/>\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:31:51+00:00\" \/>\n<meta name=\"author\" content=\"shervinrv\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u041d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u043e\u0434\" \/>\n\t<meta name=\"twitter:data1\" content=\"shervinrv\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u041f\u0440\u043e\u0446\u0435\u045a\u0435\u043d\u043e \u0432\u0440\u0435\u043c\u0435 \u0447\u0438\u0442\u0430\u045a\u0430\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 \u043c\u0438\u043d\u0443\u0442\u0430\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/cloudsave.app\\\/sr\\\/knowledge-base\\\/tihi-ubica-kako-otkriti-o%c5%a1te%c4%87ene-rezervne-kopije-baze-podataka-pre-nego-%c5%a1to-do%c4%91e-do-katastrofe\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/cloudsave.app\\\/sr\\\/knowledge-base\\\/tihi-ubica-kako-otkriti-o%c5%a1te%c4%87ene-rezervne-kopije-baze-podataka-pre-nego-%c5%a1to-do%c4%91e-do-katastrofe\\\/\"},\"author\":{\"name\":\"shervinrv\",\"@id\":\"https:\\\/\\\/cloudsave.app\\\/sr\\\/#\\\/schema\\\/person\\\/286beefe68281d868e87f46603a7ae4d\"},\"headline\":\"Tihi ubica: Kako otkriti o\u0161te\u0107ene rezervne kopije baze podataka pre nego \u0161to do\u0111e do katastrofe\",\"datePublished\":\"2026-06-14T19:31:06+00:00\",\"dateModified\":\"2026-06-15T15:31:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/cloudsave.app\\\/sr\\\/knowledge-base\\\/tihi-ubica-kako-otkriti-o%c5%a1te%c4%87ene-rezervne-kopije-baze-podataka-pre-nego-%c5%a1to-do%c4%91e-do-katastrofe\\\/\"},\"wordCount\":1510,\"publisher\":{\"@id\":\"https:\\\/\\\/cloudsave.app\\\/sr\\\/#\\\/schema\\\/person\\\/286beefe68281d868e87f46603a7ae4d\"},\"keywords\":[\"backup testing\",\"corrupted backups\",\"data integrity\",\"data loss prevention\",\"Database Administration\",\"devops\",\"restore testing\"],\"articleSection\":[\"Database Backup\"],\"inLanguage\":\"sr-RS\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/cloudsave.app\\\/sr\\\/knowledge-base\\\/tihi-ubica-kako-otkriti-o%c5%a1te%c4%87ene-rezervne-kopije-baze-podataka-pre-nego-%c5%a1to-do%c4%91e-do-katastrofe\\\/\",\"url\":\"https:\\\/\\\/cloudsave.app\\\/sr\\\/knowledge-base\\\/tihi-ubica-kako-otkriti-o%c5%a1te%c4%87ene-rezervne-kopije-baze-podataka-pre-nego-%c5%a1to-do%c4%91e-do-katastrofe\\\/\",\"name\":\"Detect Corrupted Database Backups Before Disaster\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/cloudsave.app\\\/sr\\\/#website\"},\"datePublished\":\"2026-06-14T19:31:06+00:00\",\"dateModified\":\"2026-06-15T15:31:51+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\\\/sr\\\/knowledge-base\\\/tihi-ubica-kako-otkriti-o%c5%a1te%c4%87ene-rezervne-kopije-baze-podataka-pre-nego-%c5%a1to-do%c4%91e-do-katastrofe\\\/#breadcrumb\"},\"inLanguage\":\"sr-RS\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/cloudsave.app\\\/sr\\\/knowledge-base\\\/tihi-ubica-kako-otkriti-o%c5%a1te%c4%87ene-rezervne-kopije-baze-podataka-pre-nego-%c5%a1to-do%c4%91e-do-katastrofe\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/cloudsave.app\\\/sr\\\/knowledge-base\\\/tihi-ubica-kako-otkriti-o%c5%a1te%c4%87ene-rezervne-kopije-baze-podataka-pre-nego-%c5%a1to-do%c4%91e-do-katastrofe\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/cloudsave.app\\\/sr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tihi ubica: Kako otkriti o\u0161te\u0107ene rezervne kopije baze podataka pre nego \u0161to do\u0111e do katastrofe\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/cloudsave.app\\\/sr\\\/#website\",\"url\":\"https:\\\/\\\/cloudsave.app\\\/sr\\\/\",\"name\":\"CloudSave\",\"description\":\"CloudSave\",\"publisher\":{\"@id\":\"https:\\\/\\\/cloudsave.app\\\/sr\\\/#\\\/schema\\\/person\\\/286beefe68281d868e87f46603a7ae4d\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/cloudsave.app\\\/sr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"sr-RS\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/cloudsave.app\\\/sr\\\/#\\\/schema\\\/person\\\/286beefe68281d868e87f46603a7ae4d\",\"name\":\"shervinrv\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"sr-RS\",\"@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\\\/sr\\\/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\/sr\/knowledge-base\/tihi-ubica-kako-otkriti-o%c5%a1te%c4%87ene-rezervne-kopije-baze-podataka-pre-nego-%c5%a1to-do%c4%91e-do-katastrofe\/","og_locale":"sr_RS","og_type":"article","og_title":"Tihi ubica: Kako otkriti o\u0161te\u0107ene rezervne kopije baze podataka pre nego \u0161to do\u0111e do katastrofe","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\/sr\/knowledge-base\/tihi-ubica-kako-otkriti-o%c5%a1te%c4%87ene-rezervne-kopije-baze-podataka-pre-nego-%c5%a1to-do%c4%91e-do-katastrofe\/","og_site_name":"CloudSave","article_published_time":"2026-06-14T19:31:06+00:00","article_modified_time":"2026-06-15T15:31:51+00:00","author":"shervinrv","twitter_card":"summary_large_image","twitter_misc":{"\u041d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u043e\u0434":"shervinrv","\u041f\u0440\u043e\u0446\u0435\u045a\u0435\u043d\u043e \u0432\u0440\u0435\u043c\u0435 \u0447\u0438\u0442\u0430\u045a\u0430":"9 \u043c\u0438\u043d\u0443\u0442\u0430"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/cloudsave.app\/sr\/knowledge-base\/tihi-ubica-kako-otkriti-o%c5%a1te%c4%87ene-rezervne-kopije-baze-podataka-pre-nego-%c5%a1to-do%c4%91e-do-katastrofe\/#article","isPartOf":{"@id":"https:\/\/cloudsave.app\/sr\/knowledge-base\/tihi-ubica-kako-otkriti-o%c5%a1te%c4%87ene-rezervne-kopije-baze-podataka-pre-nego-%c5%a1to-do%c4%91e-do-katastrofe\/"},"author":{"name":"shervinrv","@id":"https:\/\/cloudsave.app\/sr\/#\/schema\/person\/286beefe68281d868e87f46603a7ae4d"},"headline":"Tihi ubica: Kako otkriti o\u0161te\u0107ene rezervne kopije baze podataka pre nego \u0161to do\u0111e do katastrofe","datePublished":"2026-06-14T19:31:06+00:00","dateModified":"2026-06-15T15:31:51+00:00","mainEntityOfPage":{"@id":"https:\/\/cloudsave.app\/sr\/knowledge-base\/tihi-ubica-kako-otkriti-o%c5%a1te%c4%87ene-rezervne-kopije-baze-podataka-pre-nego-%c5%a1to-do%c4%91e-do-katastrofe\/"},"wordCount":1510,"publisher":{"@id":"https:\/\/cloudsave.app\/sr\/#\/schema\/person\/286beefe68281d868e87f46603a7ae4d"},"keywords":["backup testing","corrupted backups","data integrity","data loss prevention","Database Administration","devops","restore testing"],"articleSection":["Database Backup"],"inLanguage":"sr-RS"},{"@type":"WebPage","@id":"https:\/\/cloudsave.app\/sr\/knowledge-base\/tihi-ubica-kako-otkriti-o%c5%a1te%c4%87ene-rezervne-kopije-baze-podataka-pre-nego-%c5%a1to-do%c4%91e-do-katastrofe\/","url":"https:\/\/cloudsave.app\/sr\/knowledge-base\/tihi-ubica-kako-otkriti-o%c5%a1te%c4%87ene-rezervne-kopije-baze-podataka-pre-nego-%c5%a1to-do%c4%91e-do-katastrofe\/","name":"Detect Corrupted Database Backups Before Disaster","isPartOf":{"@id":"https:\/\/cloudsave.app\/sr\/#website"},"datePublished":"2026-06-14T19:31:06+00:00","dateModified":"2026-06-15T15:31:51+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\/sr\/knowledge-base\/tihi-ubica-kako-otkriti-o%c5%a1te%c4%87ene-rezervne-kopije-baze-podataka-pre-nego-%c5%a1to-do%c4%91e-do-katastrofe\/#breadcrumb"},"inLanguage":"sr-RS","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cloudsave.app\/sr\/knowledge-base\/tihi-ubica-kako-otkriti-o%c5%a1te%c4%87ene-rezervne-kopije-baze-podataka-pre-nego-%c5%a1to-do%c4%91e-do-katastrofe\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/cloudsave.app\/sr\/knowledge-base\/tihi-ubica-kako-otkriti-o%c5%a1te%c4%87ene-rezervne-kopije-baze-podataka-pre-nego-%c5%a1to-do%c4%91e-do-katastrofe\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cloudsave.app\/sr\/"},{"@type":"ListItem","position":2,"name":"Tihi ubica: Kako otkriti o\u0161te\u0107ene rezervne kopije baze podataka pre nego \u0161to do\u0111e do katastrofe"}]},{"@type":"WebSite","@id":"https:\/\/cloudsave.app\/sr\/#website","url":"https:\/\/cloudsave.app\/sr\/","name":"CloudSave","description":"CloudSave","publisher":{"@id":"https:\/\/cloudsave.app\/sr\/#\/schema\/person\/286beefe68281d868e87f46603a7ae4d"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cloudsave.app\/sr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"sr-RS"},{"@type":["Person","Organization"],"@id":"https:\/\/cloudsave.app\/sr\/#\/schema\/person\/286beefe68281d868e87f46603a7ae4d","name":"shervinrv","image":{"@type":"ImageObject","inLanguage":"sr-RS","@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\/sr\/knowledge-base\/author\/shervinrv\/"}]}},"_links":{"self":[{"href":"https:\/\/cloudsave.app\/sr\/wp-json\/wp\/v2\/posts\/4700","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cloudsave.app\/sr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cloudsave.app\/sr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cloudsave.app\/sr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cloudsave.app\/sr\/wp-json\/wp\/v2\/comments?post=4700"}],"version-history":[{"count":2,"href":"https:\/\/cloudsave.app\/sr\/wp-json\/wp\/v2\/posts\/4700\/revisions"}],"predecessor-version":[{"id":5766,"href":"https:\/\/cloudsave.app\/sr\/wp-json\/wp\/v2\/posts\/4700\/revisions\/5766"}],"wp:attachment":[{"href":"https:\/\/cloudsave.app\/sr\/wp-json\/wp\/v2\/media?parent=4700"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudsave.app\/sr\/wp-json\/wp\/v2\/categories?post=4700"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudsave.app\/sr\/wp-json\/wp\/v2\/tags?post=4700"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}