{"id":4659,"date":"2026-06-14T19:31:06","date_gmt":"2026-06-14T19:31:06","guid":{"rendered":"https:\/\/cloudsave.app\/?p=4659"},"modified":"2026-06-14T20:01:41","modified_gmt":"2026-06-14T20:01:41","slug":"tihi-ubica-kako-otkriti-o%c5%a1te%c4%87ene-sigurnosne-kopije-baze-podataka-prije-nego-%c5%a1to-se-dogodi-katastrofa","status":"publish","type":"post","link":"https:\/\/cloudsave.app\/bs\/knowledge-base\/tihi-ubica-kako-otkriti-o%c5%a1te%c4%87ene-sigurnosne-kopije-baze-podataka-prije-nego-%c5%a1to-se-dogodi-katastrofa\/","title":{"rendered":"Tihi ubica: Kako otkriti o\u0161te\u0107ene sigurnosne kopije baze podataka prije nego \u0161to se dogodi katastrofa"},"content":{"rendered":"<p>U svijetu administracije baza podataka i in\u017eenjeringa pouzdanosti lokacija (SRE) visokih uloga, postoji dobro poznata aksioma: <em>Schr\u00f6dingerova sigurnosna kopija<\/em>. Stanje bilo koje sigurnosne kopije je nepoznato sve dok je ne poku\u0161ate vratiti. 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), otkri\u0107e da je kriti\u010dna sigurnosna kopija baze podataka o\u0161te\u0107ena tokom aktivnog incidenta je najgori mogu\u0107i scenario. To pretvara rutinsku operaciju oporavka u katastrofalan gubitak podataka. Ovaj \u201etihi ubica\u201c integriteta podataka \u010desto ostaje neprimije\u0107en jer poslovi sigurnosnog kopiranja \u010desto prijavljuju uspje\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 sigurnosnih kopija, istra\u017eiti tehnike validacije specifi\u010dne za baze podataka i pokazati kako izgraditi automatizovane, neprobojne cjevovode za vra\u0107anje podataka za produkcijska okru\u017eenja.<\/p>\n<h2>Anatomija o\u0161te\u0107enja sigurnosne kopije<\/h2>\n<p>Da biste otkrili o\u0161te\u0107enje, prvo morate razumjeti kako do njega dolazi. O\u0161te\u0107enje sigurnosne kopije uglavnom spada u dvije 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 mediju za pohranu promijene. To se mo\u017ee dogoditi tokom procesa \u010ditanja sa izvornog diska, tokom mre\u017enog prenosa ili dok miruje na ciljnoj pohrani.<br \/>\n*   <strong>Bit Rot (propadanje bitova):<\/strong> Postepena degradacija medija za pohranu mo\u017ee neprimjetno promijeniti bitove.<br \/>\n*   <strong>Gre\u0161ke u prenosu:<\/strong> Iako TCP ima kontrolne zbirove (checksums), oni su notorno slabi (16-bitni). Okru\u017eenja sa visokim protokom mogu iskusiti tiho o\u0161te\u0107enje podataka preko \u017eice koje TCP ne uspijeva uhvatiti.<br \/>\n*   <strong>Kvarovi kontrolera pohrane:<\/strong> Hardverske gre\u0161ke u RAID kontrolerima ili SAN mre\u017eama mogu zapisati sme\u0107e dok operativnom sistemu prijavljuju uspjeh.<\/p>\n<h3>Logi\u010dko o\u0161te\u0107enje<\/h3>\n<p>Logi\u010dko o\u0161te\u0107enje je vjerovatno opasnije jer je sama datoteka sigurnosne kopije savr\u0161eno netaknuta, ali su podaci unutar nje neispravni.<br \/>\n*   <strong>Sme\u0107e unutra, sme\u0107e van (GIGO):<\/strong> Ako va\u0161a aktivna baza podataka ima o\u0161te\u0107en indeks ili o\u0161te\u0107enu stranicu, va\u0161 alat za sigurnosno kopiranje mo\u017ee vjerno kopirati tu o\u0161te\u0107enu stranicu. Posao sigurnosnog kopiranja uspijeva, ali vra\u0107anje ne\u0107e uspjeti 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. nekoriste\u0107i <code>FLUSH TABLES WITH READ LOCK<\/code> u MySQL-u) rezultiraju o\u0161te\u0107enim stranicama i stanjima koja se ne mogu oporaviti.<\/p>\n<h2>Proaktivno otkrivanje: Kontrolni zbirovi 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 izmjene je nedovoljno.<\/p>\n<h3>Omogu\u0107avanje kontrolnih zbirova na nivou baze podataka<\/h3>\n<p>Moderni sistemi za upravljanje relacionim bazama podataka (RDBMS) podr\u017eavaju kontrolne zbirove na nivou stranice. Kada su omogu\u0107eni, baza podataka izra\u010dunava kontrolni zbir za svaku stranicu prije nego \u0161to je zapi\u0161e na disk. Kada se stranica \u010dita (bilo upitom ili procesom sigurnosnog kopiranja), kontrolni zbir se provjerava.<\/p>\n<p>Za <strong>PostgreSQL<\/strong>, mo\u017eete omogu\u0107iti kontrolne zbirove podataka tokom inicijalizacije klastera:<\/p>\n<pre><code class=\"language-bash\"># Inicijalizujte novi PostgreSQL klaster sa omogu\u0107enim kontrolnim zbirovima\ninitdb --data-checksums -D \/var\/lib\/postgresql\/data\n<\/code><\/pre>\n<p><em>Napomena: Ako imate postoje\u0107i PostgreSQL klaster, mo\u017eete koristiti uslu\u017eni program <code>pg_checksums<\/code> da ih omogu\u0107ite van mre\u017ee (offline).<\/em><\/p>\n<p>Za <strong>Microsoft SQL Server<\/strong>, osigurajte da je <code>PAGE_VERIFY<\/code> postavljen na <code>CHECKSUM<\/code> (\u0161to je zadano u modernim verzijama, ali vrijedi provjeriti na starijim sistemima):<\/p>\n<pre><code class=\"language-sql\">ALTER DATABASE [ProductionDB] SET PAGE_VERIFY CHECKSUM;\nGO\n<\/code><\/pre>\n<h3>Validacija sigurnosnih kopija u stanju mirovanja<\/h3>\n<p>Kada sigurnosna kopija stigne na va\u0161u ciljnu pohranu, njen integritet mora biti kriptografski provjeren. Enterprise platforme za sigurnosno kopiranje kao \u0161to je CloudSave automatski izra\u010dunavaju i provjeravaju SHA-256 he\u0161ove blokova sigurnosne kopije tokom prenosa i u stanju mirovanja. Ako upravljate prilago\u0111enim skriptama, morate ovo implementirati ru\u010dno:<\/p>\n<pre><code class=\"language-bash\"># Generi\u0161ite SHA-256 he\u0161 nakon kreiranja sigurnosne kopije\nsha256sum prod_db_backup.tar.gz &gt; prod_db_backup.tar.gz.sha256\n\n# Provjerite he\u0161 na serveru za pohranu\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 provjeru integriteta njihovih artefakata sigurnosnih kopija.<\/p>\n<h3>PostgreSQL: <code>pg_verifybackup<\/code><\/h3>\n<p>Predstavljen u PostgreSQL 13, <code>pg_verifybackup<\/code> mijenja pravila igre za fizi\u010dke sigurnosne kopije napravljene pomo\u0107u <code>pg_basebackup<\/code>. On \u010dita datoteku <code>backup_manifest<\/code> generisanu tokom sigurnosnog kopiranja i provjerava da li su sve datoteke prisutne i da li se njihovi kontrolni zbirovi podudaraju.<\/p>\n<pre><code class=\"language-bash\"># Pokrenite verifikaciju protiv direktorijuma fizi\u010dke osnovne sigurnosne kopije\npg_verifybackup \/mnt\/backups\/postgres\/base_backup_20231025\/\n<\/code><\/pre>\n<p>Ako je ijedan bit promijenjen u bilo kojoj od datoteka podataka, <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 provjeru fizi\u010dkog integriteta datoteke sigurnosne kopije bez stvarnog vra\u0107anja. Provjerava zaglavlja sigurnosne kopije i validira kontrolne zbirove stranica (ako su bili omogu\u0107eni tokom sigurnosnog kopiranja).<\/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 sigurnosne kopije \u010ditljiva i da se fizi\u010dki kontrolni zbirovi podudaraju. To <em>ne garantuje<\/em> logi\u010dki integritet. Da biste osigurali logi\u010dki integritet, morate izvr\u0161iti potpuno vra\u0107anje i pokrenuti <code>DBCC CHECKDB<\/code>.<\/p>\n<h3>MySQL \/ InnoDB: Percona XtraBackup<\/h3>\n<p>Za MySQL okru\u017eenja, fizi\u010dke sigurnosne kopije \u010desto obra\u0111uje Percona XtraBackup. Proces sigurnosnog kopiranja se sastoji od kopiranja datoteka, ali sigurnosna kopija nije konzistentna dok se ne primijene transakcijski logovi (redo logs). Faza <code>--prepare<\/code> djeluje kao ugra\u0111ena provjera integriteta.<\/p>\n<pre><code class=\"language-bash\"># Priprema sigurnosne kopije primjenjuje redo logove. \n# Ako je sigurnosna kopija o\u0161te\u0107ena, ovaj korak ne\u0107e uspjeti.\nxtrabackup --prepare --target-dir=\/data\/backups\/mysql\/\n<\/code><\/pre>\n<h2>Zlatni standard: Automatizovano testiranje vra\u0107anja<\/h2>\n<p>Kontrolni zbirovi i komande za verifikaciju su neophodni, ali nisu dovoljni. Jedini na\u010din da se definitivno doka\u017ee da je sigurnosna kopija ispravna jeste da je vratite. U modernim DevOps okru\u017eenjima, ovaj proces mora biti potpuno automatizovan.<\/p>\n<p>Tretiranjem sigurnosnih kopija kao koda, mo\u017eete izgraditi CI\/CD cjevovod za vra\u0107anje va\u0161ih baza podataka. Ovaj cjevovod treba da obezbijedi efemernu infrastrukturu, izvr\u0161i vra\u0107anje, pokrene upite za validaciju i ukloni okru\u017eenje.<\/p>\n<h3>Izgradnja automatizovanog cjevovoda za vra\u0107anje<\/h3>\n<p>Ispod je primjer Bash skripte koju bi svakodnevno mogao pokretati cron posao ili CI runner (poput GitLab CI ili GitHub Actions) za validaciju PostgreSQL logi\u010dkog dumpa.<\/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...&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\necho &quot;[INFO] Vra\u0107anje sigurnosne 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# Provjerite 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 uspjela. O\u010dekivano &gt;10000 korisnika, prona\u0111eno $USER_COUNT&quot;\n    # Ovdje pokrenite PagerDuty \/ Slack upozorenje\n    exit 1\nelse\n    echo &quot;[SUCCESS] Logi\u010dka validacija pro\u0161la. 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 uspje\u0161no zavr\u0161en.&quot;\n<\/code><\/pre>\n<h3>\u0160ta treba validirati?<\/h3>\n<p>Prilikom izvo\u0111enja automatizovanog testiranja vra\u0107anja, nemojte samo provjeravati da li se baza podataka pokre\u0107e. Pokrenite upite za validaciju specifi\u010dne za aplikaciju:<br \/>\n1.  <strong>Broj redova:<\/strong> Osigurajte da klju\u010dne tabele imaju o\u010dekivani broj redova (npr. tabela <code>users<\/code> ne bi trebala biti prazna).<br \/>\n2.  <strong>Nedavni podaci:<\/strong> Pretra\u017eite zapise kreirane u posljednja 24 sata kako biste osigurali da sigurnosna kopija nije zastarjela.<br \/>\n3.  <strong>Referencijalni integritet:<\/strong> Pokrenite skripte za provjeru siro\u010dad stranih klju\u010deva (orphaned foreign keys), \u0161to ukazuje na logi\u010dko o\u0161te\u0107enje.<\/p>\n<h2>Nadzor i upozoravanje na anomalije sigurnosnih kopija<\/h2>\n<p>Otkrivanje o\u0161te\u0107enja prije nego \u0161to se katastrofa dogodi zahtijeva robusnu opservabilnost. Osim binarnih stanja uspjeha\/neuspjeha, trebali biste nadzirati metapodatke va\u0161ih poslova sigurnosnog kopiranja kako biste otkrili anomalije.<\/p>\n<h3>Heuristi\u010dki nadzor<\/h3>\n<p>Integrirajte metapodatke va\u0161ih sigurnosnih kopija u Prometheus i vizualizirajte ih pomo\u0107u Grafane. Postavite upozorenja za sljede\u0107e heuristike:<br \/>\n*   <strong>Nagli padovi veli\u010dine:<\/strong> Ako je va\u0161a dnevna sigurnosna kopija konstantno 500GB, a dana\u0161nja je 50MB, posao je mo\u017eda uspje\u0161no zavr\u0161en (Exit Code 0), ali je vjerovatno napravio sigurnosnu kopiju prazne \u0161eme.<br \/>\n*   <strong>Anomalije u trajanju:<\/strong> Ako sigurnosna 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 bi mogla dovesti do o\u0161te\u0107enja.<br \/>\n*   <strong>Akumulacija WAL\/arhivskih logova:<\/strong> Ako va\u0161a baza podataka generi\u0161e Write-Ahead Logs (WAL), a sistem sigurnosnog kopiranja 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 provjerama integriteta<\/h2>\n<p>Industrijski standard pravila sigurnosnog kopiranja 3-2-1 (3 kopije podataka, 2 razli\u010dita medija, 1 van lokacije) je efikasan samo ako su sve kopije provjerene.<\/p>\n<p>Ovdje kori\u0161tenje enterprise rje\u0161enja kao \u0161to je CloudSave drasti\u010dno smanjuje operativne tro\u0161kove. Umjesto pisanja i odr\u017eavanja slo\u017eenih bash skripti za svaki \u010dvor baze podataka, CloudSave se direktno integrira sa va\u0161om infrastrukturom kako bi automatizovao \u017eivotni ciklus 3-2-1. Pru\u017ea nepromjenjivu pohranu\u2014\u0161tite\u0107i od ransomware-a\u2014i sadr\u017ei ugra\u0111ene, automatizovane rasporede verifikacije vra\u0107anja. CloudSave mo\u017ee automatski pokrenuti izolovana sandbox okru\u017eenja, montirati sigurnosnu 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 sigurnosne kopije baza podataka su tihi ubica koji mo\u017ee uni\u0161titi poslovanje. Oslanjanje isklju\u010divo na <code>Exit Code 0<\/code> skripte za sigurnosno kopiranje je opasna kocka.<\/p>\n<p>Da biste zaista za\u0161titili svoja produkcijska okru\u017eenja, morate usvojiti strategiju dubinske odbrane:<br \/>\n1.  Omogu\u0107ite kontrolne zbirove 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 sigurnosne kopije.<br \/>\n3.  Nadzirite metapodatke sigurnosnih kopija (veli\u010dina, trajanje) zbog heuristi\u010dkih anomalija.<br \/>\n4.  Implementirajte automatizovano, efemerno testiranje vra\u0107anja kao dio va\u0161eg svakodnevnog operativnog cjevovoda.<\/p>\n<p>Prelaskom sa pasivnog mentaliteta sigurnosnog kopiranja \u201epostavi i zaboravi\u201c na model aktivne \u201ekontinuirane validacije vra\u0107anja\u201c, osiguravate da kada katastrofa neizbje\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":[335],"tags":[3298,3299,3300,336,850,2087,3301],"class_list":["post-4659","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\/bs\/knowledge-base\/tihi-ubica-kako-otkriti-o%c5%a1te%c4%87ene-sigurnosne-kopije-baze-podataka-prije-nego-%c5%a1to-se-dogodi-katastrofa\/\" \/>\n<meta property=\"og:locale\" content=\"bs_BA\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Tihi ubica: Kako otkriti o\u0161te\u0107ene sigurnosne kopije baze podataka prije nego \u0161to se dogodi katastrofa\" \/>\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\/bs\/knowledge-base\/tihi-ubica-kako-otkriti-o%c5%a1te%c4%87ene-sigurnosne-kopije-baze-podataka-prije-nego-%c5%a1to-se-dogodi-katastrofa\/\" \/>\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-14T20:01:41+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 minuta\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/cloudsave.app\\\/bs\\\/knowledge-base\\\/tihi-ubica-kako-otkriti-o%c5%a1te%c4%87ene-sigurnosne-kopije-baze-podataka-prije-nego-%c5%a1to-se-dogodi-katastrofa\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/cloudsave.app\\\/bs\\\/knowledge-base\\\/tihi-ubica-kako-otkriti-o%c5%a1te%c4%87ene-sigurnosne-kopije-baze-podataka-prije-nego-%c5%a1to-se-dogodi-katastrofa\\\/\"},\"author\":{\"name\":\"shervinrv\",\"@id\":\"https:\\\/\\\/cloudsave.app\\\/bs\\\/#\\\/schema\\\/person\\\/286beefe68281d868e87f46603a7ae4d\"},\"headline\":\"Tihi ubica: Kako otkriti o\u0161te\u0107ene sigurnosne kopije baze podataka prije nego \u0161to se dogodi katastrofa\",\"datePublished\":\"2026-06-14T19:31:06+00:00\",\"dateModified\":\"2026-06-14T20:01:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/cloudsave.app\\\/bs\\\/knowledge-base\\\/tihi-ubica-kako-otkriti-o%c5%a1te%c4%87ene-sigurnosne-kopije-baze-podataka-prije-nego-%c5%a1to-se-dogodi-katastrofa\\\/\"},\"wordCount\":1469,\"publisher\":{\"@id\":\"https:\\\/\\\/cloudsave.app\\\/bs\\\/#\\\/schema\\\/person\\\/286beefe68281d868e87f46603a7ae4d\"},\"keywords\":[\"backup testing\",\"corrupted backups\",\"data integrity\",\"data loss prevention\",\"Database Administration\",\"devops\",\"restore testing\"],\"articleSection\":[\"Database Backup\"],\"inLanguage\":\"bs-BA\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/cloudsave.app\\\/bs\\\/knowledge-base\\\/tihi-ubica-kako-otkriti-o%c5%a1te%c4%87ene-sigurnosne-kopije-baze-podataka-prije-nego-%c5%a1to-se-dogodi-katastrofa\\\/\",\"url\":\"https:\\\/\\\/cloudsave.app\\\/bs\\\/knowledge-base\\\/tihi-ubica-kako-otkriti-o%c5%a1te%c4%87ene-sigurnosne-kopije-baze-podataka-prije-nego-%c5%a1to-se-dogodi-katastrofa\\\/\",\"name\":\"Detect Corrupted Database Backups Before Disaster\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/cloudsave.app\\\/bs\\\/#website\"},\"datePublished\":\"2026-06-14T19:31:06+00:00\",\"dateModified\":\"2026-06-14T20:01:41+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\\\/bs\\\/knowledge-base\\\/tihi-ubica-kako-otkriti-o%c5%a1te%c4%87ene-sigurnosne-kopije-baze-podataka-prije-nego-%c5%a1to-se-dogodi-katastrofa\\\/#breadcrumb\"},\"inLanguage\":\"bs-BA\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/cloudsave.app\\\/bs\\\/knowledge-base\\\/tihi-ubica-kako-otkriti-o%c5%a1te%c4%87ene-sigurnosne-kopije-baze-podataka-prije-nego-%c5%a1to-se-dogodi-katastrofa\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/cloudsave.app\\\/bs\\\/knowledge-base\\\/tihi-ubica-kako-otkriti-o%c5%a1te%c4%87ene-sigurnosne-kopije-baze-podataka-prije-nego-%c5%a1to-se-dogodi-katastrofa\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/cloudsave.app\\\/bs\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tihi ubica: Kako otkriti o\u0161te\u0107ene sigurnosne kopije baze podataka prije nego \u0161to se dogodi katastrofa\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/cloudsave.app\\\/bs\\\/#website\",\"url\":\"https:\\\/\\\/cloudsave.app\\\/bs\\\/\",\"name\":\"CloudSave\",\"description\":\"CloudSave\",\"publisher\":{\"@id\":\"https:\\\/\\\/cloudsave.app\\\/bs\\\/#\\\/schema\\\/person\\\/286beefe68281d868e87f46603a7ae4d\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/cloudsave.app\\\/bs\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"bs-BA\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/cloudsave.app\\\/bs\\\/#\\\/schema\\\/person\\\/286beefe68281d868e87f46603a7ae4d\",\"name\":\"shervinrv\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"bs-BA\",\"@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\\\/bs\\\/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\/bs\/knowledge-base\/tihi-ubica-kako-otkriti-o%c5%a1te%c4%87ene-sigurnosne-kopije-baze-podataka-prije-nego-%c5%a1to-se-dogodi-katastrofa\/","og_locale":"bs_BA","og_type":"article","og_title":"Tihi ubica: Kako otkriti o\u0161te\u0107ene sigurnosne kopije baze podataka prije nego \u0161to se dogodi katastrofa","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\/bs\/knowledge-base\/tihi-ubica-kako-otkriti-o%c5%a1te%c4%87ene-sigurnosne-kopije-baze-podataka-prije-nego-%c5%a1to-se-dogodi-katastrofa\/","og_site_name":"CloudSave","article_published_time":"2026-06-14T19:31:06+00:00","article_modified_time":"2026-06-14T20:01:41+00:00","author":"shervinrv","twitter_card":"summary_large_image","twitter_misc":{"Written by":"shervinrv","Est. reading time":"9 minuta"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/cloudsave.app\/bs\/knowledge-base\/tihi-ubica-kako-otkriti-o%c5%a1te%c4%87ene-sigurnosne-kopije-baze-podataka-prije-nego-%c5%a1to-se-dogodi-katastrofa\/#article","isPartOf":{"@id":"https:\/\/cloudsave.app\/bs\/knowledge-base\/tihi-ubica-kako-otkriti-o%c5%a1te%c4%87ene-sigurnosne-kopije-baze-podataka-prije-nego-%c5%a1to-se-dogodi-katastrofa\/"},"author":{"name":"shervinrv","@id":"https:\/\/cloudsave.app\/bs\/#\/schema\/person\/286beefe68281d868e87f46603a7ae4d"},"headline":"Tihi ubica: Kako otkriti o\u0161te\u0107ene sigurnosne kopije baze podataka prije nego \u0161to se dogodi katastrofa","datePublished":"2026-06-14T19:31:06+00:00","dateModified":"2026-06-14T20:01:41+00:00","mainEntityOfPage":{"@id":"https:\/\/cloudsave.app\/bs\/knowledge-base\/tihi-ubica-kako-otkriti-o%c5%a1te%c4%87ene-sigurnosne-kopije-baze-podataka-prije-nego-%c5%a1to-se-dogodi-katastrofa\/"},"wordCount":1469,"publisher":{"@id":"https:\/\/cloudsave.app\/bs\/#\/schema\/person\/286beefe68281d868e87f46603a7ae4d"},"keywords":["backup testing","corrupted backups","data integrity","data loss prevention","Database Administration","devops","restore testing"],"articleSection":["Database Backup"],"inLanguage":"bs-BA"},{"@type":"WebPage","@id":"https:\/\/cloudsave.app\/bs\/knowledge-base\/tihi-ubica-kako-otkriti-o%c5%a1te%c4%87ene-sigurnosne-kopije-baze-podataka-prije-nego-%c5%a1to-se-dogodi-katastrofa\/","url":"https:\/\/cloudsave.app\/bs\/knowledge-base\/tihi-ubica-kako-otkriti-o%c5%a1te%c4%87ene-sigurnosne-kopije-baze-podataka-prije-nego-%c5%a1to-se-dogodi-katastrofa\/","name":"Detect Corrupted Database Backups Before Disaster","isPartOf":{"@id":"https:\/\/cloudsave.app\/bs\/#website"},"datePublished":"2026-06-14T19:31:06+00:00","dateModified":"2026-06-14T20:01:41+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\/bs\/knowledge-base\/tihi-ubica-kako-otkriti-o%c5%a1te%c4%87ene-sigurnosne-kopije-baze-podataka-prije-nego-%c5%a1to-se-dogodi-katastrofa\/#breadcrumb"},"inLanguage":"bs-BA","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cloudsave.app\/bs\/knowledge-base\/tihi-ubica-kako-otkriti-o%c5%a1te%c4%87ene-sigurnosne-kopije-baze-podataka-prije-nego-%c5%a1to-se-dogodi-katastrofa\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/cloudsave.app\/bs\/knowledge-base\/tihi-ubica-kako-otkriti-o%c5%a1te%c4%87ene-sigurnosne-kopije-baze-podataka-prije-nego-%c5%a1to-se-dogodi-katastrofa\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cloudsave.app\/bs\/"},{"@type":"ListItem","position":2,"name":"Tihi ubica: Kako otkriti o\u0161te\u0107ene sigurnosne kopije baze podataka prije nego \u0161to se dogodi katastrofa"}]},{"@type":"WebSite","@id":"https:\/\/cloudsave.app\/bs\/#website","url":"https:\/\/cloudsave.app\/bs\/","name":"CloudSave","description":"CloudSave","publisher":{"@id":"https:\/\/cloudsave.app\/bs\/#\/schema\/person\/286beefe68281d868e87f46603a7ae4d"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cloudsave.app\/bs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"bs-BA"},{"@type":["Person","Organization"],"@id":"https:\/\/cloudsave.app\/bs\/#\/schema\/person\/286beefe68281d868e87f46603a7ae4d","name":"shervinrv","image":{"@type":"ImageObject","inLanguage":"bs-BA","@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\/bs\/knowledge-base\/author\/shervinrv\/"}]}},"_links":{"self":[{"href":"https:\/\/cloudsave.app\/bs\/wp-json\/wp\/v2\/posts\/4659","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cloudsave.app\/bs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cloudsave.app\/bs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cloudsave.app\/bs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cloudsave.app\/bs\/wp-json\/wp\/v2\/comments?post=4659"}],"version-history":[{"count":2,"href":"https:\/\/cloudsave.app\/bs\/wp-json\/wp\/v2\/posts\/4659\/revisions"}],"predecessor-version":[{"id":5459,"href":"https:\/\/cloudsave.app\/bs\/wp-json\/wp\/v2\/posts\/4659\/revisions\/5459"}],"wp:attachment":[{"href":"https:\/\/cloudsave.app\/bs\/wp-json\/wp\/v2\/media?parent=4659"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudsave.app\/bs\/wp-json\/wp\/v2\/categories?post=4659"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudsave.app\/bs\/wp-json\/wp\/v2\/tags?post=4659"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}