Miten validoida varmuuskopio?
Varmuuskopio on turha, jos tietoja ei voida palauttaa tai jos tiedot ovat korruptoituneita. Ratkaisuna on tarkistaa, ovatko palautetut tiedostot täsmälleen samoja kuin varmuuskopioidut.
Vaikka varmuuskopion voi validoida palauttamalla kaikki koneen tiedostot toiselle koneelle ja tarkistamalla, että kone käynnistyy, mistään järkevästä järjestelmästä ei voida käydä läpi kaikkia tiedostoja. Varmuuskopiosta löytyviä tiedostoja voi verrata alkuperäiseen koneeseen, mutta yleensä osa on jo muuttunut. Tiedostoja voidaan verrata esim. snapshottiin, josta varmuuskopio otettiin, mutta mikään ei takaa että snapshotissa olisi oikeat tiedost. Useimmissa järjestelmissä tiedostoja lisätään, poistetaan ja muokataan, joten erilaisuuksien oikeellisuuden tarkistaminen ei ole helppoa. Jos tiedostoja vain lisättäisiin – esimerkiksi kuvanjakopalvelun kuvat – validoiminen on triviaalia. Saman palvelun tietokannan tarkistaminen sen sijaan ei ole mitenkään triviaalia – suuri osa riveistä muuttuu, esimerkiksi kommentteja muokataan, kuvien tietoja vaihdetaan, kävijälaskurit kasvavat jne.
Äskettäin piti varmuuskopioida iso määrä (~25GB) sähköposteja muualla ylläpidetyltä tuntemattomalta IMAP-palvelimelta. Lataaminen hoitui ongelmitta (kiitos offlineimapin), mutta varmuuskopion validoiminen – onko kaikki varmasti siirtynyt oikein vai ei osoittautui mahdottomaksi. Ei voi tietää antoiko eksoottinen palvelin viestit korruptoituneina tai tallentaako offlineimap sähköpostit väärin joka kerta. Sähköpostit ja -liitteet ovat vain tekstiä. Tekstiä kopioidessa tekniikkaan voi luottaa melkoisen hyvin – tai on syytä voida – mutta esimerkiksi tietokannat ovat täysin eri asia.
Case Exchange: uutta Exchange-palvelinta ei voi varmuuskopioida ilman kolmannen osapuolen ohjelmia. Exchange tallentaa sähköpostit, kalenterit, kontaktit ja asetukset binääritietokannoissa, joiden eheydestä on pidettävä huolta (kopio tai snapshot voidaan ottaa vain kun tietokanta on oikeassa tilassa). Periaatteessa varmuuskopio on joko ehjä (=voi palauttaa testiympäristöön ilman virheilmoitusta) tai rikki (=saa virheilmoituksen). On käytännössä mahdotonta validoida, onko ehjässä kaikki ehjää ja tallessa. Jos ylläpitäjä on tahallaan ottanut virheellisen varmuuskopion – ehjä oikean kokoinen tietokanta jossa on roskaa vain osassa tärkeistä sähköposteista – virheen löytyminen on hyvin epätodennäköistä.
Case MySQL: jonkin verran käytetty helppo ratkaisu varmuuskopiointiin on ottaa kopio käytössä olevasta tietokannasta ja luottaa siihen, että ohjelma osaa korjata mahdollisesti rikkinäisen binääritietokannan ehjäksi. Periaatteessa tietokanta noudattaa ACID:ia, mutta ACID ei suojaa tietokantaa, josta puolet on luettu ennen kirjoittamista ja puolet kirjoittamisen jälkeen.
