Vakgroep Telecommunicatie en Informatieverwerking 1 Werken met databasesystemen: beveiliging tegen falen Hoofdstuk 10 Database, Document and Content Management
Vakgroep Telecommunicatie en Informatieverwerking 2 Overzicht Transacties en OLTP Mogelijke oorzaken van falen Faciliteiten ter voorkoming en herstel van falen Herstel bij ‘soft crashes’ Herstel bij ‘hard crashes’
Vakgroep Telecommunicatie en Informatieverwerking 3 Overzicht Transacties en OLTP Mogelijke oorzaken van falen Faciliteiten ter voorkoming en herstel van falen Herstel bij ‘soft crashes’ Herstel bij ‘hard crashes’
Vakgroep Telecommunicatie en Informatieverwerking 4 Transacties en OLTP Basisconcepten Een transactie is een hoeveelheid werk (één of Meerdere instructies waarvan het dbms garandeert dat het ofwel volledig met succes wordt uitgevoerd, ofwel helemaal niet wordt uitgevoerd. consistente toestand transactie begin consistente toestand einde COMMIT consistente toestand transactie begin = einde ROLLBACK (a) (b) probleem
Vakgroep Telecommunicatie en Informatieverwerking 5 Transacties en OLTP Eigenschappen van transacties – atomair – consistent – isolatie – duurzaam
Vakgroep Telecommunicatie en Informatieverwerking 6 Transacties en OLTP Werken met transacties –Impliciete transacties –Expliciete transacties START TRANSACTION; DELETE FROM Schilderij WHERE S_ID = ‘S04’; IF fout_opgetreden THEN GO TO Maak_ongedaan; ENDIF; INSERT INTO Schilderij VALUES (‘S11’, ‘De intrede van Christus te Brussel’, ‘A03’, 1888, , ‘KMSK’); IF fout_opgetreden THEN GO TO Maak_ongedaan; ENDIF; INSERT INTO Schilderij VALUES (‘S08’, ‘De intrige’, ‘A03’, 1890, 40000, ‘KMSK’); IF fout_opgetreden THEN GO TO Maak_ongedaan; ENDIF; COMMIT WORK; GO TO Einde; Maak_ongedaan: ROLLBACK WORK; Einde: RETURN;
Vakgroep Telecommunicatie en Informatieverwerking 7 Transacties en OLTP –Synchronisatiepunten tijd begin code einde code s1 s : synchronisatiepunt transactie 1 begin commit s2 transactie 2 begin rollback transactie 3 begin commit s3
Vakgroep Telecommunicatie en Informatieverwerking 8 Transacties en OLTP –Savepoints synchronisatiepunten die tussentijds door de gebruikers kunnen worden geplaatst OLTP –OnLine Transaction Processing
Vakgroep Telecommunicatie en Informatieverwerking 9 Overzicht Transacties en OLTP Mogelijke oorzaken van falen Faciliteiten ter voorkoming en herstel van falen Herstel bij ‘soft crashes’ Herstel bij ‘hard crashes’
Vakgroep Telecommunicatie en Informatieverwerking 10 Mogelijke oorzaken van falen Problemen door overmacht Beschadiging of falen van de hardware Softwarefouten Bewuste onderbreking –Timeout –Deadlock –Reorganisatie van primaire of secundaire bestandsorganisatie
Vakgroep Telecommunicatie en Informatieverwerking 11 Mogelijke oorzaken van falen Onachtzaamheden van de gebruikers Ongeoorloofd gebruik –Sabotage –Diefstal
Vakgroep Telecommunicatie en Informatieverwerking 12 Mogelijke oorzaken van falen CPU primair geheugen secundair geheugen databasebuffers databases ‘hard crash’ ‘soft crash’
Vakgroep Telecommunicatie en Informatieverwerking 13 Overzicht Transacties en OLTP Mogelijke oorzaken van falen Faciliteiten ter voorkoming en herstel van falen Herstel bij ‘soft crashes’ Herstel bij ‘hard crashes’
Vakgroep Telecommunicatie en Informatieverwerking 14 Faciliteiten ter voorkoming en herstel Back-up- en logbestanden –Back-upbestand Volledige backup versus incrementele backup Secundair geheugen (magneetband, cd-rom of dvd) Gebruik van tool versus directe instructies
Vakgroep Telecommunicatie en Informatieverwerking 15 Faciliteiten ter voorkoming en herstel –Logbestand: registratie van transacties Een identificatie van de transactie. Een registratie van alle instructies binnen de transactie. Daarbij kunnen per instructie de volgende data worden bewaard: –het soort instructie (bijvoorbeeld START TRANSACTION, SELECT, INSERT, UPDATE, DELETE, COMMIT WORK, ROLLBACK WORK); –het tijdstip van opstarten van de instructie; –bij instructies die de database wijzigen: een ‘before image’ en ‘after image’ van de toestanden van de componenten van de database die door de instructie worden gewijzigd.
Vakgroep Telecommunicatie en Informatieverwerking 16 Faciliteiten ter voorkoming en herstel Informatie om het beheer van het logbestand te vergemakkelijken. Bijvoorbeeld wijzers naar de volgende of de vorige transactie; Informatie over controlepunten (checkpoints).
Vakgroep Telecommunicatie en Informatieverwerking 17 Faciliteiten ter voorkoming en herstel Beveiliging tegen stroompieken en stroomuitval RAID-systemen –‘Mirroring’ –‘Striping’
Vakgroep Telecommunicatie en Informatieverwerking 18 Faciliteiten ter voorkoming en herstel
Vakgroep Telecommunicatie en Informatieverwerking 19 Overzicht Transacties en OLTP Mogelijke oorzaken van falen Faciliteiten ter voorkoming en herstel van falen Herstel bij ‘soft crashes’ Herstel bij ‘hard crashes’
Vakgroep Telecommunicatie en Informatieverwerking 20 Herstel bij ‘soft crashes’ Werking van de databasebuffers –Keuze van vrij te maken databasebuffer bij ‘Flushing’ FIFO (First In First Out) LRU (Least Recently Used) –“Flushing” gebeurt bij sommige database- systemen ook na uitvoering van een instructie (bvb. COMMIT WORK)
Vakgroep Telecommunicatie en Informatieverwerking 21 Herstel bij ‘soft crashes’
Vakgroep Telecommunicatie en Informatieverwerking 22 Herstel bij ‘soft crashes’ –Wanneer is ‘flushing’ toegelaten? Steal: er mogen “uncommited” transacties zijn. No force: uitvoering van “COMMIT”-instructies mag geen aanleiding geven tot “flushing”.
Vakgroep Telecommunicatie en Informatieverwerking 23 Herstel bij ‘soft crashes’ –‘write-ahead log’-regel Om de duurzaamheideigenschap van een transactie te kunnen garanderen is het belangrijk dat de ‘COMMIT’-instructie van de transactie naar het logbestand wordt geschreven net voor de transactie afgesloten en bevestigd (‘committed’). Dit wordt de ‘write-ahead log’-regel genoemd.
Vakgroep Telecommunicatie en Informatieverwerking 24 Herstel bij ‘soft crashes’ transactie begincommit registratie van commit … … logbestand
Vakgroep Telecommunicatie en Informatieverwerking 25 Herstel bij ‘soft crashes’ Controlepunten Een controlepunt is een tijdstip waarop de database en het logbestand worden gesynchroniseerd door alle databasebuffers te “flushen”. –Na verloop van een vast tijdinterval –Controlepuntrecord
Vakgroep Telecommunicatie en Informatieverwerking 26 Herstel bij ‘soft crashes’
Vakgroep Telecommunicatie en Informatieverwerking 27 Herstel bij ‘soft crashes’ Hersteltechnieken met uitgestelde aanpassing –Voor ‘no steal’-strategie. –Werkwijze Transactieverwerking door dbms –Registreer de transacties in logbestand, daarbij worden geen ‘before images’ weggeschreven –Instructies die de database aanpassen, worden niet uitgevoerd –Pas de ‘write-ahead log’-regel toe –Gebruik alle ‘after images’ om de wijzigingen direct in de database uit te voeren; bevestig dan pas de transactie. –Bij een ‘rollback’ wordt de registratie van de transactie in het logbestand genegeerd
Vakgroep Telecommunicatie en Informatieverwerking 28 Herstel bij ‘soft crashes’ Herstel na ‘soft crash’ –Doorloop het logbestand van achteren naar voren en stop bij het recentste controlepunt, registreer daarbij van welke transacties een ‘commit’ en een startinstructie zijn gevonden. –Gebruik de ‘after images’ van de geregistreerde transacties om de wijzigingen door te voeren in de database
Vakgroep Telecommunicatie en Informatieverwerking 29 Herstel bij ‘soft crashes’ Hersteltechnieken met onmiddellijke aanpassing –Voor ‘no steal, no force’-strategie. –Werkwijze Transactieverwerking door dbms –Registreer de transacties in logbestand, daarbij worden ‘before images’ en ‘after images’ weggeschreven –Instructies die de database aanpassen, worden uitgevoerd in de databasebuffers –De aanpassingen worden pas effectief naar de database geschreven bij de eerstvolgende ‘flushing’ –Pas de ‘write-ahead log’-regel toe
Vakgroep Telecommunicatie en Informatieverwerking 30 Herstel bij ‘soft crashes’ Herstel na ‘soft crash’ –Maak een lege ‘undo’-lijst en een lege ‘redo’-lijst aan. –Doorloop het logbestand van achteren naar voren en stop bij het recentste controlepunt. Plaats de identificaties van alle transacties uit het controlepuntrecord in de ‘undo’-lijst. –Doorloop het logbestand van aan het controlepunt tot aan het einde. »Bij een begin van een transactie wordt de identificatie van de transactie in het ‘undo’-lijst geplaatst. »Bij een ‘commit’ van een transactie wordt de identificatie van de transactie verplaatst van de ‘undo’-lijst naar de ‘redo’-lijst. –Doorloop het logbestand nogmaals van aan het einde tot aan het controlepunt. Elke transactie uit de ‘undo’-lijst wordt daarbij ongedaan gemaakt (via de ‘before images’). –Doorloop het logbestand een laatste maals van aan het controlepunt tot aan het einde. Elke transactie uit de ‘redo’-lijst wordt daarbij opnieuw uitgevoerd (via de ‘after images’).
Vakgroep Telecommunicatie en Informatieverwerking 31 Herstel bij ‘soft crashes’ Hersteltechnieken met schaduwpagina’s –Geen logbestand –Werkpagina’s en schaduwpagina’s in het secundaire geheugen. –Werkwijze Bij het begin van een transactie hebben werkpagina’s en schaduwpagina’s dezelfde inhoud. Aanpassingen worden enkel uitgevoerd in werkpagina’s Na een ‘commit’ van een transactie worden de gewijzigde werkpagina’s gekopieerd naar hun schaduwpagina’s
Vakgroep Telecommunicatie en Informatieverwerking 32 Overzicht Transacties en OLTP Mogelijke oorzaken van falen Faciliteiten ter voorkoming en herstel van falen Herstel bij ‘soft crashes’ Herstel bij ‘hard crashes’
Vakgroep Telecommunicatie en Informatieverwerking 33 Herstel bij ‘soft crashes’ Herstel van hard- en software Herstel van de database –Verwijderen van de database uit het secundare geheugen –Inladen van de recentste back-up –Herstellen van recentste consistente toestand