Kihagyás

Hardver hibák és archívum

Lemezhibák megoldása

Háromszoros redundancia

  • legalább 3 különböző lemezből 1 meghibásodását ki lehet javítani
  • n -szereződik minden I/O művelet

Többszörös írás, egyszeres olvasás

  • n másolat n különböző lemezen
  • n kiírás

Adatbázis mentés + napló

  1. Aktív adatbázis megsérülése a mentésből visszatölthető
  2. A napló redo bejegyzései alapján visszaállítható a helyes állapot

Helyreállítás mentésekből és naplóból

  • A napló a frissebb állapotok visszaállítására jók
  • FELTÉTEL, hogy a másolat utáni változtatásokról szóló napló túlélte az eszköz meghibásodását
  • Visszaállítjuk a biztonsági másolatot, majd az új állapotot a naplóból álítjuk elő

Feltételek

  1. A biztonsági másolat legyen más helyen, mint az adatbázis, plz
  2. A napló lemeze különbözik az adatbázist tároló lemez(ek)-től
  3. A naplót megtartjuk ellenőrzőpont létrejötte után is
  4. A napló REDO vagy UNDO/REDO jellegű (mert kellenek az új adatok)
Today's Kotlin wisdom

Láthattuk az előző részek tartalmából, hogy az extra metaadatok miatt márt csak az UNDO napló is önmagában gyorsabban nőhet méretben, mint ~~édesanyád~~ a tény adatbázis...

EA: "A naplókat nem érdemes örökké megőrizni"

Thank you ea, very cool.

Mentések szintjei

Teljes mentés

  • (full dump)
  • Az egész adatbázisról mentés készül, duh

Növekményes mentés

-(incremental dump)

  • Csak az előző növekményes mentés óta történt változtatásokat tartalmazza
  • Helyreállításkor a teljes mentés után egyesével újra alkalmazzuk a növekvényes mentéseket

Mentés működés közben

  • Mint hagyományos checkpoint esetén, az atomiság rengeteg downtime-ot jelent
  • Az sem biztos, hogy megengedhetjük magunknak, hogy addig a rendszer ne működjön

  1. <START DUMP>-al kezdődik
  2. REDO vagy UNDO/REDO jellegű (mert kellenek az új adatok) módszernek megfelelő checkpoint jön létre
  3. Teljes, vagy növekvényes mentés helye
  4. Napló mentése (aminek legalább a checkpoint közben létrejött módosításokat tartalmazza), aminek túl kell élnie az eszköz meghibásodását
  5. <END DUMP> zárja le
Példa
<START DUMP>
<START CKPT(T1, T2)>
<T1, A, 1, 5>
<T2, C, 3, 6>
<T2, COMMIT>
<T1, B, 2, 7>
<END CKPT>
<END DUMP>
marinéniatitkárságonmeginttrónokharcátakarttorrenteznideazoroszzsarolóvírustazITletöröltecsakmilyenáronmertmarinakawindowsxpjénfutottaprodszerverlol

Megoldás:

  1. betöltjük a biztonsági mentést ~~(legalább az IT erre képes volt)~~
  2. T2 kommitálva lett, így azt újra végre kell hajtani
  3. Mivel <T1, COMMIT> nincs, azt vissza kell állítani a checkpoint utáni állapotra

~~3. Kirúgjuk Mari nénit, és helyette felvesszük Évit, akinek jobb ízlése van kalóz filmek terén~~