Mit ellenőrizzen egy drill
A lefutó visszaállítás nem ugyanaz, mint a jó mentés. Az elinduló motor azt bizonyítja, hogy az archívum olvasható volt és a verzió kompatibilis; azt nem bizonyítja, hogy a benne lévő adat az az adat, amit védeni akartál. Az ellenőrzésektől szűnik meg a drill visszaállítási tesztnek lenni, és lesz belőle bizonyíték.
A beépített ellenőrzések
Szekció neve “A beépített ellenőrzések”service_healthy— Engine answers the adapter's healthchecktable_exists— Table exists and is queryablerow_count— Row count within boundsfreshness— Newest row younger than a maximum agesql— Custom SQL assertion (a saját állításod)
A választás
Szekció neve “A választás”Olvasd a listát létraként. Minden fok többe kerül beállítani, mint az alatta lévő, és olyan hibát fog meg, amit az alatta lévő nem lát.
Indítsd el a motort. A healthcheck a padló, és minden drillbe odavaló: nélküle egy elindíthatatlan adatbázist előállító visszaállítás is sikerként rögzülne. Egyben a lehető legolcsóbb ellenőrzés, tehát nincs érv a kihagyása mellett. Amit nem mond meg: hogy a tiéd-e az az adatbázis, amit elindított.
Bizonyítsd, hogy a séma megérkezett. A tábla-ellenőrzés megfogja a rossz forrásfajta ellen sikerült visszaállítást, vagy azt a dumpot, amit egy mindenki által elfelejtett szűrővel készítettek — az archívum visszaáll, a motor elindul, és az a tábla, ami az alkalmazásodnak kell, nincs ott.
Bizonyítsd, hogy az adat megérkezett. A sorok számának alsó korláttal ellátott ellenőrzése az, ami azt a hibát fogja meg, amiért ez a projekt létezik: hónapokon át szorgalmasan mentetted a rossz adatbázist. Egy üres vagy majdnem üres tábla tökéletesen visszaáll.
Adj neki padlót, ne plafont, hacsak nem tudod, hogy a tábla korlátos. Az a tartomány, ami elég szűk ahhoz, hogy érdekes legyen, egy szokásos kedden el fog hasalni — és az az ellenőrzés, amelyik farkast kiált, olyan ellenőrzés, amit valaki ki fog venni.
Bizonyítsd, hogy az adat friss. Ezért érdemes legközelebb nyúlni, és ezt hagyják ki a leggyakrabban. Az adatfrissesség-ellenőrzés egy tábla legújabb időbélyegét veti össze egy megengedett korral, és azt a hibát fogja meg, amit egyetlen másik ellenőrzés sem lát: a tökéletesen futó mentési feladatot egy olyan replikán, ami abbahagyta a replikálást, vagy azt a dump-útvonalat, ami csendben az előző negyedév fájljára kezdett mutatni. A létra összes többi foka átmegy. Az adat valódi, teljes, és hónapokkal ezelőtti.
Ha egy táblának van időbélyeg-oszlopa, ez az ellenőrzés majdnem ingyen van, és többet ér, mint bármely másik egyetlen kiegészítés.
Bizonyítsd azt, amit csak te tudsz. A saját állítás azokra az invariánsokra való, amiket generikus ellenőrzés nem tud kifejezni — hogy egy főkönyv kiegyenlít, hogy egy idegen kulcsnak nincs árva sora, hogy a tegnapi partíció létezik. Az adapter saját SQL-futtatóján keresztül fut, tehát a motor nyelvjárásában íródik, és a neve az eredményével együtt bekerül a bizonyítékba.
Egy működő alakzat
Szekció neve “Egy működő alakzat”Első drillhez egy ismeretlen adatbázison: a healthcheck, plusz a sorok számának alsó korláttal ellátott ellenőrzése azon a táblán, aminek az elvesztése a legjobban fájna. Két ellenőrzés, öt perc gondolkodás, és a drill máris többet bizonyít, mint valaha bármelyik mentési napló.
Vedd hozzá az adatfrissességet, amint meg tudsz nevezni egy időbélyeg-oszlopot. Saját állításokat akkor vegyél hozzá, amikor egy incidens megtanítja, mit szeretnél, hogy a drill elkapott volna.
Mire nem valók az ellenőrzések
Szekció neve “Mire nem valók az ellenőrzések”Az ellenőrzések állítások egy visszaállított adatbázisról, nem az éles rendszer felügyeleti rendszere. Ami jobban működne Prometheus-riasztásként az élő adatbázis ellen, az oda való: a drill napokban mérhető ütemezéssel fut, olyan adaton, ami definíció szerint nem aktuális, egy sandboxban, amit közvetlenül utána megsemmisítünk.
Az a kérdés, amire egy ellenőrzésnek válaszolnia kell, a helyreállítási kérdés — ha ezt a mentést kellene használnom, használható lenne az, ami visszajön? — és semmi ennél tágabb.