Upload
baeddan-williams
View
28
Download
0
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
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 Azonnali naplózási technika: UNDO+REDO
2Database Systems – Recovery (gyakorlat)
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
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)
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
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>
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)