Logboekgebaseerd herstelschema met uitgestelde databasewijziging
Bij het loggebaseerde herstelschema met uitgestelde databasemodificatie worden de logrecords naar de logbuffer (een deel van het hoofdgeheugen) geschreven voordat ze op de database worden toegepast. Dit maakt een sneller herstel mogelijk in het geval van een systeemfout, omdat de logrecords opnieuw kunnen worden afgespeeld vanuit de logbuffer in plaats van dat ze uit de database zelf moeten worden gelezen.
Het belangrijkste voordeel van deze aanpak is dat de prestaties worden verbeterd door het aantal I/O-bewerkingen dat nodig is om de database bij te werken, te verminderen. Het brengt echter ook het risico van gegevensverlies met zich mee als de logbuffer verloren gaat of beschadigd raakt voordat deze naar de database wordt gespoeld.
Om dit risico te beperken, wordt de logbuffer doorgaans periodiek naar de database geleegd, of wanneer deze een bepaalde grootte bereikt. Bovendien worden de logrecords vaak naar een niet-vluchtig opslagapparaat, zoals een schijf, geschreven om ervoor te zorgen dat ze niet verloren gaan in het geval van een stroomstoring.
Dit zijn de stappen die betrokken zijn bij het loggebaseerde herstelschema met uitgestelde databasewijziging:
1. Wanneer een transactie begint, wordt er een logrecord naar de logbuffer geschreven.
2. De transactie wordt uitgevoerd en de resultaten ervan worden opgeslagen in de logbuffer.
3. Wanneer de transactie wordt doorgevoerd, worden de logrecords naar de database gespoeld en wordt de transactie als voltooid beschouwd.
4. Als het systeem uitvalt voordat de logrecords naar de database zijn gespoeld, kunnen de logrecords vanuit de logbuffer opnieuw worden afgespeeld om de database in een consistente staat te herstellen.
Deze aanpak wordt gebruikt in veel commerciële databasesystemen, waaronder Oracle, IBM DB2 en Microsoft SQL Server. |