7
Recovery (helyreállítás) feladatok gyakorlatra PPKE-ITK, Database Systems, 2010.

Recovery (helyreállítás) feladatok gyakorlatra

Embed Size (px)

DESCRIPTION

Recovery (helyreállítás) feladatok gyakorlatra. PPKE-ITK, Database Systems, 2010. Előadás tananyagból:. Adatbázis kezelő tulajdonságai Adatbázis hibák, kezelés Tárolás Naplózás – jelölések Tranzakciók lefutása – késleltett naplózási technikával REDO-zás Checkpointok UNDO-zás - PowerPoint PPT Presentation

Citation preview

Page 1: Recovery (helyreállítás) feladatok gyakorlatra

Recovery (helyreállítás)

feladatok gyakorlatra

PPKE-ITK, Database Systems, 2010.

Page 2: Recovery (helyreállítás) feladatok gyakorlatra

Előadás tananyagból:

Adatbázis kezelő tulajdonságai Adatbázis hibák, kezelés Tárolás Naplózás – jelölések Tranzakciók lefutása – késleltett naplózási

technikával REDO-zás Checkpointok UNDO-zás Azonnali naplózási technika: UNDO+REDO

2Database Systems – Recovery (gyakorlat)

Page 3: Recovery (helyreállítás) feladatok gyakorlatra

3Database Systems – Recovery (gyakorlat)

Tranzakciók REDO/Késleltetett csak UNDO UNDO+REDO

T1 T2 T3 LOG DB LOG DB LOG DBT1 csatl. <T1, START> <T1, START> <T1, START>read(A)A:=A-50write(A) <T1, A, 950> <T1, A, 1000> <T1, A, 1000, 950>

upd: A=950

upd: A=950

T2 csatl. <T2, START> <T2, START> <T2, START>read( C )

C:=C+100

read(B)B:=B+50write(B)* <T1, B, 2050> <T1, B, 2000> <T1, B, 2000, 2050>

upd: B=2050

upd: B=2050

T1 bef. <T1, COMMIT> <T1, COMMIT> <T1, COMMIT>

save logupd:

A=950 B=2050

T3 csatl. <T3, START> <T3, START> <T3, START>read(B)

CheckPoint <CHECKPOINT, L=[T2, T3]> <CHECKPOINT, L=[T2, T3]> <CHECKPOINT, L=[T2, T3]>

write(C)* <T2, C, 600> <T2, C, 500> <T2, C, 500, 600>

upd: C=600

upd: C=600

B:=B-1250write(B) <T3, B, 800> <T3, B, 2050> <T3, B, 2050, 800>

upd: B=800

upd: B=800

T2 bef. <T2, COMMIT> <T2, COMMIT> <T2, COMMIT>

save logupd:

C=600

T3 bef. <T3, COMMIT> <T3, COMMIT> <T3, COMMIT>

save logupd:

B=800

Kezdőértékek:A==1000

B==2000C==500

Page 4: Recovery (helyreállítás) feladatok gyakorlatra

Feladat 1 Állítsuk helyre az egyes naplók szerint, ha a CRASH a

„T3 bef.” előtt éri a rendszert (vastag vonalnál)!

a)csak REDO: elindulunk a végétől, T2-t fölvesszük a listába, elértünk a ChP-ig, ott csak T2 van az aktív listán, ami eddig commitált, így csak a T2 startját keressük, megvan, visszafordulunk, a T2 összes műveletét újra végrehajtjuk (<T2, C, 600>).

b)csak UNDO: elindulunk a végéről, T2 bekerül a Commit-listába, T3-nak nem volt commitja, ezért ezt újra végrehajtjuk: beírjuk a régi (B=2050) értéket vakon. A ChP-tól csak a T3-at undozzuk tovább, nincs is mit.

c) REDO+UNDO: elindulunk a végéről. T2 a REDO-listába. ChP-ig nem volt START, de a T2 és a T3 START-jáig el kell jutni. T3 START megvan, T3: UNDO-listába. T2 START megvan, T2: a WAIT-listába (bár itt nem sok értelme van). UNDO-lista: T3 OldValue értékeit visszaírjuk. WAIT-lista: T2: NewValue értékeit visszaírjuk.

4Database Systems – Recovery (gyakorlat)

Page 5: Recovery (helyreállítás) feladatok gyakorlatra

Feladat 2

5Database Systems – Recovery (gyakorlat)

F: Helyreállítás menete azonnali technikával:

- Aktív lista- UNDO-lista- REDO-lista- recovery sorrend

(késleltetett technikával csak REDO-zás van)

• A LogFile vizsgálatát a T0 kezdetéig vesszük, a CheckPointnál ő a legöregebb

• T1 a CheckPoint előtt commitált, így nem kell vele foglalkoznunk.• L = [active-list] = T4, T3, T2, T0• Helyreállítás: (azonnali technikánál – a késleltetettnél csak REDO-

zás van!)1. végéről vissza: UNDO-lista: T7, T6, T4

REDO-lista: T0, T2, T3, T52. UNDO-zás a végétől3. REDO-zás az elejétől

Page 6: Recovery (helyreállítás) feladatok gyakorlatra

Feladat 3 a) Milyen technikával készült az alábbi

LogFile? b) Add meg a kezdeti értékeket! c) Rajzold le az idő függvényében a

tranzakciók lefutását, jelölve a CheckPointot!

d) Hogyan állítod helyre, ha hiba lép fel az 1-2 / 3-4 / 5-6 / stb. sorok közzött?

e) Írd át egy másik technikára és válaszolj ugyanezekre a kérdésekre!

a) immediate modification log b) A=500, B=400, C=410 c) d) Pl. 5-6 sor közti Failure

undo(T8) undo(T7) undo(T6) és nincs redo mert még egyik sem committált.

e) Pl. késletetett: csak redo

6Database Systems – Recovery (gyakorlat)

1 <T6, START>

2 <T6, A, 500, 370>

3 <CHECKPOINT, [T6]>

4 <T7, START>

5 <T7, C, 410, 85>

6 <T6, B, 400, 90>

7 <T6, COMMIT>

8 <T7, A, 370, 250>

9 <T8, START>

10 <T7, COMMIT>

11 <T8, B, 90, 800>

12 <T8, COMMIT>

Page 7: Recovery (helyreállítás) feladatok gyakorlatra

Feladat 4

A system reboots after a crash and finds the following database and UNDO log state:

DB(A:10, B:10) LOG(<T1,start>, <T2,start>, <T1, A, 5>,

<T1, commit>, <T2, B, 5>, <T2, A, 15> CRASH)

1. What was the initial state of the system before T1 and T2 began executing?

2. What will be the state after the recovery?

3. Repeat questions (1) and (2) assuming it is a REDO log. 7Database Systems – Recovery (gyakorlat)